myBatis搭建环境

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了myBatis搭建环境相关的知识,希望对你有一定的参考价值。

到此,前期的开发环境准备工作全部完成。mybatis  搭建环境开始

下载资源包地址:https://github.com/mybatis/mybatis-3/releases

 

 1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:

技术分享图片

2、添加相应的jar包

  【mybatis

         mybatis-3.1.1.jar

  【MYSQL驱动包】
    mysql-connector-java-5.1.7-bin.jar

          技术分享图片

 

 

3、创建数据库和表,针对MySQL数据库

  SQL脚本如

技术分享图片

到此,前期的开发环境准备工作全部完成。

 

2.2、使用MyBatis查询表中的数据

  1、添加Mybatis的配置文件mybatis-config.xml  ---mybatis主配置文件

  在src目录下创建一个mybatis-config.xml文件,如下图所示:

技术分享图片

mybatis-config.xml文件中的内容如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration
 3  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4  "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6 
 7     <environments default="development">
 8     <!-- 指定使用哪个environment -->
 9         <environment id="development">
10         <!-- 事物管理器 -->
11             <transactionManager type="JDBC" />
12             <!-- 连接池 POOLED是mybatis提交的连接池 -->
13             <dataSource type="POOLED">
14                 <property name="driver" value="com.mysql.jdbc.Driver" />
15                 <property name="url" value="jdbc:mysql:///1708_mybatis" />
16                 <property name="username" value="root" />
17                 <property name="password" value="root" />
18             </dataSource>
19         </environment>
20     </environments>
21     <!-- Mapper文件 -->
22     <mappers>
23         <mapper resource="com/pxf/mapper/IUserDao.xml" />
24     </mappers>
25 </configuration>

2、定义表所对应的实体类,如下图所示:

技术分享图片

User类的代码如下:

package com.pxf.entity;

public class User {
	private Integer id;

	private String name;

	private String password;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public User() {
		super();
	}

	public User(Integer id, String name, String password) {
		super();
		this.id = id;
		this.name = name;
		this.password = password;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
	}

}

3、定义一个接口,IUserDao

  创建一个com.pxf.dao包,专门用于存放sql映射文件,在包中创建一个UserDao文件,如下图所示:

技术分享图片

package com.pxf.dao;

import com.pxf.entity.User;

public interface IUserDao {
	public User getUserById(Integer id);
}

  

 

4、定义操作t_user表的sql映射文件IUserDao.xml

  创建一个com.pxf.mapper包,专门用于存放sql映射文件,在包中创建一个UserDao.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指接口的全类名 -->
<mapper namespace="com.pxf.dao.IUserDao">
    <!-- 
         id:方法名称  id属性值必须是唯一
         parameterType:查询的时候使用的参数范围
         resultType:查询返回的结果集类型 
    -->
    <select id="getUserById" parameterType="java.lang.Integer" resultType="com.pxf.entity.User">
        select * from t_user where
        id = #{id}
    </select>
</mapper>

5、编写测试代码:执行定义的select语句

    先测试环境,看能不能生成sqlSession

package com.qf.dao;

import static org.junit.Assert.*;

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;
import org.junit.Test;

public class SqlSessionFactoryTest {

    @Test
    public void testSqlSessionFactory() {
        // 1.指定MyBatis的配置文件
        String resource = "mybatis-config.xml";
        // 2.把配置文件读成要给输入流
        try {
            InputStream inputStream = Resources.getResourceAsStream(resource);
            // 3.创建SqlSessionFactoryBuilder用来创建工厂
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            // 4.构建工厂
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
            // 5.通过SqlSessionFactory创建sqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();

            System.out.println(sqlSession);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

亲测可以生成。

  测试代码:

package com.qf.dao;

import static org.junit.Assert.*;

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;
import org.junit.Before;
import org.junit.Test;

import com.qf.entity.User;

public class UserDaoTest {

    @Test
    public void testGetUserById() {
        
        // 1.指定MyBatis配置文件
        String resource = "mybatis-config.xml";
        InputStream ips = null;
        try {
            // 2.把配置文件转成流
//            InputStream ips = this.getClass().getClassLoader().getResourceAsStream(resource);
            ips = Resources.getResourceAsStream(resource);
            
            // 3.通过SqlSessionFactoryBuilde构架工厂
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            
            // 4.构建工厂
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(ips);
            
            // 5.获取SqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();
            
            // 6.获取接口
            IUserDao userDao = sqlSession.getMapper(IUserDao.class);
            
            User user = userDao.getUserById(9);
            
            System.out.println(user);
            
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(ips != null){
                try {
                    ips.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        
    }
}

环境搭建总结:

2.搭建环境
	1)导入jra包
	2)配置文件
		a)mybatis-config.xml
			1)数据库的链接参数
			2)连接池
				1)POOLED:是MyBatis提供的一个连接池
			3)事务管理器
				1)用jdbc的事务管理器
			4)Mapper文件的路径
		2)Mapper文件
			1)命名:和接口保持一致
			2)位置:专门建一个mapper包用来存放
			3)内容
				a)<mapper>
					1)namespace:接口的全类名
					2)<select>
						1)id:方法名称
						2)resultType:返回类型 返回的是集合
						3)parameterType:方法查询使用的参数类型  
	3)使用
		1)指定MyBatis的配置文件,转成输入流
		2)创建SqlSessionFactoryBuilder用来创建SqlSessionFactory
		3)用SqlSessionFactory创建SqlSession
		4)参数数据库

 新手写帖,有什么不好的地方希望大家指出。

 


以上是关于myBatis搭建环境的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis关于复杂的SQL查询的处理&Mybatis的缓存机制

MyBatis——环境搭建

MyBatis环境搭建

MyBatis(一) —— 环境搭建

Mybatis入门环境搭建

Mybatis的环境的搭建和使用