计算机----计算-----数据
i/o-------file
RDBMS
sql-----数据库软件-------file
|
sqlplus
jdbc
java ------- RDBMS
jdbc:
1. 加载驱动 Class.forName
2. 创建COnnection DriverManager.getConnect
DriudDataSourceFactory.create…
3. 创建statement createStatement/preparedStatement
4. 执行sql stmt.execute…
5. 处理结果 while(rs.next())
6. 关闭资源。 close
class IRegionDao{
List<Region> selectAll();
int saveRegion(Region r);
}
class RegionDaoImpl implements IRegionDao{
public List<Region> selectAll(){
QueryRunner qr = new QueryRunner();
Connection conn = getConnection();
qr.query(conn,sql,BeanListResultHanlder,)
}
public int saveRegion(Region r){
QueryRunner qr = new QueryRunner();
Connection conn = getConnection();
insert into s_region(id,name) values(r.getId(),r.getName());
qr.update(conn,sql)
}
}
关系模型:
二维关系表,实体: 行 列
行:一条记录,一条信息,一个元组,一个实体数据。
面向对象的编程:
数据 ---- 对象
抽象对象所具有的共有特征和行为,
class Region{
private int id;
private String name;
}
Object Relationship ORM
对象 表–关系
class SqlHandler{
Object handler(String action,String sql,Object[] params,Class resultType){
QueryRunner qr = new QueryRunner();
Connection conn = getConnection();
Object result = null;
if(action.equals("select")){
result = qr.query(conn,sql,new BeanListResultHanlder,param)
}else{
result = qr.update(conn,sql,param);
}
return result;
}
}
mybatis:
jdbc封装。持久层~ ORM
mybatis-x.x.x.jar
Object -------- Table
1. 导入依赖包。
普通java工程: mybatis-x.x.x.jar
maven: pom.xml
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
2. 数据源的配置。----》 mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC
"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="briup" />
<property name="password" value="briup" />
</dataSource>
</environment>
</environments>
</configuration>
3. SqlSessionFactory
SqlSessionFactory sf =
new SqlSessionFactoryBuilder().build(
Resources.getResourceAsStream("mybatis-config.xml"));
4. Mapper文件的配置 ----》 持久层方法和sql语句,以及对象等关系的映射。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.briup.basic.IRegionDao">
<select id="selectAll" resultType="com.briup.basic.Region">
select id,name from s_region
</select>
</mapper>
5. 将mapper文件配置在config文件中,让mybatis获取到这个映射信息。
<configuration>
<environments>
....datasource
</environments>
<mappers>
<mapper resource="mapper.xml"/>
</mappers>
</configuration>
6.创建SqlSession对象。
SqlSession session = sqlSessionFactory.openSession();
7. 通过SqlSession对象获取,mybatis自动生成的持久层实现对象(Mapper)
IRegionDao dao = session.getMapper(IRegionDao.class);
8. 调用持久化方法执行。
9. 事务处理。
session.commit();
10. 关闭资源。
session.close();