一:首先知道什么叫 Mybatis
(1)創建項目-----接着導入相關的jar 包;
(稍后提供相應的源碼)
(2) 接着 創建好 相應的數據庫表 (Demo的數據庫名:hytc ;表名稱:users) 
(3) 創建相應的 entity 實體類 Users (Demo中 類的私有屬性和表重的元素----有些不同 這里大家先留意一下)
package ankermaker.top.entity; import java.util.Date; /** * * @author Ankermaker * users 表對應的實體類 */ public class Users { protected Integer id; protected String name; protected String sex; protected String edu; protected Date birth; protected String remark; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getEdu() { return edu; } public void setEdu(String edu) { this.edu = edu; } public Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } @Override public String toString() { return "Users [id=" + id + ", name=" + name + ", sex=" + sex + ", edu=" + edu + ", birth=" + birth + ", remark=" + remark + "]"; } }
(4)接下來創建 Mybatis 的 核心配置xml文件 (命名 沒有要求 ),存放與src目錄下;[Demo中 以 conf.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> <!-- 為 實體映射 文件 創建別名映射 --> <typeAliases> <package name="ankermaker.top.entity"/><!--這個 包下面的 所有 實體類 別名 自動 創建 --> </typeAliases> <environments default="development"><!-- 環境池 配置 :default 屬性值 默認環境名稱 --> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置數據庫連接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/hytc" /><!-- 老陳寫法:jdbc:mysql:///hytc --> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <mapper resource="ankermaker/top/mappers/Usersmapper.xml"/> </mappers> </configuration>
(5)接下來創建 mapper 映射操作xml文件 (這個文件的作用:簡單的說:所有對表的增刪改查操作 的sql 語句和 該文件映射的借口類中的方法 在給文件中注冊體現;執行查詢的方法有多種,通過 映射文件創建映射借口,用戶調用Mapper接口中的方法,執行相應的sql語句 並返回查詢結果!大家在測試之后 可以仔細的感受該文件的作用!!!)
Demo中的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="ankermaker.top.mappers.Usersmapper"><!-- 映射接口類的 路徑!!! --> <!-- 實體類 中 與表名字 不同 使用 resultMap 來創建 別名映射!--> <resultMap type="users" id="userMap"> <id column="u_id" property="id" jdbcType="INTEGER"/> <result column="u_name" property="name"/> <result column="u_sex" property="sex"/> </resultMap> <!-- 查詢 所有 數據 測試! --> <select id="getObjects" resultMap="userMap"> <!-- 直接引用 上面的 resultMap --> select u_id,u_name,u_sex from users </select> </mapper>
(6)接下來創建 mapper映射文件的 映射接口類:接口類名和映射操作xml文件 名一樣!!都為:Usersmapper
package ankermaker.top.mappers; import java.util.List; import ankermaker.top.entity.Users; public interface Usersmapper { /** * 查詢所有用戶的信息 * * @return */ public List<Users> getObjects();//測試 數據庫獲取所有的 記錄 方法; }
(7)接了下就是測試 數據庫操作的時候了 創建 測試類,
package ankermaker.top.Test; import java.io.IOException; import java.io.InputStream; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.After; import org.junit.Before; import org.junit.Test; import ankermaker.top.entity.Users; import ankermaker.top.mappers.Usersmapper; public class AppText { private SqlSessionFactory sessionFactory; private static SqlSession session; private Usersmapper mapper; @Before public void setup() { String resource = "conf.xml"; InputStream is = null; try { is = Resources.getResourceAsStream(resource); sessionFactory = new SqlSessionFactoryBuilder().build(is); session = sessionFactory.openSession(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Test public void getObjects() { // 分頁查詢 // 獲取 映射 借口 對象 ; mapper = session.getMapper(Usersmapper.class); List<Users> list = mapper.getObjects(); for (Users u : list) { System.out.println(u + "測試成功"); } } @After public void result() { if (sessionFactory != null) { sessionFactory = null; } if (session != null) { session = null; } } }
使用 junit test 測試 getObjects方法;
四:問題分析:論ResultMap 的作用!
大家看Usersmapper.xml 中的resultMap標簽的使用! 
<resultMap id="userMap" type="users">
<id jdbcType="INTEGER" property="id" column="u_id"/>
<result property="name" column="u_name"/>
<result property="sex" column="u_sex"/>
</resultMap>
....
select u_id,u_name,u_sex from users
由於實體中的私有屬性和表中的列名不一致所以要使用 ResultMap 這個標簽讓他們之間產生映射,Demo中不能展現的很清楚大家可以在測試 按條件查詢的時候,會發現resultMap 的用處!
五:項目部署完成 但總感覺這篇寫的沒有什么思路希望大家看不明白了諒解,大家學習即可就好啦,我們大家一起進步;
