JDBC数据库连接

JDBC(Java DataBase Connectivity)就是用Java语言操作关系型数据库的一套API

JDBC数据库连接_第1张图片

JDBC的步骤固定,大体分为8个步骤,以MySQL数据库为例

1.创建工程并导入驱动jar包

2.注册驱动

注册驱动的目的是告诉代码要执行哪一个jar包

Class.forName(com.mysql.jdbc.Driver);        //不常用,因为MySQL5之后的jar包里已经包含了,所以使用时可以省略

3.获取数据库连接

Connection conn = DriverManager.getConnection(url,username,password);

其中url是固定写法,为        jdbc:mysql://MySQL对应的ip:端口号/对应的数据库

例如                                     jdbc:mysql:127.0.0.1:3306/db1

JDBC数据库连接_第2张图片

4.定义SQL语句

String sql = " ";   

5.获取执行SQL语句的对象

Statement stmt = conn.createStatement();

6.执行SQL语句

int count = stmt.executeUpdate();  stmt.executeQuery();

//count是执行SQL语句所受影响的行数

7.处理返回结果

8.释放资源

stmt.close();

conn.close();

使用JDBC时要使用大量的API,其中有DriverManager,Connection,Statement,ResultSet,

PreparedStatement。

1.DriverManager驱动管理类,主要用于 注册驱动 和 获取数据库连接。

2.Connection可以获取执行SQL的对象,还可以管理事务

JDBC数据库连接_第3张图片

SQL注入就是通过操作输入,用字符串拼接来修改事先定义好的SQL语句,用来达到执行代码攻击服务器的效果

JDBC数据库连接_第4张图片

用异常处理机制来对事务进行管理。

3.Statement用来执行SQL语句

JDBC数据库连接_第5张图片

4.ResultSet结果集对象,封装了DQL查询语句的结果,因为是结果集,所以获取查询结果时,需要循环依次获取。

JDBC数据库连接_第6张图片

while(result.next()){

        result.getXxx(参数);

}

5.PreparedStatement继承自Statement,也就可以执行SQL语句,但可以预防SQL注入,即用问号替代参数

JDBC数据库连接_第7张图片

定义了PreparedStatement后就不用定义Statement了,而且因为使用预编译对象获取连接时,因为传入了SQL语句,后期执行时便不需要再次传入SQL作为参数了。因为使用问号作为占位符,则每次执行的SQL语句模板都一样,只需要检查,编译一次,因此速度更快

-------------------------------------------------

数据库连接池

JDBC数据库连接_第8张图片

JDBC数据库连接_第9张图片

有了连接池,就不用DriverManager来获取数据库连接了。

使用步骤:导入jar包,定义配置文件,加载load配置文件,获取数据库连接池对象,获取连接

JDBC数据库连接_第10张图片

你可能感兴趣的:(数据库)