MyBatis学习总结——MyBatis快速入门
MyBatis学习总结(一)——MyBatis快速入门
一、Mybatis介绍
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
二.Mybatis入门
1. 用到的相关包 {Mybatis}
mybatis-3.4.4.jar
{数据库驱动包}
ojdbc6.jar
2 . NewFile.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>
<!-- 引入属性文件 -->
<properties resource="conf/jdbc_orcl.properties"></properties>
<!-- 别名 -->
<typeAliases>
<!-- <typeAlias type="model.User" alias="aaa"/> -->
<!-- 某个包下面所有的实体类 -->
<package name="model"></package>
</typeAliases>
<environments default="development">
<environment id="development">
<!-- 事物管理器 有两种:一种是JDBC 另一种是MANAGER...(托管) weblogic,jboss..... tomact没有 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源 UNPOOLED非连接池 POOLED连接池 JNDI应运服务器 -->
<dataSource type="POOLED">
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="url" value="${jdbc.url}" />
<property name="driver" value="${jdbc.driver}" />
</dataSource>
</environment>
</environments>
<!--添加映射文件 -->
<mappers>
<!-- <package name="mappers"/> -->
<mapper resource="mappers/userMapper.xml" />
</mappers>
</configuration>
3. userMapper.xml文件如下
<?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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的 -->
<mapper namespace="mappers.userMapper">
<!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复 使用parameterType属性指明查询时使用的参数类型,
resultType属性指明查询返回的结果集类型
resultType="User"就表示将查询结果封装成一个User类的对象返回 User类就是users表所对应的实体类 -->
<!-- 根据id查询得到一个user对象 -->
<select id="getAllUser" resultType="User">
select * from s_user
</select>
</mapper>
4 . MybatisUtil.java文件如下
package util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtil {
private static SqlSession sqlSession;
private static SqlSessionFactory sqlSessionFactory;
public static SqlSessionFactory getSqlSessionFactory() {
//mybatis的配置文件
String path="conf/NewFile.xml";
InputStream in =null;
try{
//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
in=Resources.getResourceAsStream(path);
}catch(IOException e){
e.printStackTrace();
}
//构建sqlSession的工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
return sqlSessionFactory;
}
public static SqlSession getSqlSession(){
if(sqlSession==null){
//创建能执行映射文件中sql的sqlSession
SqlSession sqlSession=getSqlSessionFactory().openSession();
}
return sqlSession;
}
public static void destory(){
sqlSession.commit();
sqlSession.close();
}
}
5.JutilTest.java文件如下
package test;
import static org.junit.Assert.*;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import model.User;
import util.MybatisUtil;
public class JutilTest {
private SqlSession ss;
@Before
public void setUp() throws Exception {
ss=MybatisUtil.getSqlSession();
}
//映射sql的标识字符串 mappers.userMapper.getAllUser
@Test
public void test() {
//getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
List<User> list=ss.selectList("mappers.userMapper.getAllUser", User.class);
System.out.println(list);
}
@After
public void tearDown() throws Exception {
MybatisUtil.destory();
}
}