1. 程式人生 > >記第一次學習Mybatis

記第一次學習Mybatis

第一次學習Mybatis是在網上找了一個老師的視訊教程看的。

首先,在Mybatis下載相關包,在入門裡面既可以選擇使用Maven依賴,也可以直接下載jar包。下好mybatis-3.4.6-zip包後,解壓縮會看到裡面有如下檔案。

 

圖中選中的即是在學習mybatis初期需要使用到的jar包,將此jar包引入到建立的java工程中。

上圖中的pdf檔案是一份官方的說明文件,裡面有所需要的配置資訊的部分。

在此,我們還需要mysql的驅動程式,同樣的去官網下載mysql-connector-java-8.0.13,同樣的將下載壓縮後的jar包引入工程中

然後開始建立Demo,在工程中建立一個Person的類如下

package com.liusong.entity;

public class Person {
    private int id;
    private String name;
    private int age;

    public Person() {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Person(int id, String name, int age) {
        super
(); this.id = id; this.name = name; this.age = 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() { // TODO Auto-generated method stub return "編號:" + id + "," + "姓名:" + name + "," + "年齡:" + age; } }

 同樣在資料庫中建立一個對應Person的表

接下來在工程中配置Mapper檔案,程式碼如下

<?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.liusong.entity.PersonMappers">

    <select id="queryPersonById" resultType="com.liusong.entity.Person" parameterType= "int"> 
    select * from person where id= #{id} 
     </select>
        
</mapper>

配置檔案config.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.cj.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/shop?serverTimezone=UTC" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
    <!-- 載入對映檔案 -->
        <mapper resource="com/liusong/entity/PersonMappers.xml" />
    </mappers>
</configuration>

主程式TestMybatis

package com.liusong.entity;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestMybatis {
    public static void main(String[] args) throws IOException {
        Reader reader = Resources.getResourceAsReader("config.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();
        String statement = "com.liusong.entity.PersonMappers.queryPersonById";
        Person person = session.selectOne(statement, 1);
        System.out.println(person);
        session.close();
    }
}

以上準備工作都完成後,開始執行 結果如下

在此期間曾遇到可很多錯誤,

(1)是顯示找不到config.xml檔案,上網搜尋了答案後,將config.xml檔案移至src下面,問題解決

(2)資料庫時間與驅動程式時間衝突,上網搜查後得以解決,參考https://blog.csdn.net/Hello_World_QWP/article/details/80421533

(3)檔案載入路徑問題,類的載入中間用點隔開,xml檔案的載入中間用/隔開。