首页 > 代码库 > MyBatis学习总结——MyBatis快速入门

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=http://www.mamicode.com/"${jdbc.username}" />
                <property name="password" value=http://www.mamicode.com/"${jdbc.password}" />
                <property name="url" value=http://www.mamicode.com/"${jdbc.url}" />
                <property name="driver" value=http://www.mamicode.com/"${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();
    }
    

}

 

MyBatis学习总结——MyBatis快速入门