【Mybatis學習總結一】Mybatis的helloworld
阿新 • • 發佈:2019-02-02
近日跟隨某網站某PDF開始學習MyBatis框架。
一 MyBatis介紹
MyBatis 是支援 普通 SQL 查詢 , 儲存過程 和 高階對映 的優秀持久層框架。MyBatis 消除了幾乎所有的 JDBC 程式碼和引數的手工設定以及對結果集的檢索封裝。
MyBatis 可以使用簡單的 XML 或註解用於配置和原始對映,將介面和 Java 的 POJO(Plain Old Java Objects,普通的 Java 物件)對映成資料庫中的記錄.
JDBC- dbutils- MyBatis- Hibernate
二 第一個小例子
1 新增mybatis的jar包 和 mysql 驅動包:
2 在SQLyog中建立資料庫和表:
3 src下建立包com.mybatis.test1,在建立一個表所對應的實體類:User.java;
package com.mybatis.test1; public class User { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public User() { super(); } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
4 src下:新增mbatis的配置檔案:conf.xml,此處檔案內<mappers>的內容此步驟不許新增;
【注】此處剛開始輸入<mappers>時eclipse可能不能自動彈出,需要關聯dtd檔案:prefrence-XMLCatalog-Add-
FileSystem-...見圖
-//mybatis.org//DTD Config 3.0//EN 對應的public ID
或http://mybatis.org/dtd/mybatis-3-config.dtd 對應的URI
<?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> <environments default="development"> <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/mybatis" /> <property name="username" value="root" /> <property name="password" value="920614" /> </dataSource> </environment> </environments> <!-- 註冊userMapper.xml檔案 --> <mappers> <mapper resource="com/mybatis/test1/userMapper.xml"/> </mappers> </configuration>
5 在包com.mybatis.test1 下新建一個操作user表的sql對映檔案:userMapper.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">
<!--定義操作 users 表的sql 對映檔案:userMapper.xml -->
<mapper namespace="com.mybatis.test1.userMapper">
<select id="getUser" parameterType="int"
resultType="com.mybatis.test1.User">
select * from users where id=#{id}
</select>
</mapper>
6 在conf.xml 檔案中註冊 userMapper.xml 檔案,見步驟4中<mappers>內容;
7 編寫測試程式碼:執行定義的select語句:
package com.mybatis.test1;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test1 {
public static void main(String[] args) {
String resource = "conf.xml";
//1 載入mybatis的配置檔案,也載入關聯的對映檔案
InputStream is=Test1.class.getClassLoader().getResourceAsStream(resource);
//2 構建SqlSession工廠
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//3 建立能執行對映檔案中的sql 的sqlSession
SqlSession session = sessionFactory.openSession();
//4 對映sql 的標識字串
String statement = "com.mybatis.test1.userMapper.getUser";
//5 執行查詢返回一個唯一的user物件的
User user = session.selectOne(statement , 2);
System.out.println(user);
}
}
執行結果:User [id=2, name=Jack, age=11]
整體結構: