1.框架技术:
Struts2 web项目
HiberNate DAO层
Spring
SpringMVC web项目
mybatis DAO层
2.持久化与ORM
(1)持久化是程序数据在瞬时状态(临时状态)和持久状态间转换的过程
(2)ORM(对象-关系映射)
编程程序的时候,以面向对象的方式处理数据
保存数据的时候,却以关系系统数据库的方式存储
(3)ORM解决方案包含下面四个部分
在持久化对象执行基本的增,删,改,差操作
对持久化对象提供一种查询语言过着API
对象关系映射关系
提供与事务对象交互,执行检查,延迟加载一及其他优化功能
3.框架的优点:
专注业务逻辑实现,不在考虑公共问题
结构统一,易于学习,维护
4.了解Mybatis的优缺点以及应用场合
优点:
与JDBC相比,减少了50%以上的代码量
最简单的持久化框架,小巧并简单易学
SQL代码从程序代码中彻底分离,可重用
提供xml标签,支持编写动态SQL
提供映射标签,支持对象与数据库的ORM字段关系映射
缺点:
sql语句编写工作量大,对开发人员有一点的要求
数据库一直性差
5.mybatis特点:
(1)基于SQL语法,简单易学
(2)能了解底层封装过程
(3)SQL语句封装在配置文件中,便于统一管理与维护,降低程序的偶和度
(4)方便程序代码调试
6.Mybatis环境配置步骤:
1.导入Mybatis架包
2.编写Mybatis核心配置文件(Mybatis-config.xml)
3.创建实体类POJO
4.DAO层-SQL映射文件(mapper.xml)
5.创建测试类
(1)读取全局配置文件Mybatis-config.xml
String resourct = "mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(resourct);
(2)创建SQLSessionFactory对象,读取配置文件
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
(3)创建SQLSession对象
SqlSession session = = factory.openSession();
(4)调用mapper文件进行数据操作
count = session.selectOne("cn.mybatis.dao.bookMapper.count");
7.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"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/books" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<!-- 调用小配置文件-->
<mappers>
<mapper resource="cn/mybatis/dao/bookMapper.xml"/>
</mappers>
<environments default="development">
...........
</configuration>
8.mapper.xml内容:
<?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="cn.mybatis.dao.bookMapper">
<select id="count" resultType="int">
select count(*) as count from book
</select>
</mapper>
9.测试类内容:
public static void main(String[] args) throws Exception {
//全局配置文件
String resourct = "mybatis-config.xml";
//保存返回值
int count = 0;
//创建SqlSession对象
SqlSession session = null;
//读取全局配置文件Mybatis-config.xml
InputStream is = Resources.getResourceAsStream(resourct);
//创建SQLSessionFactory对象,读取配置文件
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//开启SqlSession对象
session = factory.openSession();
//调用mapper文件进行数据操作
count = session.selectOne("cn.mybatis.dao.bookMapper.count");
System.out.println(count);
}