MyBatis系列1之JDBC执行过程回顾

1、MyBatis简述

MyBatis是一个优秀的持久层框架,底层仍是使用的JDBC访问数据库,因此它也是对JDBC操作数据数据库的过程进行封装。JDBC是连接数据库和Java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作。

2、JDBC简述

Java数据库连接 Java Database Connectivity,简称JDBC,它是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC是一类接口,制定了统一访问各类关系数据库的标准接口。

3、什么驱动?

JDBC是接口,驱动是接口的实现类,没有驱动将无法完成数据库连接,从而不能操作数据库!每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都由数据库生成厂商提供。

驱动程序可以保证两个设备进行通信,它需要满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过驱动程序可以与该设备进行通信。

4、JDBC执行过程回顾

在这里插入图片描述
我们需要访问数据库时,首先要加载数据库驱动,只需加载一次,然后在每次访问数据库时创建一个Connection实例,获取数据库连接,获取连接后,执行需要的SQL语句,最后完成数据库操作时释放与数据库间的连接。具体的开发步骤如下所示:

第一步:注册和加载数据库驱动

此步骤的目的是告知JVM使用的是哪一个数据库的驱动。Java加载数据库驱动的方法是调用Class类的静态方法forName(),语法格式如下:

Class.forName(String driverManager)

例如,加载MySQL数据库驱动如下:

try 
{
    Class.forName("com.mysql.jdbc.Driver");
} 
catch(ClassNotFoundException e) 
{
    e.printStackTrace();
}

如果加载成功,会将加载的驱动类注册给DriverManager;如果加载失败,会抛出ClassNotFoundException异常。

需要注意的是,要在项目中导入mysq-connection-java的jar包,方法是在项目中建立lib目录,在其下放入jar包。

第二步:获得数据库连接

此步骤需要使用JDBC中的类,完成对数据库的连接。加载完数据库驱动后,就可以建立数据库的连接了,需要使用DriverManager类的静态方法getConnection()方法来实现。代码如下:

Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/database_name";
String user = "root";
Strign password = "root"
//建立连接
Connection conn = DriverManager.getConnection(url, user, password);

代码说明:url是数据库的url,其中mysql指定数据库为mysql数据库,localhost是本地计算机,可以换成IP地址127.0.0.1,3306为MySQL数据库的默认端口号,database_name是所要连接的数据库名;user和password对应数据库的用户名和密码;最后再通过getConnection建立连接。

第三步:获得语句执行对象,然后执行SQL语句,获取执行结果,最后释放资源

通过连接对象获取对SQL语句的执行者对象,利用执行者对象,向数据库发送并执行sql语句,然后获取到数据库的执行后的结果

建立了连接之后,就可以使用Connection接口的createStatement()方法来获取Statement对象,也可以调用prepareStatement()方法获得PrepareStatement对象,通过executeUpdate()方法来执行SQL语句。

以插入为例,我们可以使用Statement接口中的executeUpdate()方法,如下:

String sql = "insert into user(username, sex, address) values('张三','1','北京市')";
Statement stmt = conn.createStatement();    //创建一个Statement对象
stms.executeUpdate(sql);                   //执行SQL语句
conn.close();                             //关闭数据库连接对象

还可以使用PreparedStatement接口中的executeUpdate()方法,如下:

String sql = "insert into user(username, sex, address) values(?,?,?)";
PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1, "张三");    //为第一个问号赋值
ps.setInt(2, 1);           //为第二个问号赋值
ps.setString(3, "北京市"); //为第三个问号赋值
ps.executeUpdate();
conn.close();

转载自:
https://ke.coderead.cn/detail/i_5ef87ea5374d0_1nDh4nbo/1?from=p_5ef59548c8c31_4hElBGbQ&type=6
http://www.mybatis.cn/archives/765.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值