mybatis入門學習,mybatis環境搭建
阿新 • • 發佈:2019-02-05
這是我的第一篇部落格,哈哈,謝謝大家捧場,由於實習需要mybatis框架,所以自己也從零開始寫了一個demo,(當然也參考了很多前輩的部落格)希望能夠幫到想要入門的童鞋。
1. 開發環境
1.1.建立工程
建立一個工程,Java工程或者web工程都是可以的
1.2 當然是匯入必需的jar包了,這裡需要MySQL的驅動包和mybatis的包
jar包放在WEB-INF裡的lib中
1.3 建立資料庫和表,我用的是MySQL資料庫
create DATABASE mybatis CHARACTER SET utf8;
use mybatis ;
create table users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);
INSERT INTO users(NAME, age) VALUES('程式設計師大白', 20);
INSERT INTO users(NAME, age) VALUES('程式設計師小白', 18);
建完之後的效果是:
2. 使用mybatis查表
2.1新增Mybatis的配置檔案conf.xml
在src目錄下建立一個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>
<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="root" />
</dataSource>
</environment>
</environments>
</configuration>
2.2 定義表對應的實體類
Users類的程式碼:
public class Users {
//實體類的屬性和表的欄位名稱一一對應
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;
}
@Override
public String toString() {
return "Users{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
2.3定義操作users表的sql對映檔案userMapper.xml
建立一個me.gacl.mapping包,專門用於存放sql對映檔案,在包中建立一個userMapper.xml檔案:
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">
<!-- 為這個mapper指定一個唯一的namespace,namespace的值習慣上設定成包名+sql對映檔名,這樣就能夠保證namespace的值是唯一的
例如namespace="edu.neuq.rxm.mapping.userMapper"就是edu.neuq.rxm.mapping(包名)+userMapper(userMapper.xml檔案去除字尾)
-->
<mapper namespace="edu.neuq.rxm.mapping.userMapper">
<!-- 在select標籤中編寫查詢的SQL語句, 設定select標籤的id屬性為getUser,id屬性值必須是唯一的,不能夠重複
使用parameterType屬性指明查詢時使用的引數型別,resultType屬性指明查詢返回的結果集型別
resultType="edu.neuq.rxm.domain.Users"就表示將查詢結果封裝成一個User類的物件返回
User類就是users表所對應的實體類
-->
<!--
根據id查詢得到一個user物件
-->
<select id="getUser" parameterType="int"
resultType="edu.neuq.rxm.domain.Users">
select * from users where id=#{id}
</select>
</mapper>
2.4 在conf.xml檔案中註冊userMapper.xml檔案(這裡的conf.xml還是上面的conf.xml檔案,只不過在最下面註冊了userMapper.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>
<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="root" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 註冊userMapper.xml檔案,
userMapper.xml位於edu/neuq/rxm/mapping/userMapper.xml這個包下,所以resource寫成edu/neuq/rxm/mapping/userMapper.xml-->
<mapper resource="edu/neuq/rxm/mapping/userMapper.xml"/>
</mappers>
</configuration>
2.5 編寫測試程式碼:執行定義的select語句 。建立一個Test1類,編寫如下的測試程式碼:
package edu.neuq.rxm.mybatisTest;
import edu.neuq.rxm.domain.Users;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
public class Test1 {
public static void main(String[] args){
//mybatis的配置檔案
String resource ="conf.xml";
//使用類載入器載入mybatis的配置檔案(它也載入關聯的對映檔案)
InputStream inputStream=Test1.class.getClassLoader().getResourceAsStream(resource);
SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sessionFactory.openSession();
/**
* 對映sql的標識字串,
* edu.neuq.rxm.mapping.userMapper是userMapper.xml檔案中mapper標籤的namespace屬性的值,
* getUser是select標籤的id屬性值,通過select標籤的id屬性值就可以找到要執行的SQL
*/
String statement="edu.neuq.rxm.mapping.userMapper.getUser";
//執行查詢返回一個唯一user物件的sql
Users users=sqlSession.selectOne(statement,1);
System.out.println(users);
}
}
好了,執行測試類,下面是執行結果,可以看到已經從資料庫中查出來資料了!
到此,一個入門的demo就寫完了,當然了這只是針對從來沒有接觸過mybatis的童鞋來做個入門的引導,先讓程式在自己的電腦上跑通,配置檔案確實是比較麻煩,肯定有更簡潔的方法,但是先按部就班的把程式跑通,然後再考慮更加優化的方法。