Java数据库(1)基本概念和try-with-resources
rehoni / 2020-06-20
1. 连接池
连接池创建好固定数量的连接,数据库操作通过借用连接池的连接来进行操作,并且不关闭而是返还给连接池。
2. try-with-resources
实现autoClosable
接口的类,均可以进行try-with-resources
的操作。
close的顺序是,先进后出,类似堆栈。
try (Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8","root", "admin");
Statement s = c.createStatement();) {
String sql = "select * from hero where id = " + id;
ResultSet rs = s.executeQuery(sql);
// 因为id是唯一的,ResultSet最多只能有一条记录
// 所以使用if代替while
if (rs.next()) {
hero = new Hero();
String name = rs.getString(2);
float hp = rs.getFloat("hp");
int damage = rs.getInt(4);
hero.name = name;
hero.hp = hp;
hero.damage = damage;
hero.id = id;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
3. ORM
ORM=Object Relationship Database Mapping
对象和关系数据库的映射
简单说,一个对象,对应数据库里的一条记录
4. DAO
DAO=DataAccess Object
数据访问对象
实际上就是运用了练习-ORM中的思路,把数据库相关的操作都封装在这个类里面,其他地方看不到JDBC的代码。通过设计类实现DAO接口,来完成对特定类的CRUD操作。
- 把驱动的初始化放在了构造方法里
- 提供
getConnection
方法返回连接
package jdbc;
import java.util.List;
import charactor.Hero;
public interface DAO{
//增加
public void add(Hero hero);
//修改
public void update(Hero hero);
//删除
public void delete(int id);
//获取
public Hero get(int id);
//查询
public List<Hero> list();
//分页查询
public List<Hero> list(int start, int count);
}
以上部分参考自how2java:https://how2j.cn/k/jdbc/jdbc-connection-pool/610.html