1. 程式人生 > >MyBatis第一個案例的優化,通過映射文件與接口進行綁定

MyBatis第一個案例的優化,通過映射文件與接口進行綁定

row tor cti res value input env str oot

1.創建表emp

CREATE DATABASE mybatis;
USE mybatis;
CREATE TABLE emp(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
last_name VARCHAR(255),
gender CHAR(1),
email VARCHAR(255)
);

2.編寫javaBean

package cn.bdqn.mybatis.been;

public class Emp {
	private Integer id;
	private String last_name;
	private String email;
	private String gender;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getLast_name() {
		return last_name;
	}
	public void setLast_name(String last_name) {
		this.last_name = last_name;
	}
	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 "Emp [id=" + id + ", last_name=" + last_name + ", email="
				+ email + ", gender=" + gender + "]";
	}
	
	
}

  3.編寫Emp的DAO接口

package cn.bdqn.mybatis.dao;

import cn.bdqn.mybatis.been.Emp;
/**
 * 這個接口不用寫實現類,是用來給empMapper.xml進行動態綁定的
 * @author Administrator
 *
 */
public interface EmpMapper {
	public Emp getEmpById(Integer id);
}

  

3添加需要的jar包

技術分享

第一個是log4j的jar包(記錄日誌文件所需) 第二個是mybatis的核心jar包(必須),第三個是mysql的驅動jar包(必須)

4.創建需要的配置文件

技術分享

第一個是SQL映射配置文件,所有的sql語句都寫在這個配置文件裏面

<?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:名稱空間 值是Emp的DAO接口的全限定名稱-->
<mapper namespace="cn.bdqn.mybatis.dao.EmpMapper">
<!--
id,唯一標識
resultType:返回值類型,bean的全限定名稱
#{id},從傳遞過來的參數中取出id值,相當於換位符
public Emp getEmpById(Integer id);

id是我們接口中方法的方法名稱
-->
<select id="getEmpById" resultType="cn.bdqn.mybatis.been.Emp">
select * from emp where id = #{id}
</select>
</mapper>

第二個是log4j記錄日誌所需

第三個是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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?"/>
<property name="username" value="root"/>
<property name="password" value="admin"/>
</dataSource>
</environment>
</environments>
<!--將我們寫好的SQL映射文件一定要註冊到全局配置文件中  -->
<mappers>
<mapper resource="empMapper.xml"/>
</mappers>
</configuration>

  5,最後編寫測試類

package cn.bdqn.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 cn.bdqn.mybatis.been.Emp;
import cn.bdqn.mybatis.dao.EmpMapper;

public class MyBatisTest_01 {
	public static void main(String[] args) throws IOException {
		//1.獲取SqlSessionFactory對象
		String resource="mybatis-config.xml";
		InputStream ras = Resources.getResourceAsStream(resource);
	SqlSessionFactory build = new	SqlSessionFactoryBuilder().build(ras);
	//2.獲取SqlSession對象
	SqlSession openSession = build.openSession();

	try{
		//3.獲取接口的實現類對象
		//會為接口自動創建一個代理對象,代理對象去執行增刪改查方法
		EmpMapper mapper = openSession.getMapper(EmpMapper.class);
		Emp empById = mapper.getEmpById(1);
		System.out.println(empById);
	}finally{
		openSession.close();
	}
	
	}
}

  

MyBatis第一個案例的優化,通過映射文件與接口進行綁定