1. ORM简介
JDBC 是Java与数据库交互的统一API。
1.1传统JDBC操纵步骤:
- 注册数据库驱动类,指定url地址、用户名、密码等连接信息
- 通过DriverManager打开数据库连接
- 通过数据库连接创建Statement对象
- 通过Statement对象执行SQL,得到ResultSet对象
- 通过ResultSet 对象读取数据,并将数据转为JavaBean
- 关闭相应资源、连接
private String dbUrl="jdbc:mysql://localhost:3306/db_dxqgl";
private String dbUserName="root";
private String dbPassword="111";
private String jdbcName="com.mysql.jdbc.Driver";
public Connection getCon()throws Exception{
Class.forName(jdbcName);
Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
return con;
}
try {
conn =dbUtil.getCon();
String sql = "SHOW TABLES LIKE '"+tname+"'";
Statement sta = conn.createStatement();
ResultSet rs = sta.executeQuery(sql);
if(rs.next()){
}else{
PreparedStatement pstmt2 = conn.prepareStatement(sql1,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
pstmt2.executeUpdate();
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
conn.close();
sta.close();
}
}
步骤1-4 和 6 ,在每次的增删改查都会用到,可以进行封装,步骤5完成关系模型到对象模型的转换,ORM框架主要作用就是根据映射文件的配置,完成数据在关系模型和对象模型之间的映射,同时屏蔽上述重复代码。同时,为了节约数据库珍贵资源,一般会集成缓存、数据源、数据库连接池等组件。
1.2 常见持久化框架
概念区分
jdbc
Java连接数据库操作的原生接口,对Java程序员是API, 对数据库服务提供商来说是接口模型,各数据库厂商都要实现jdbc接口
jpa
Java持久化规范,是ORM框架的标准,诞生的缘由是为了整合第三方ORM框架。
spring data jpa
Spring整合第三方框架,做持久化这一部分的整合,产生了spring-data-*一系列的包,包括sping-data-jpa, sping-data-template…, 是对jpa 的再次抽象,具体hibernate 实现的。
mybatis
一个不完全的ORM框架,但是更灵活。
1.3 Mybatis
Java程序如何加载配置文件和使用mybatis 的API
- 加载mybatis_config.xml
- 根据配置文件创建SqlSessionFactory
- 通过SqlSessionFactory创建SqlSession
- SqlSession中定义了执行SQL语句的各种方法
- 通过SqlSession提交事务,关闭对象。
String resource = "com/xxx/mybatis-config.xml"
InputStream inputStream = Resource.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try {
Map<String, Object> parameter = new HashMap<>():
parameter.put("id", 1);
User user = session.selectOne("com.xx.UserMapper.selectUser", parameter);
} finally {
session.close();
}
1.3.1 Mybatis 整体架构
基础支持层、核心处理层、接口层