快速学习-MyBatis入门

  • 2020 年 2 月 17 日
  • 筆記

第2章 MyBatis HelloWorld

2.1 开发环境的准备

  1. 导入MyBatis框架的jar包、Mysql驱动包、log4j的jar包
myBatis-3.4.1.jar  mysql-connector-java-5.1.37-bin.jar  log4j.jar
  1. 导入log4j 的配置文件
<?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">     <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">     <param name="Encoding" value="UTF-8" />     <layout class="org.apache.log4j.PatternLayout">      <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) n" />     </layout>   </appender>   <logger name="java.sql">     <level value="debug" />      </logger>   <logger name="org.apache.ibatis">     <level value="info" />   </logger>   <root>     <level value="debug" />     <appender-ref ref="STDOUT" />   </root>  </log4j:configuration>

2.2 创建测试表

-- 创建库  CREATE DATABASE test_mybatis;  -- 使用库  USE test_mybatis;  -- 创建表  CREATE TABLE tbl_employee(     id INT(11) PRIMARY KEY AUTO_INCREMENT,     last_name VARCHAR(50),     email VARCHAR(50),     gender CHAR(1)  );

2.3 创建javaBean

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 + "]";  	}

2.3 创建MyBatis的全局配置文件

  1. 参考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_1129" />  				<property name="username" value="root" />  				<property name="password" value="1234" />  			</dataSource>  		</environment>  	</environments>  	<!-- 引入SQL映射文件,Mapper映射文件 	-->  	<mappers>  		<mapper resource="EmployeeMapper.xml" />  	</mappers>  </configuration>

2.4 创建Mybatis的sql映射文件

  1. 参考MyBatis的官方手册
<?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="suibian">  	<select id="selectEmployee" resultType="com.atguigu.myabtis.helloWorld.Employee">  		select id ,last_name lastName ,email ,gender from tbl_employee where id = #{id}  		<!-- select * from tbl_employee  where id = #{id} -->  	</select>  </mapper>

2.5 测试

  1. 参考MyBatis的官方手册
	@Test  	public void test() throws Exception {  		String resource = "mybatis-config.xml";  		InputStream inputStream = Resources.getResourceAsStream(resource);  		SqlSessionFactory sqlSessionFactory =  					new SqlSessionFactoryBuilder().build(inputStream);  		System.out.println(sqlSessionFactory);    		SqlSession session  = sqlSessionFactory.openSession();  		try {  			Employee employee =  					session.selectOne("suibian.selectEmployee", 1001);  			System.out.println(employee);  		} finally {  			session.close();  		}  	}

2.6 Mapper接口开发MyBatis HelloWorld

  1. 编写Mapper接口
public interface EmployeeMapper {    	public Employee getEmployeeById(Integer id );    }
  1. 完成两个绑定
  • ①Mapper接口与Mapper映射文件的绑定在Mppper映射文件中的标签中的namespace中必须指定Mapper接口的全类名
  • ②Mapper映射文件中的增删改查标签的id必须指定成Mapper接口中的方法名.
  1. 获取Mapper接口的代理实现类对象
	@Test  	public void test()  throws Exception{  		String resource = "mybatis-config.xml";  		InputStream inputStream =                   Resources.getResourceAsStream(resource);  		SqlSessionFactory sqlSessionFactory =  				new SqlSessionFactoryBuilder()                .build(inputStream);  		SqlSession session =                           sqlSessionFactory.openSession();    		try {  			//Mapper接口:获取Mapper接口的 代理实现类对象  			EmployeeMapper mapper =                   session.getMapper(EmployeeMapper.class);  			Employee employee =                    mapper.getEmployeeById(1006);  			System.out.println(employee);  		} finally {  			session.close();  		}  	}