首页 > 代码库 > Mybaits简诉

Mybaits简诉

先组织一下语言!Mybatis是一个框架,一个数据持久化的框架,作用就是SQL语句的映射!减少了JDBC繁琐的数据操作与类型转换!简而言之,就是方便、轻巧!什么是持久化,持久,恩,JDBC就是一个数据持久化的过程!

 

言归正传吧!写一下Mybatis环境搭建的步骤:

1.创建Java web项目

2.加入架包

  2.1数据库驱动包

  2.2 mybatis包

  2.3 log4j日志包(可选,如果你要记录日志的话就加)

  2.4加入Junit4包(测试)

3.创建持久化类(POJO)与SQL映射文件,POJO就如同我们的实体类,封装属性,提供外部方法

4.创建mybatis配置文件(mybatis-config.xml)

5.创建MybatisUtil工具类

6.测试

技术分享

 

 

创建持久化类:

package pojo;

public class User {

    private int id;

    private String name;

    public int getId() {

       return id;

    }

    public void setId(int id) {

       this.id = id;

    }

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

}

创建接口:

package dao;

public interface UserMapper {

    int count();//记录总行数

}

 

创建SLQ映射文件:

<?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="dao.UserMapper">

 <!--映射实体与表-->
    <!--type表示实体的全路径名
        id为实体与表的映射取一个唯一的编号-->
<resultMap id="studentMap" type="app04.Student">
        <!--id标签映射主键属性,result标签映射非主键属性
            property表示实体的属性名
            column表示表的字段名-->
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="sal" column="sal"/>
    </resultMap>
 

    <select id="count" resultType="int">

       select count(*) from people

    </select>

</mapper>

创建Mybatis配置文件

<?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="jdbc.properties"/>

    <!-- 设置别名,配置文件能够在指定位置找到持久化类 -->

    <typeAliases>

       <package name="pojo"/>

    </typeAliases>

    <!--设置默认连接环境信息-->

    <environments default="mysqlInfo">

       <!--连接环境信息,取一个唯一的名字-->

       <environment id="mysqlInfo">

           <!--事务管理方式-->

           <transactionManager type="JDBC"></transactionManager>

               <!--使用连接池获取-->

              <dataSource type="POOLED">

                  <!--配置与数据库交互的4个必要属性-->

                  <property name="driver" value=http://www.mamicode.com/"${driver}"/>

                  <property name="url" value=http://www.mamicode.com/"${url}"/>

                  <property name="username" value=http://www.mamicode.com/"${user}"/>

                  <property name="password" value=http://www.mamicode.com/"${password}"/>

              </dataSource>

       </environment>

    </environments>

    <!-- 加载映射文件到配置文件中 -->

    <mappers>

       <mapper resource="dao/UserMapper.xml" />

    </mappers>

</configuration>

 

创建工具类MybatisUtil:

package 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 class MybatisUtil {

    private static SqlSessionFactory factory;

    static{//代码只会执行一次在静态代码块中

       try {

           InputStream is = Resources.getResourceAsStream("mybatis-config.xml");

           factory = new SqlSessionFactoryBuilder().build(is);

       } catch (Exception e) {

           e.printStackTrace();

       }

    }

    //创建sqlSession

    public static SqlSession createSqlSession(){

       return factory.openSession(false);//true为自动提交事务

    }

    //关闭SqlSession

    public static void closeSqlSession(SqlSession sqlSession){

       if(null != sqlSession){

           sqlSession.close();

       }

    }

}

 

编写测试类:

package test;

import static org.junit.Assert.*;

import org.apache.ibatis.session.SqlSession;

import org.junit.Test;

import dao.UserMapper;

import util.MybatisUtil;

public class userTest {

    @Test

    public void test() {

       SqlSession sqlSession = null;

        int count = 0;

       System.out.println(count);

       try {

           sqlSession = MybatisUtil.createSqlSession();

           count = sqlSession.getMapper(UserMapper.class).count();

           System.out.println(count);

       } catch (Exception e) {

           e.printStackTrace();

       }finally{

           MybatisUtil.closeSqlSession(sqlSession);

       }

    }

}

 

学海无涯!苦渡而已!

 

Mybaits简诉