快速入门:
* 步骤:
1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
1.复制mysql-connector-java-5.1.37-bin.jar到项目的 libs目录下
2.右键-->Add As Library
3. 注册驱动Class.forname("com.mysql.jdbc.Driver)
4. 获得连接对象Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
5. 定义sql语句 String sql = "update account set balance = 500 where id = 1";
6. 执行的话使用prepareStatement(sql语句),基本不适用statement语句,因为statement语句存在安全隐患,防止sql注入问题
7. 调用prepareStatement的executeQuery()进行查询,返回值为ResultSet结果集合,见下面详细解析
调用prepareStatementexecuteUpdate进行增删改的操作
8. 释放资源
ResultSet:结果集对象,封装查询结果
* boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true
* getXxx(参数):获取数据
* Xxx:代表数据类型 如: int getInt() , String getString()
* 参数:
1. int:代表列的编号,从1开始 如: getString(1)
2. String:代表列名称。 如: getDouble("balance")
* 注意:
* 使用步骤:
1. 游标向下移动一行
2. 判断是否有数据
3. 获取数据
工具类的定义JDBCuTILS
- 目的:简化书写
分析:
- 注册驱动也抽取
- 抽取一个方法获取连接对象
- 需求:不想传递参数(麻烦),还得保证工具类的通用性。
- 解决:配置文件
jdbc.properties
url=
user=
password=
使用类加载器的方式调用配置文件,:
- ClassLoader classLoader = JDBCUtils.class.getClassLoader();
classLoader.getResource(“jdbc.properties”);
这样就使用了配置文件
JDBC控制事务:
- 事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败。
- 操作:
- 开启事务 :setAutoCommit(boolean autoCommit)
- 提交事务 commit
- 回滚事务 rollback
- 使用Connection对象来管理事务
- 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
- 在执行sql之前开启事务
- 提交事务:commit()
- 当所有sql都执行完提交事务
- 回滚事务:rollback()
- 在catch中回滚事务
- 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
复习事务的4大基本属性:
- 原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败。
- 持久性:当事务提交或回滚后,数据库会持久化的保存数据。
- 隔离性:多个事务之间。相互独立。
- 一致性:事务操作前后,数据总量不变