java學習9.21

臧博涛發表於2024-09-21

今天回爐mybatis的用法,由於之前只是跟著教程走能成功配置資料庫,但是一旦出現細小的區別就會產生自己改不了的bug,因此熟悉mybaits和其他技術的內容。知道問題出在哪裡,以及怎麼改。

mybatis配置

1.匯入操作

(1)官網下載jar包並匯入
(2)maven直接匯入依賴

2.匯入完之後建立mybatis-config.xml檔案

再將預設配置匯入這個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=""/>
                <property name="username" value=""/>
                <property name="password" value=""/>
            </dataSource>
        </environment>


    </environments>

</configuration>

對於目前練習來說只需要填寫後面的
url資料來源
username資料庫使用者名稱稱
password資料庫密碼

3.idea連線資料庫,並將資料庫源匯入mybatis-config.xml檔案

4.在IDEA和表中建立實體類User,表用navicat建立

package com.test.entity;

import lombok.Data;


@Data
public class User {
    int id;
    String name;
    int age;
}

5.建立TestMapper.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="testMapper">

    <select id="selectAllUser" resultType="com.test.entity.User">
        select  * from user

    </select>
</mapper>

除了select包含的內容其他的可以視為模板直接匯入。這裡select * from user的作用是從表user中選擇全部資料

6.最後在main函式中寫sql語句

package com.test;

import com.test.entity.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.FileInputStream;
import java.util.List;

public class Main {
    public static void main(String[] args) throws Exception {

        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build( new FileInputStream("mybatis-config.xml"));
        try(SqlSession session = factory.openSession(true))
        {
            List<User> users = session.selectList("selectAllUser");
            users.forEach(System.out::println);


        }


    }
}

至此一個列印所有使用者的基本操作完成