mybatis強化(二)Parameters和Result

本文經過一個簡單例子簡單記錄下參數的映射。轉載註明出處:http://www.cnblogs.com/wdfwolf3/p/6804243.html,謝謝。文件目錄以下,html

1.配置文件mybatisconfig.xml以下,這裏簡要說明一下environments。MyBatis 能夠配置成適應多種環境,這種機制有助於將 SQL 映射應用於多種數據庫之中,儘管能夠配置多個環境,每一個 SqlSessionFactory 實例只能選擇其一。因此,若是你想鏈接兩個數據庫,就須要建立兩個 SqlSessionFactory 實例,每一個數據庫對應一個。在 MyBatis 中有兩種類型的事務管理器(也就是 type=」[JDBC|MANAGED]」),若是你正在使用 Spring + MyBatis,則沒有必要配置事務管理器, 由於 Spring 模塊會使用自帶的管理器來覆蓋前面的配置。dataSource 元素使用標準的 JDBC 數據源接口來配置 JDBC 鏈接對象的資源。有三種內建的數據源類型(也就是 type=」[UNPOOLED|POOLED|JNDI]」)。java

<?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://localhost:3306/mybatis?serverTimezone=GMT%2B8&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf8" />
                <property name="username" value="root" />
                <property name="password" value="1234" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/practice/xml/UsersMapper.xml"/>
</configuration>

2.Test測試函數以下,mysql

package com.practice.Test;

import com.practice.bean.Users;
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 java.io.IOException;
import java.io.InputStream;

public class Test3 {
    public static void main(String[] args) throws IOException {
        String resource = "mybatisconfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sqlSessionFactory.openSession();
     //String statement = "com.practice.xml.UsersMapper.selectUser2"; String statement
= "com.practice.xml.UsersMapper.selectUser"; Users user = session.selectOne(statement, "瓦房店"); session.close(); System.out.println(user.getId()); } }

3.UsersMapper.xml以下,這裏是兩種最基本的result映射,一是經過resultMap定義列與類字段的關係,二是經過別名方式映射列名到類字段名上。這些是結果映射最基本內容。id 和 result 都映射一個單獨列的值到簡單數據類型(字符串,整型,雙精度浮點數,日期等)的單獨屬性或字段。這二者之間的惟一不一樣是 id 表示的結果將是比較對象實例時用到的標識屬性。這幫助改進總體表現,特別是緩存和嵌入結果映射(也就是聯合映射) 。sql

<?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.practice.xml.UsersMapper" >
    <resultMap id="userResultMap" type="com.practice.bean.Users">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="age" column="age"/>
    </resultMap>

    <select id="selectUser" parameterType="string" resultMap="userResultMap">
        select * from orders where name = #{name}
    </select>

    <select id="selectUser2" parameterType="string" resultType="com.practice.bean.Users">
        select  id as "id",
                name as "name",
                age as "age"
        from users where name = #{name}
    </select>
</mapper>
相關文章
相關標籤/搜索