Java开发之Mybatis框架(2)--- 与普通Java项目整合

使用Mybatis前需了解的知识点:

两个重要文件:全局配置文件和写有sql的映射文件;全局配置文件中需配置sql映射文件的位置;

 * 1、接口式编程
 *     原生:        Dao        ====>  DaoImpl
 *     mybatis:   Mapper    ====>  xxMapper.xml
 * 
 * 2、SqlSession代表和数据库的一次会话;用完必须关闭;
 * 3、SqlSession和connection一样都是非线程安全。每次使用都应该去获取新的对象,而不要共用一个对象;
 * 4、mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象。
 *         (将接口和xml进行绑定)
 *         EmployeeMapper empMapper =    sqlSession.getMapper(EmployeeMapper.class);
 * 5、两个重要的配置文件:
 *         mybatis的全局配置文件:包含数据库连接池信息,事务管理器信息等...系统运行环境信息
 *         sql映射文件:保存了每一个sql语句的映射信息:
 *                     将sql抽取出来。    


一、新建数据库表

Java开发之Mybatis框架(2)--- 与普通Java项目整合_第1张图片

二、新建Java项目

1、上传相关jar包:

2、conf下新建配置文件

log4j.xml,用来打印日志



 

 
 
   
   
    
   
 
 
   
 
 
   
 
 
   
   
 

mybatis-config.xml全局配置文件 

需配置数据源,事物和mapper.xml的位置




	
		
			
			
				
				
				
				
			
		
	
	
	
		
	

3、对应着数据库新建bean

package com.atguigu.mybatis.bean;

public class Employee {
	
	private Integer id;
	private String lastName;
	private String email;
	private String gender;
	
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	@Override
	public String toString() {
		return "Employee [id=" + id + ", lastName=" + lastName + ", email="
				+ email + ", gender=" + gender + "]";
	}
	
	

}

4、 新建EmployeeMapper .java接口

package com.atguigu.mybatis.dao;

import com.atguigu.mybatis.bean.Employee;

public interface EmployeeMapper {
	
	public Employee getEmpById(Integer id);

}

5、新建EmployeeMapper.xml实现接口





	

6、测试

 * 1、根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 有数据源一些运行环境信息
     * 2、sql映射文件;配置了每一个sql,以及sql的封装规则等。 
     * 3、将sql映射文件注册在全局配置文件中
     * 4、写代码:
     *         1)、根据全局配置文件得到SqlSessionFactory;
     *         2)、使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查
     *             一个sqlSession就是代表和数据库的一次会话,用完关闭
     *         3)、使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的。

 * 2、获取sqlSession实例,能直接执行已经映射的sql语句

此例中使用了传统方式和使用接口的方式,推荐使用接口的方式;

package com.atguigu.mybatis.test;

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;

import com.atguigu.mybatis.bean.Employee;
import com.atguigu.mybatis.dao.EmployeeMapper;

public class MyBatisTest {

	public SqlSessionFactory getSqlSessionFactory() throws IOException {
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		return new SqlSessionFactoryBuilder().build(inputStream);
	}

	@Test
	public void test() throws IOException {

		// sql的唯一标识:statement Unique identifier matching the statement to use.
		// 执行sql要用的参数:parameter A parameter object to pass to the statement.
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

		SqlSession openSession = sqlSessionFactory.openSession();
		try {
			Employee employee = openSession.selectOne(
					"com.atguigu.mybatis.EmployeeMapper.selectEmp", 1);
			System.out.println(employee);
		} finally {
			openSession.close();
		}

	}

	@Test
	public void test01() throws IOException {
		// 1、获取sqlSessionFactory对象
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		// 2、获取sqlSession对象
		SqlSession openSession = sqlSessionFactory.openSession();
		try {
			// 3、获取接口的实现类对象
			//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
			EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
			Employee employee = mapper.getEmpById(1);
			System.out.println(mapper.getClass());
			System.out.println(employee);
		} finally {
			openSession.close();
		}

	}

}

 测试结果:

Java开发之Mybatis框架(2)--- 与普通Java项目整合_第2张图片

即能从数据库查询到信息;

 

 

 

 

======以下于你或许是个好消息======

 

好消息就是:欢迎访问我的个人博客网站哈哈哈......


网站名称:Java学习笔记网 (点击进入)

url:https://www.javaxxbj.com/personalHomePage.html?id=null&userId=1578999242684 (点击进入)

网站特点:

  1. 你可以记录自己的博客,并可以控制显示和隐藏,可利于管理啦!!!
  2. 可以添加收藏各个网站的链接!!!
  3. 甚至也可以文章收藏,点赞,关注,查看我的消息等功能哦!!!

看一小点点的截图:

Java开发之Mybatis框架(2)--- 与普通Java项目整合_第3张图片

欢迎使用!!!欢迎使用!!!欢迎使用!!!欢迎使用!!!欢迎使用!!!欢迎使用!!!欢迎使用!!!

你可能感兴趣的:(Mybatis)