JDBC基础

感情迁移 提交于 2020-01-23 17:55:37

JDBC

概念

用Java来操作数据库,官方定义地一套操作所有关系型数据库地规则(接口),各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口编程,真正执行地代码是驱动jar包中地实现类。

快速入门

步骤

1. 导入驱动jar包
2. 注册却动
3. 获取数据库连接对象	Connection
4. 定义sql语句
5. 获取执行sql语句的对象	Statement
6. 执行sql,接收返回结果
7. 处理结果
8. 释放资源

详解各个对象

  1. DriverManager:驱动管理对象

    • 功能:
      1. 注册驱动:告诉程序使用哪个数据库jar包,上面步骤1就是调用了DriverManager中的registerDriver方法
      2. 获取数据库连接:
        • 方法:static Connection getConnection(String url, String user, String password)
        • 参数:
          • url:指定连接的路径
            • jdbc:mysql://IP:端口/数据库名
            • eg:jdbc:mysql://localhost:3306/db3
          • user:用户名
          • password:密码
  2. Connection:数据库连接对象

    • 功能:
      1. 获取执行sql的对象
        *. Statement createStatement()
        *. PreparedStatement prepareStatement(String sql)
      2. 管理事务:
        • 开启事务:void setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即开启事务
        • 提交事务:void commit();
        • 回滚事务:rollback()
  3. Statement:执行sql对象

    • 功能:执行sql
      1. int executeUpdate(String sql):一般执行DML语句
        • 返回值:是影响的行数。可以通过这个影响的行数来判断DML语句是否执行成功
      2. ResultSet executeQuery(String sql) :执行DQL(select)语句
  4. ResultSet:结果集对象,封装

    • 方法:
      1. next():光标向下移动一行
      2. getXxx(参数):获取数据,其中Xxx表示数据类型
        参数:
        * int:代表列的编号
        * String:代表列的名称
      3. 注意:
        • 使用步骤:
          1. 游标向下移动一行
          2. 判断是否有数据
          3. 获取数据
  5. PreparedStatement:执行sql的对象

    1. SQL注入问题:在拼接SQL时,有一些SQL的特殊关键字参与字符串的拼接,会造成安全性问题。
    2. 解决sql注入问题,使用PreparedStatement对象来接
    3. 预编译SQL:参数使用?作为占位符
    4. 步骤:
      1. 导入驱动jar包
      2. 注册驱动
      3. 获取数据库连接对象 Connection
      4. 定义sql语句
        • 注意:参数使用?作为占位符
      5. 获取执行sql语句的对象 PreparedStatement
      6. 给?赋值:
        • 方法: setXxx(参数1,参数2)
          • 参数1:问号的位置
          • 参数2:问号的值
      7. 执行sql,不需要传sql,接收返回结果
      8. 处理结果
      9. 释放资源
        注:以后都是用PreparedStatement来执行SQL对象,防止SQL注入问题,提高效率

抽取JDBC工具类:JDBCUtils

* 目的:简化书写
* 分析:
	1. 注册驱动抽取
	2. 抽取一个方法获取连接对象
		* 需求:不传递参数,且需保证工具类的通用性
		* 解决:配置文件
			jdbc.properties
				url = 
 				user = 
				password =  
	3. 抽取一个方法来释放资源

JDBC控制事务

1. 事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则这多个操作要么同时成功,要么同时失败。
2. 操作
	1. 开启事务:在执行sql前开启事务
	2. 提交事务:在所有操作结束后提交事务
	3. 回滚事务:遇到错误时则回滚事务
3. 使用Connection对象来管理事务
	* 开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false
	* 提交事务:commit()
	* 回滚事务:rollback()
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!