Mybaits简诉

时间:2021-12-12 03:48:42

先组织一下语言!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.测试

Mybaits简诉

创建持久化类:

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="${driver}"/>

<property name="url" value="${url}"/>

<property name="username" value="${user}"/>

<property name="password" value="${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);

}

}

}

学海无涯!苦渡而已!