mybatis笔记 - 04

2017-07-14  本文已影响0人  50ef8076d671

2017 06 13

包结构示意图:

image

建立 modle test util 包

modle包存放持久化对象和mapper映射文件

test包存放Junit单元测试文件

util包存放工具类

新建jdbc.proeprties属性文件 按照 KEY = VALUE 格式存放数据库连接信息

新建log4j.properties属性文件 存放sql语句显示配置

代码示例

jdbc.proeprties :

jdbc.mysql.driver = com.mysql.jdbc.Driver
jdbc.mysql.url = jdbc:mysql://127.0.0.1:3306/mybatis_test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
jdbc.mysql.username = root
jdbc.mysql.password = root

log4j.properties :

# Global logging configuration
# 级别 TRACE<DEBUG<INFO<WARN<ERROR
log4j.rootLogger=ERROR, stdout
# 想显示SQL语句,需要设置命名空间
log4j.logger.com.shxt.model.User=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

主配置文件mybatis-config.xml文件中 数据库连接信息按照意义下代码示例进行配置

通过 ${KEY} 的形式来取值

<environments default="development_mysql">
    <environment id="development_mysql">
        <transactionManager type="JDBC" />
        <dataSource type="POOLED">
            <property name="driver" value="${jdbc.mysql.driver}" />
            <property name="url" value="${jdbc.mysql.url}" />
            <property name="username" value="${jdbc.mysql.username}" />
            <property name="password" value="${jdbc.mysql.password}" />
        </dataSource>
    </environment>
</environments>

单元测试注解说明 :

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class test {
    //Before注解: 在运行每个方法前永远都首先执行本方法
    @Before
    public void Test01Method(){
        System.out.println("首先执行我!");
    }
    //after注解 : 在运行每个方法之后都会执行本方法
    @After
    public void Test02Method(){
        System.out.println("最后执行我!");
    }
    //Test注解: 调用JUnit框架测试方法是否通过
    @Test
    public void Test03Method(){
        System.out.println("测试通过!");
    }
}

在mapper映射文件中 存在<resultMap>标签 用于结果集处理

type 表示结果集最终处理类型

id 为当前resultMap指定名称方便调用

<resultMap type="User" id="BaseResultMapper" >
    <!-- 用于标记数据表中的主键 -->
    <!-- column 数据库字段名 -->
    <!-- jdbcType 数据库字段类型 --> 
    <!-- property 持久化类的属性 -->
    <!-- javaType java类型 需要书写类名 --> 
    <id column="user_id" jdbcType="INTEGER" property="userId" javaType="java.lang.Integer" />
    <result column="account" jdbcType="VARCHAR" property="account" javaType="java.lang.String" />
    <result column="password" jdbcType="VARCHAR" property="pwd" javaType="java.lang.String" />
    <result column="user_name" jdbcType="VARCHAR" property="userName" javaType="java.lang.String" />
</resultMap>

sql标签用于存放sql语句中公共的部分 减少代码量

在CRUD操作中通过<include>标签调用

下列 <select> 标签将会给出一个示例

<sql id="sys_user_columns">
    user_id,account,password,user_name
</sql>


    <select id="like01" resultMap="BaseResultMapper">
        SELECT
            <include refid="sys_user_columns" />
        FROM
            user
        WHERE
            user_name like '%管%'
        </select>
上一篇下一篇

猜你喜欢

热点阅读