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:資料庫移植性差