一. 什么是JDBC
JDBC(Java DataBase Connectivity),就是Java数据库连接,也就是如何使用Java语言操作数据库中的数据。
二. JDBC快速入门
代码步骤:
-
首先创建工程,导入mysql的驱动jar包(放在lib目录下,然后右击jar包,添加为库文件(Add as Library),三个选项分别为全局有效(Global Library,项目有效(Project Library)和 模块有效(Module Library)))
-
具体代码如下所示:
/** JDBC快速入门 */ public class JDBCDemo { public static void main(String[] args) throws Exception { //1. 注册驱动 //Class.forName("com.mysql.jdbc.Driver"); //2. 获取连接 String url = "jdbc:mysql://127.0.0.1:3306/db1"; String username = "username"; String password = "password"; Connection conn = DriverManager.getConnection(url, username, password); //3. 定义sql String sql = "update account set money = 2000 where id = 1"; //4. 获取执行sql的对象 Statement Statement stmt = conn.createStatement(); //5. 执行sql int count = stmt.executeUpdate(sql);//受影响的行数 //6. 处理结果 System.out.println(count); //7. 释放资源 stmt.close(); conn.close(); } }
三、JDBC的有关API
-
DriverManager(驱动管理类):这个类是用来注册驱动的。
-
Connection(数据库连接)
- 获取普通执行SQL对象(Statement)
- 获取预编译SQL执行对象(PreparedStatement),可以防止SQL注入(SQL注入的本质是因为字符串的拼接使得输入的密码成为永真式)
- 执行存储过程对象(不常用)
- Connection接口中定义了事务的相关方法
- 开启事务:setAutoCommit()
- 提交事务:commit()
- 回滚事务:rollback()
-
ResultSet(结果集对象):封装了SQL查询语句的结果。
-
那么如何从ResultSet中得到相关想要的结果呢?
-
有几个查询数据的方法:
-
boolean next()
- 将光标从当前位置向前移动一行
- 判断当前行是否为有效行
方法返回值说明:
- true : 有效行,当前行有数据
- false : 无效行,当前行没有数据
xxx getXxx(参数):获取数据
- xxx : 数据类型;如: int getInt(参数) ;String getString(参数)
- 参数
- int类型的参数:列的编号,从1开始
- String类型的参数: 列的名称
-
例子:
// 光标向下移动一行,并且判断当前行是否有数据 while (rs.next()){ //获取数据 getXxx() int id = rs.getInt("id"); String name = rs.getString("name"); double money = rs.getDouble("money"); System.out.println(id); System.out.println(name); System.out.println(money); }
-
-
四、数据库连接池
- 啥是数据库连接池?可以看到之前我们每次进行数据库的操作时总是在创建和释放与数据库的连接,这样会耗费计算机的性能和时间,而数据库连接池就能够解决这个问题,它相当于一个数据库连接的容器, 里面内置好了一定数量的连接,当你需要连接时就使用即可,使用完了归还连接池,节省了额外创建和释放的时间和资源浪费。
- Druid(德鲁伊)是一种性能较好的数据库连接池,阿里巴巴开源。
- 如何使用Druid?
- 导入jar包 druid-1.1.12.jar
- 定义配置文件
- 加载配置文件
- 获取数据库连接池对象
- 获取连接
- 还是需要把Druid的jar包放到项目的lib目录下并设置添加为库文件,然后需要配置一下Druid,比如初始化连接数量、最大连接数等
- 如何使用Druid?