您的位置:首页 > 其它

01. mybatis 简介 && 环境搭建

2016-02-08 11:58 197 查看
【mybatis 简介】

Mybatis 是支持普通Sql 查询,调用存储过程和高级映射的一个优秀地半自动化持久化框架。Mybatis 消除了几乎所有的JDBC 代码和参数的设置以及结果集的检索封装。Mybatis 中可以使用简单的 xml 和 注解方式来进行数据库实体映射 和 结果集封装,使数据库持久化操作更简单。 Mybatis 相较于Hibernate 类似的ORM 框架来讲,更加轻巧、更加灵活,使用起来更方便,更容易驾驭。 如今Mybatis 已经得到了广泛的使用,大名鼎鼎的工作流框架Activiti
就是使用的mybatis 进行的持久化。

Mybatis 相较于JDBC 主要有以下优点:1. sql 分离 2. 结果集封装 。

Mybatis 支持xml 方式 和 注解方式来配置映射关系, 笔者更喜欢xml 方式,所以只介绍xml相关的操作

【环境搭建】

【1. 引入 jar 包】



【2. 属性文件:jdbc.properties】

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/learn
jdbc.username=root
jdbc.password=root
【3. mybatis 配置文件:conf.xml】

<?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>

<!-- 指定jdbc配置文件 -->
<properties resource="jdbc.properties"/>

<!-- 为类指定别名,可指定整个包下所有的类,也可以指定具体的某个类 -->
<typeAliases>
<!-- 指定 org.zgf.learn.mybatis.entity 包 下的类,在mapper 的xml 文件中都是用简单类名 -->
<package name="org.zgf.learn.mybatis.entity"/>
</typeAliases>

<!-- 开发环境: development: 开发环境  work: 生成环境 , 可配置多个环境,启用哪个,更改default 的值即可-->
<environments default="development">
<environment id="development">
<!-- 事务方式 JDBC ,需要手动维护事务 的开启,提交,关闭-->
<transactionManager type="JDBC" />

<!-- 数据源方式: POOLED 使用连接池,每次关闭不是真正的关闭,而是放回连接处; UNPOOLED:不适用连接池,每次关闭就是真正的关闭,性能较低,不推荐使用 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>

<!-- 指定映射文件位置   -->
<mappers>
<!--  <package name=""/>   package 是用于指定类所在的包-->
<mapper resource="mappers/personmapper.xml"/>
<mapper resource="mappers/usermapper.xml"/>
<mapper resource="mappers/cache/usercache2mapper.xml"/>
<mapper resource="mappers/one2one/passengerCardMapper.xml"/>
<mapper resource="mappers/one2one/passengerMapper.xml"/>
<mapper resource="mappers/one2many/departmapper.xml"/>
<mapper resource="mappers/one2many/empmapper.xml"/>
</mappers>
</configuration>


【4. 日志文件:log4j.xml】

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
</layout>
</appender>
<logger name="java.sql">
<level value="debug" />
</logger>
<logger name="org.apache.ibatis">
<level value="debug" />
</logger>
<root>
<level value="debug" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>


【5. 单元测试:BasicTest】

package org.zgf.learn.mybatis.mapper.abase;

import java.io.IOException;
import java.io.Reader;

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 org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
/**
* mybatis 基础测试类
* @author zongf
* @time 2016年2月8日-下午12:08:40
*
*/
public class BasicTest {

private static final String configSource = "conf.xml";

//session 工厂
public static SqlSessionFactory sessionFactory;

//session
public static SqlSession session;

//类创建的时候,初始化session 工厂
@BeforeClass
public static void init(){
try {
Reader reader = Resources.getResourceAsReader(configSource);
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}

/***
* 每个单元测试用例执行之前,新打开一个session(需要手动提交事务的session)
* @author zonggf
* @time 2016年2月8日-下午12:11:09
*/
@Before
public void setUp(){
if(sessionFactory != null){
session = sessionFactory.openSession();
}
}

/**
* 每个测试用例执行之后,提交事务,然后关闭session
* @author zonggf
* @time 2016年2月8日-下午12:10:42
*/
@After
public void tearDown(){
if(session != null){
session.commit();
session.close();
}
}
}


【6. 项目包结构】

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: