mybatis:实体类和SQL语句之间建立映射关系。
mybatis的特点:
1:基于SQL语法,简单易学
2:能了解底层封装过程
3:SQL语句封装在配置文件中,便于统一管理和维护,降低程序的耦合度
4:方便程序代码调试
使用mybatis的开发步骤
1:下载mybatis-3.2.2.jar包并导入工程
2:编写mybatis核心配置文件(configuration.xml)
3:创建实体类-pojo
4:DAO层-SQL映射文件(mapper.xml)
5:创建测试类
1·读取全局配置文件mybatis-config.xml
用mybatis的输入流读取全局配置文件
InputStream is=Resources.getResourceAsStream(mybatis-config.xml);
2·创建SQLSessionFactory对象,读取配置文件
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
3·创建sqlsession对象
SqlSession sqlSession =factory.openSession();
4·调用mapper文件进行数据操作
Count count=sqlSession.selectOne("cn.smbms.dao.user.UserMapper.count");
mybatis-config.xml配置
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 <configuration>
6 <!- - 引入database.properties文件 - ->
6 <properties resource="database.properties"/>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings><!- - 运行环境 - ->
<environments default="development">
<environment id="development">
<transactionMapper type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment >
</environments >
<!- - 将mapper文件加入到配置文件中 - ->
<mappers>
<mapper resource="cn/smbms/dao/user/UserMapper.xml>
</mappers>
</configuration>
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.smbms.dao.user.UserMapper"><!- - 查询用户表的记录数 - - >
<select id="count" resultType="int">
select count(1) as count from table
</select>
</mapper>
mybatis优点:
1:与JDBC相比,减少50%以上的代码量
2:最简单的持久化框架,小巧并简单易学
3:SQL代码从程序代码中彻底分离,可重用
4:提供XML标签,支持编写动态SQL
5:提供映射标签,支持对象与数据库的ORM字段关系映射
mybatis缺点:
1:SQL语句编写工作量大,对开发人员有一定要求
2:数据库移植性差