在java中只能用JDBC来访问数据库。
是一种执行sql语句的API
总结:JDBC本身是java连接数据库的一个标准,是由java编写的一组类和接口组成,接口的实现由各大数据库来完成

操作JDBC步骤:

增、删、改:

String sql = "insert into 表名() values(?,?,?,?)"

1、加载驱动
Class.forname("com.mysql.jdbc.Driver")

2、链接数据库,返回一个链接对象
Connection conn = DriverManager.getConnection("jdbc:mysql:///javaweb","root","admin")

3、创建sql语句对象
动态sql(prepareStatement)
PreparStatement ps = conn.prepareStatement(sql)
ps.set数据类型(1,映射模型对象.getId())
ps.set数据类型(2,对象.get...())

4、执行sql语句
ps.executeUpdate()

5、释放资源
conn.close();
ps.close();

查询单个,查询所有:
**String sql = "select * from 表名 where id = ?"**
1、加载驱动对象
Class.forname(com.mysql.kdbc.Driver)
2、链接数据库,获取连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql:///javaweb","root",admin")
3、创建语句对象
PrepareStatement ps = conn.prepareStatement(sql)
ps.set数据类型(1,id)
4、执行语句处理结果集
ResultSet re = ps.executeQuery();
if(re.next()){
re.getlong(id);
re.get数据类型(数据名);
…………
新建一个模型对象,把获取的结果集分别存到对象中的字段并返回出去
}
5、释放资源
conn.close();
ps.close();
re.close();

查询所有:
在查询单个的基础上
执行语句返回处理的结果集不同
返回的是一个集合
4、执行语句处理结果集
RusultSet rs = ps.executeQuery();
while(rs.next()){
rs.get数据类型(1,数据名)
List<表模型> list = new ArrayList<>
把结果放在模型对象中
把模型对象添加到List集合中
}
最后关闭资源
返回list集合

Dao思想

Dao是数据访问接口,是一个面向数据库的接口
1、创建模型对象
创建类(类名对应数据库表名)、创建字段(字段类型对应表字段类型)
java和数据库字段类型对应表:
image.png
2、创建Dao接口
规定需要哪些方法
3、创建Dao实现
操作JDBC五大步骤
4、测试类
测试功能

搭建项目规范:
image.png

抽取JDBC共工具类
在实现类中有许多步骤是重复的可以抽取成为一个方法存放在工具类中
如加载驱动、创建数据库连接对象、创建执行语句、关闭资源和处理异常。
抽取配置文件db.properties

JDBC的事务操作

开启手动提交事务connection.setAutoCommit(false)、提交事务connection.commit(将事务的所有操作持久化到磁盘中)、回滚事务connection.rollback(取消事务中已经发生的更改操作,返回到原来状态)。
1、原子性:把同一个事务中的多个业务操作当作一个原子性操作是不可分割的,要么都成功要么都失败。
2、一致性:事务执行前后的结果和业务预期达成一致
3、隔离性:事务与事务之间的隔离,A事务的操作不影响B事务
4、持久性:事务执行完后,被更新的数据会持久化到硬盘中

连接池:

增加复用性
连接池的使用:1、导入jar包
2、创建连接池对象
3、设置连接池四要素
4、初始化连接数
image.png