先组织一下语言!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="${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);
}
}
}
学海无涯!苦渡而已!