Mybatis筆記(一)-----Mybatis基礎xml配置文件解釋


1、預先的配置

(1)創建一個數據庫(MySQL)mybatis和一張user表,腳本如下:

#創建mybatis數據庫 create database mybatis; #使用數據庫 use mybatis; #創建表,有id, name, age create table user ( ID INT(11) PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(18) DEFAULT NULL, AGE INT(11) DEFAULT NULL )

(2)基本的PO(持久化對象)

package com.test.mybatistest;

public
class User { private int ID; private String name; private int age; public User(int id, String name, int age){ this.ID = id; this.name = name; this.age = age; } public void setID(int ID) { this.ID = ID; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public int getID() { return ID; } public String getName() { return name; } public int getAge() { return age; } }

2、xml配置文件

(1)User.xml (位置:直接在src下)

<?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.test.springtest.User">
    <select id="GetUserByID" parameterType="int" resultType="com.test.springtest.dao.MUser"> select * from `student` where id = #{id} </select>

    <insert id="saveUser" parameterType="com.test.springtest.User" useGeneratedKeys="true"> insert into student(NAME,AGE) values (#{name},#{age}) </insert>
</mapper>

具體解釋:

<mapper namespace="com.test.springtest.User"

         為這個mapper指定一個唯一的namespace,它習慣上設置為:“包名+sql映射文件名”,這樣可以保值名的唯一。

<select id="GetUserByID" parameterType="int" resultType="com.test.mybatistest.User">

       id:這個select語句的id
       parameterType:指定查詢是傳入的參數類型
       resultType:即返回結果集的類型,這理指定為User類型

select * from `student` where id = #{id}   

       一條select語句

useGeneratedKeys="true" 

       使用數據庫的自動增長策略

(2)mybatis-config.xml (位置:直接在src下)

<?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>
    <!--環境配置,連接的數據庫,這里使用的是MySQL-->
    <environments default="mysql">
        <environment id="mysql">
            <!--指定事務管理的類型,這里簡單使用Java的JDBC的提交和回滾設置-->
            <transactionManager type="JDBC"></transactionManager>
            <!--dataSource 指連接源配置,POOLED是JDBC連接對象的數據源連接池的實現-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybbs"></property>
                <property name="username" value="root"></property>
                <property name="password" value="root"></property>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--這是告訴Mybatis區哪找持久化類的映射文件,對於在src下的文件直接寫文件名,
如果在某包下,則要寫明路徑,如:com/mybatistest/config/User.xml-->
<mapper resource="User.xml"></mapper> </mappers> </configuration>

 Mybatis的配置文件默認命名為mybatis-config.xml,程序運行前需要加載這個文件;

第一行是XML聲明,指定字符集;

<configuration>Mybatis配置文件的根元素為

<environment>:用來配置Mybatis的環境,即連接的數據庫。

<transationManager>:配置Mybatis的事務管理

<dataSource>:數據源,Mybatis推薦使用數據源(維持着一個連接池,而不用每次連接都開啟一個連接)來管理數據庫連接。而dataSource下的屬性相信你已經懂了(如果你學過JDBC的配置)

3、運行測試

 

package com.test.springtest.test; public class Test{ public static void main(String[] args){ //讀取配置文件
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //初始化mybatis,創建SqlSessionFactory類實例
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //創建Session實例
        SqlSession session = sqlSessionFactory.openSession(); User user = new User(6, "張三", 33); //插入數據
        session.insert("com.test.springtest.User.saveUser",user); //提交事務
 session.commit(); //關閉Session
 session.close(); } }

 

說明:

         程序先讀取配置文件,然后通過SqlSession對象來操作持久化對象。

        為了使用Mybatis進行持久化操作,可以把上述程序總結如下操作步驟:

        1)編寫持久化類(e.g. User)和其持久化操作的Mapper.xml(e.g. User.xml),並在mapper.xml中定義SQL語句

        2)獲取SqlSessionFactory

        3)獲取SqlSession

        4)用面向對象的方式操作數據庫(session.insert()、session.update()、session.select()。。。。)

        5)提交事務,關閉SqlSession

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM