天天看點

mybatis架構開發環境搭建

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