Mybatis 环境搭建

Mybatis框架是:定制SQL,存储过程,高级映射,的持久层框架,用于替代JDBC进行对数据库进行相关的操作

第一步: 引入相关的jar包

其中包括mybatis-libs\mybatis-3.4.0.jar和mysql-libs\mysql-connector-java-5.1.39.jar

第二步:创建mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- MyBatis的核心配置文件 -->
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
   <!-- 核心文件做了什么事情?
        1.配置连接数据库的信息
        2.加载映射文件
    -->
<configuration>
    <!-- 加载时  default 默认启动的加载的数据库信息 id不允许重复-->
    <environments default="development">
        <environment id="development">
        <!-- 配置事务管理器,请查阅帮助文档 -->
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <!-- 加载的驱动类 -->
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <!-- 数据库连接信息 -->
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis" />
                <!-- 用户名 -->
                <property name="username" value="root" />
                <!-- 密码 -->
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
<!-- 加载映射文件 用mybatis-config.xml控制userMapper.xml文件 -->
<mappers>
    <mapper resource="com/wangchao/model/UserMapper.xml"/>
</mappers>
</configuration>

第三步:配置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">
<!-- namespace相当于包名不允许重复 使用#获取到值,会自动编译 成类似   ‘值’的形式  利用接口的方式 需要使id的名字与接口内方法的名字完全相同  -->
<mapper namespace="com.wangchao.model.User">
    <!--获取结果集市list  -->
    <select id="list" resultType="map">
        select * from user
    </select>
    <!-- 获取结果集是单独map 当参数就一个值时   #{id} 中的值可以随意写-->
    <select id="load" parameterType="int" resultType="map">
        select * from user where id =#{id}
    </select>
    <!-- 传递值是map -->
    <select id="load_map" parameterType="map" resultType="map">
        select * from user where id = #{id} and user_name=#{userName}
    </select>
    
    <!-- 添加的操作  传递的参数类型是map-->
    <insert id="add" parameterType="map">
        insert into user (account,password,user_name) values (#{account},#{password},#{userName})
    </insert>
</mapper>

第四步:创建sqlSession

package com.wangchao.util;

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 final class MyBatisUtils
{

    private static SqlSessionFactory factory = null;
    private static InputStream inputStream = null;
    /** 核心配置文件所在位置 */
    private final static String PATH = "mybatis-config.xml";

    // 静态代码块
    static
    {

        try
        {
            /** 读取核心配置文件 */
            inputStream = Resources.getResourceAsStream(PATH);
            /** 获取SqlSessionFactory */
            factory = new SqlSessionFactoryBuilder().build(inputStream);
        }
        catch (Exception ex)
        {// 捕获并处理
            // logger.debug("加载文件异常,异常信息为:" + ex.getMessage());
            throw new RuntimeException("加载文件异常,异常信息为:" + ex.getMessage());
        }
    }

    /**
     * 关闭资源SqlSession
     */
    public static void closeSqlSession(SqlSession sqlSession)
    {
        if (sqlSession != null)
        {
            sqlSession.close();
        }
    }

    /**
     * 获取SqlSession
     * @return SqlSession
     */
    public static SqlSession getSqlSession()
    {
        return factory.openSession();
    }

    // 不能进行实例化操作
    private MyBatisUtils()
    {
    }

}

posted @ 2017-06-24 21:14  qingtianBKY  阅读(120)  评论(0编辑  收藏  举报