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>