1. 程式人生 > >Mybatis的配置及簡單使用

Mybatis的配置及簡單使用

開發工具 eclipse javaweb專案
準備工作:jar包和jdbc的連線jar包
mybatis-3.4.5.jar 最新下載地址:https://github.com/mybatis/mybatis-3/releases
mysql-connector-java-5.0.8-bean.jar

資料庫自行備好

在src下建一個xml檔案:mybatisconfig.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"/> <!-- POOLED– 這種資料來源的實現利用“池”的概念將 JDBC 連線物件組織起來,避免了建立新的連線例項時所必需的初始化和認證時間。 這是一種使得併發 Web 應用快速響應請求的流行處理方式。 driver – 這是 JDBC 驅動的 Java 類的完全限定名(並不是JDBC驅動中可能包含的資料來源類)。 url – 這是資料庫的 JDBC URL 地址。 username – 登入資料庫的使用者名稱。 password – 登入資料庫的密碼。 defaultTransactionIsolationLevel – 預設的連線事務隔離級別。 poolMaximumActiveConnections – 在任意時間可以存在的活動(也就是正在使用)連線數量,預設值:10 poolMaximumIdleConnections – 任意時間可能存在的空閒連線數。 poolMaximumCheckoutTime – 在被強制返回之前,池中連線被檢出(checked out)時間,預設值:20000 毫秒(即 20 秒) poolTimeToWait – 這是一個底層設定,如果獲取連線花費的相當長的時間,它會給連線池列印狀態日誌並重新嘗試獲取一個連線(避免在誤配置的情況下一直安靜的失敗),預設值:20000 毫秒(即 20 秒)。 poolMaximumLocalBadConnectionTolerance – 這是一個關於壞連線容忍度的底層設定, 作用於每一個嘗試從快取池獲取連線的執行緒. 如果這個執行緒獲取到的是一個壞的連線,那麼這個資料來源允許這 個執行緒嘗試重新獲取一個新的連線, 但是這個重新嘗試的次數不應該超過 poolMaximumIdleConnections 與 poolMaximumLocalBadConnectionTolerance 之和。 預設值:3 (Since: 3.4.5) poolPingQuery – 傳送到資料庫的偵測查詢,用來檢驗連線是否處在正常工作秩序中並準備接受請求。預設是“NO PING QUERY SET”,這會導致多數資料庫驅動失敗時帶有一個恰當的錯誤訊息。 poolPingEnabled – 是否啟用偵測查詢。若開啟,也必須使用一個可執行的 SQL 語句設定 poolPingQuery 屬性(最好是一個非常快的 SQL),預設值:false。 poolPingConnectionsNotUsedFor – 配置 poolPingQuery 的使用頻度。 這可以被設定成匹配具體的資料庫連線超時時間,來避免不必要的偵測,預設值:0(即所有連線每一時刻都被偵測 — 當然僅當 poolPingEnabled 為 true 時適用)。 -->
<dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:5851/db1"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource
>
</environment> </environments> <mappers> <!-- 註冊userMapper.xml檔案,對映檔案是關聯bean類 --> <mapper resource="com/great/mapping/usermapping.xml"/> </mappers> </configuration>

建立一個bean類,保持和資料庫對應,比如我的

package bean;

public class Student {
    private int studentid;
    private String studentname;
    public int getStudentid() {
        return studentid;
    }
    public void setStudentid(int studentid) {
        this.studentid = studentid;
    }
    public String getStudentname() {
        return studentname;
    }
    public void setStudentname(String studentname) {
        this.studentname = studentname;
    }
    @Override
    public String toString() {
        return "Student [studentid=" + studentid + ", studentname=" + studentname + "]";
    }

}

接下來就可以書寫mapping檔案

<?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="com.great.mapping.usermapping" >
<!-- 在select標籤中編寫查詢的SQL語句, 設定select標籤的id屬性為getUser,id屬性值必須是唯一的,不能夠重複
      使用parameterType屬性指明查詢時使用的引數型別,resultType屬性指明查詢返回的結果集型別
      resultType="me.gacl.domain.User"就表示將查詢結果封裝成一個User類的物件返回
     User類就是users表所對應的實體類
     -->
<select id="getUser" parameterType="int"
 resultType="bean.Student">
select * from student where studentid=#{id}

</select>

</mapper>

然後將此mapping檔案寫入配置檔案中,

測試:

package test;

import java.io.IOException;
import java.io.InputStream;

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 bean.Student;

public class TestMybatis {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String resource = "mybatisconfig.xml";
        try {
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sessionFactory= new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession session = sessionFactory.openSession();
            Student student = session.selectOne("com.great.mapping.usermapping.getUser",1);
            System.out.println(student.toString());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

如何編寫xml 配置檔案和mapping檔案提示

下載兩個dtd檔案,然後:

這裡寫圖片描述

這裡寫圖片描述

把檔案匯入後就可以使用了提示了