(day19)数据库DAO

目标
回顾 JDBC 的基本操作
掌握 PreparedStatement 预编译 SQL 语句处理
了解 JDBC 中的事务处理
总结 JDBC API 结构
了解项目中如何使用 JDBC 进行编程

1、回顾 JDBC 的基本操作
(1)加载驱动 Class.forName("com.mysql.jdbc.Driver");
(2)创建数据库连接
Connection conn=DriverManager.getConnection(url,user,password);
(3)得到发送 SQL 语句的 Statement 对象
Statement stmt = conn.createStatement();
(4)执行 SQL
int row = stmt.executeUpdate(sql); //增删改
ResultSet rs = stmt.executeQuery(sql);//查询
(5)处理结果
while(rs.next()){ //移动结果集表格中的指针
rs.getInt("列名");
rs.getString("time"); //time 在数据库中是 date|datetime
//类型,从结果集取值是,可以看做字符类型
}
(6)关闭所有打开的连接

2、掌握 PreparedStatement 预编译 SQL 语句处理
java.sql.Statement 是一个基本的发送 SQL 语句的对象,
基本功能就是把 SQL 语句发送给数据库。
Statement
|
PreparedStatement(继承自 Statemtent,扩展)

在项目开发中,一个数据库访问类中,可能多个方法使用
同一句 SQL 语句,需要把 SQL 语句定义成 “成员变量”
String sql = "insert into student(name,age) values(?,?)";

这样的 SQL 语句,必须使用 PreparedStatement 来进行处理。

使用 PreparedStatement 步骤:
(1)新建一个带 ? 不定值的 SQL 语句
(2)在数据库执行方法中,
PreparedStatement stmt = conn.prepareStatement(sql2);
(3)使用 stmt 对 SQL 语句中的 ? 赋值
stmt.setXXXX(index,value); //选择合适的方法、注意?的位置
(4)其他的执行方法与 Statement 对象一样。

3、了解 JDBC 中的事务处理
原子性、一致性、持久性、隔离性

在 JDBC 代码中,同样允许同一个方法中,同时执行 多条
SQL 语句,这几条 SQL 语句是一个整体,要么都执行成功,
要么都执行失败。

//启动事务处理
conn.setAutoCommit(false);

//执行多条 SQL 语句

//把多条 SQL 语句作为整体发送给数据库
conn.commit();

try {
//执行失败,回滚事务
conn.rollback();
} catch (SQLException e1) {
System.out.println("程序错误,转账失败");
e1.printStackTrace();
}

4、总结 JDBC API 结构

5、了解项目中如何使用 JDBC 进行编程
对得到数据库连接对象以及关闭对象的代码进行重构。
原则:让专门的类做专门的事情。

建立专门的数据库连接对象的创建类--数据库连接工厂类

附录:
操作系统的时间 java.util.Date
数据库中的时间 java.sql.Date

//两个时间有同样的起点,可以把各自转化为 距起始时间的
//毫秒数后,直接转化
java.util.Date dt = new java.util.Date();
java.sql.Date dt2 = new java.sql.Date(dt.getTime());



任务:
(1)掌握 PreparedStatement 对象的使用方法
(2)掌握数据库连接工厂类的使用方法
(3)完成指定接口的数据库方法实现







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值