MyBatis主配置文件&映射配置文件的配置 Ⅰ

主配置文件配置層次結構

這裏寫圖片描述

Properties

  • 在configuration中配置Properties
<?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>
    <properties>
        <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="12345"/>
    </properties>

    <!--配置MyBatis環境配置-->
<environments default="development">
    <environment id="development">
        <!--配合JDBC進行事務控制,由Mybatis控制-->
        <transactionManager type="JDBC"></transactionManager>
        <!--連接池-->
        <dataSource type="POOLED">
            <!--driver是mysql的驅動-->
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${username}"/>
            <property name="password" value="${password}"/>
        </dataSource>
    </environment>
</environments>
    <mappers>
        <mapper resource="com/bamzhy/bean/user.xml"></mapper>
    </mappers>

</configuration>
  • 複用之前的properties文件
    <properties resource="dbcpconfig.properties">
    </properties>
    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/mybatis
    username=root
    password=12345

Aliases代指bean xml文件中的類型名(parameterType、resultType)

    <!--type裏邊要寫全類名-->
    <typeAliases>
        <typeAlias type="com.bamzhy.bean.User" alias="user"></typeAlias>
    </typeAliases>

        <!--int這類參數,在Alias裏邊用_int替代-->
        <select id="findUserById" parameterType="int" resultType="user">

可以使用Mybatis提供的別名來給到parameterType、resultType
這裏寫圖片描述
這裏寫圖片描述這裏寫圖片描述

Mapper映射推薦配置

  • 使用mapper接口的全限定名
    <mappers>
        <mapper class="com.bamzhy.dao.UserDao"></mapper>
    </mappers>

這裏寫圖片描述

注意點:此種方法要求mapper接口和mapper映射文件要名稱相同,且放到同一個目錄下

  • 批量配置映射:此種方法要求mapper接口和mapper映射文件要名稱相同,且放到同一個目錄下(直接掃描一個包裏邊的mapper)
    <mappers>
        <package name ="com.bamzhy.dao"/>
    </mappers>

Mapper映射文件配置

輸入映射

簡單輸入類型:int、string等,只需要在parameterType這裏填好就行

這裏寫圖片描述

Bean(簡單的POJO類型)

輸入參數是一個POJO
這裏寫圖片描述
要求# { } 花括號裏邊的值(佔位符裏的單詞)和POJO裏的對象對應,同時POJO裏的對象有getter&setter方法
如果佔位符裏邊的單詞和POJO裏的成員一致也可以。

POJO裏有別的類的引用

有一個包含了User對象的類VO

public class VO {
    User user;
    public User getUser() {
        return user;
    }
    ...
}

我們需要根據user裏邊的username來確定查找對象

    <!--這是從配置文件裏邊-->
    <select id="queryByMultiConditions" parameterType="haha" resultType="user">
        SELECT * FROM  tt_user where username like #{user.username};
    </select>

    <!--這是主配置文件裏邊-->
    <typeAliases>
        <typeAlias type="com.bamzhy.bean.VO" alias="haha"></typeAlias>
        <typeAlias type="com.bamzhy.bean.User" alias="user"/>
    </typeAliases>

測試:

    @Test
    public void test6() throws IOException {
        VO vo = new VO();
        User user = new User();
        user.setUsername("haha1");
        vo.setUser(user);

        List<User> users = dao.queryByMultiConditions(vo);
        System.out.println("i=" + users);
    }
}

以Map作爲輸入參數的對象

先設置好parameterType和resultType,選擇好key的名稱(這裏是name和pass)

    <!--這是從配置文件裏邊-->
    <select id="findUserByUsernameAndPassword" parameterType="hashmap" resultType="user">
        SELECT *  FROM  tt_user where username = #{name}  and password = #{pass};
    </select>

new一個hashmap,按照key的名稱塞進去值,然後讓hashmap作爲參數被調用,執行SQL語句

        @Test
    public void test7() throws IOException {
        HashMap<String,String> parameter= new HashMap<>();
        parameter.put("name","haha1");
        parameter.put("pass","12345");

        User userByUsernameAndPassword = dao.findUserByUsernameAndPassword(parameter);

        System.out.println(userByUsernameAndPassword);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章