最近一段時間過的有些迷茫了,好了不能在這樣了,樓主決定振作起來開始好好學習一些東西吧。研究mybatis吧!


萬里之行起于小步,從搭建環境開始。


一、下載好jar包,既然是基本環境搭建就不用弄的太復雜就加入三個最基本的jar包

1、mybatis-3.1.0-SNAPSHOT.jar

2、mysql-connector-java-5.0.8-bin.jar

3、log4j-1.2.16.jar


二、mybatis是基于log4j日志框架的,恩,把log4j的日志數據配置文件也配置一下,就先把級別設定在debug的級別上

 

  1. # Rules reminder: 
  2. # DEBUG < INFO < WARN < ERROR < FATAL 
  3.  
  4. # Global logging configuration 
  5. log4j.rootLogger=DEBUG, stdout 
  6.  
  7. # My logging configuration... 
  8. log4j.logger.org.mybatis.jpetstore=DEBUG 
  9.  
  10. ## Console output... 
  11. log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
  12. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
  13. log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

三、現在就開始對mybatis進行配置,配置文件為一個xml文件,文件名自己決定,暫且就叫Configuration.xml吧

 


 

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
  4.  
  5. <configuration> 
  6.     <typeAliases> 
  7.         <!-- simple alias for full class name --> 
  8.         <typeAlias alias="User" type="com.akwolf.domain.User"/> 
  9.     </typeAliases> 
  10.     <environments default="development"> 
  11.         <environment id="development"> 
  12.             <transactionManager type="JDBC"/> 
  13.             <dataSource type="POOLED"> 
  14.                 <property name="driver" value="com.mysql.jdbc.Driver"/> 
  15.                 <property name="url" value="jdbc:mysql://192.168.2.110:3306/mybatis"/> 
  16.                 <property name="username" value="zhangh"/> 
  17.                 <property name="password" value="123456"/> 
  18.             </dataSource> 
  19.         </environment> 
  20.     </environments> 
  21.     <mappers> 
  22.         <mapper resource="com/akwolf/persistence/UserMapper.xml"/> 
  23.     </mappers> 
  24. </configuration> 

 


上面這個配置文件相當于一個全局的配置,所以在這里面配置也會影響到其他的配置文件

這里先對上面幾個標簽陌生標簽解釋一下

<typeAliases>就是為為一個完整的類名去一個別名,我猜你不會愿意在每次用到一個類時都把類的完整路勁給帶上,所以上面的User就可以代表com.akwolf.domain.User

這樣做的確是一件很省力氣的事

<environments default="development">也就是在不同的環境中選擇不同的配置,如果現在是開發環境連接的數據庫可能就與測試連接數據庫的配置不同,default代表的就是一個默認使用的環境。

<mappers>也就是注冊你寫了哪些Mapper映射文件。
這個就先簡單介紹一下,下一篇文章就把每一個標簽的使用和用處羅嗦一遍。

四、建立領域模型User


 

  1. import java.io.Serializable; 
  2.  
  3.  
  4. public class User implements Serializable { 
  5.     private static final long serialVersionUID = 1L; 
  6.  
  7.     private int id; 
  8.  
  9.     private String name; 
  10.     private int age; 
  11.      
  12.     //setter && getter 


 


 

五、建立對數據庫操作的dao接口

 

  1. package com.akwolf.persistence; 
  2.  
  3. import com.akwolf.domain.User; 
  4.  
  5. public interface UserMapper { 
  6.  
  7.     /**
  8.      * 通過id查詢用戶
  9.      *
  10.      * @param id
  11.      *            用戶id
  12.      * @return 用戶實體
  13.      */ 
  14.     public User getUserById(int id); 

六、編寫對dao接口進行實現的Mapper【UserMapper.xml】,就是一些sql語句

 

 

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
  4. <mapper namespace="com.akwolf.persistence.UserMapper"> 
  5.     <select id="getUserById" parameterType="int" resultType="User"> 
  6.         select * from tbl_user where id = #{id} 
  7.     </select> 
  8. </mapper> 

#{id}表示傳入的參數,是一個變量

 

到此一個基本的mybatis運行環境已經搭建起來,用測試類測試一下


 

  1. package com.akwolf.test; 
  2.  
  3. import java.io.IOException; 
  4. import java.io.Reader; 
  5.  
  6. import org.apache.ibatis.io.Resources; 
  7. import org.apache.ibatis.session.SqlSession; 
  8. import org.apache.ibatis.session.SqlSessionFactory; 
  9. import org.apache.ibatis.session.SqlSessionFactoryBuilder; 
  10. import org.junit.AfterClass; 
  11. import org.junit.BeforeClass; 
  12. import org.junit.Test; 
  13.  
  14. import com.akwolf.domain.User; 
  15. import com.akwolf.persistence.UserMapper; 
  16.  
  17. public class UserTest { 
  18.      
  19.     private static SqlSession session ; 
  20.      
  21.     @BeforeClass 
  22.     public static void init(){ 
  23.         // 配置文件的路徑 
  24.         String res = "com/akwolf/conf/Configuration.xml"
  25.         try
  26.             // 1、加載配置文件 
  27.             Reader reader = Resources.getResourceAsReader(res); 
  28.             // 2、創建SqlSessionFactory,用于取得SqlSession 
  29.             SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader) ; 
  30.             // 3、取得一個SqlSession(對Jdbc中connection的封裝) 
  31.             session = factory.openSession() ; 
  32.         } catch (IOException e) { 
  33.             e.printStackTrace(); 
  34.         }  
  35.     } 
  36.  
  37.     @Test 
  38.     public void testGet() { 
  39.         // 4、取得mybatis實現并實例化好的UserMapper接口實例 
  40.         UserMapper mapper = session.getMapper(UserMapper.class) ;  
  41.         // 5、進行dao層的操作 
  42.         User u = mapper.getUserById(1) ; 
  43.         System.out.println(u); 
  44.     } 
  45.      
  46.     @AfterClass 
  47.     public static void destory(){ 
  48.         // 6、關閉SqlSession 
  49.         session.close() ; 
  50.     } 

 

上面測試類的主要建立數據庫連接并對數據庫進行的操作,為了方便以后查看和大家的理解,注釋寫的很詳細。


好,到這里第一個mybatis程序運行成功,下一次就研究一下Mybatis配置文件的詳細配置。