Mybatis入门初体验

本文主要介绍Mybatis基础入门
如有需要,可以参考
如有帮助,不忘 点赞

完整目录:

Mybatis入门初体验_第1张图片

1)创建一张employee表:

Mybatis入门初体验_第2张图片

2)创建对应的JavaBean

public class Employee {
     
	private Integer id;
	private String lastName;
	private String email;
	private String gender;
	// 此处省略get/set方法
	}

3)配置相关文件

  • mybatis-config.xml


<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="123456" />
			dataSource>
		environment>
	environments>
	
	<mappers>
		<mapper resource="EmployeeMapper.xml" />
	mappers>
  • log4j.xml


<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>
  • sql映射文件 :


<mapper namespace="cbuc.life.dao.EmployeeMapper">
	
	<select id="getEmpById" resultType="cbuc.life.bean.Employee">
		select id,last_name lastName,email,gender from employee where id = #{id}
	select>
mapper>
  • 创建Employeemapper :
public interface EmployeeMapper {
     
	//这里只写了一个方法, 根据Id获取对应的员工  (注意:这里的方法名需要和sql映射文件中的Id对应)
	public Employee getEmpById(Integer id);
}

4) 创建一个test类

public class MyBatisTest {
     
	/**
	 * 1、根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 包含数据源一些运行环境信息
	 * 2、sql映射文件;配置了每一个sql,以及sql的封装规则等。 
	 * 3、将sql映射文件注册在全局配置文件中
	 * 4、写代码:
	 * 		1)、根据全局配置文件得到SqlSessionFactory;
	 * 		2)、使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查
	 * 			一个sqlSession就是代表和数据库的一次会话,用完关闭
	 * 		3)、使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的。
	 */
	public SqlSessionFactory getSqlSessionFactory() throws IOException {
     
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		return new SqlSessionFactoryBuilder().build(inputStream);
	}
	@Test
	public void test01() throws IOException {
     
		// 1、获取sqlSessionFactory对象
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		// 2、获取sqlSession实例,能直接执行已经映射的sql语句
		SqlSession openSession = sqlSessionFactory.openSession();
		try {
     
			// 3、获取接口的实现类对象(就是我们刚刚创建的mapper对象)
			//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
			EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
			Employee employee = mapper.getEmpById(1);
			System.out.println(employee);
		} finally {
     
			//一个sqlSession就是代表和数据库的一次会话,用完关闭
			openSession.close();
		}
	}
}

查看控制台输出对比数据库数据:
在这里插入图片描述
Mybatis入门初体验_第3张图片

【注意】
  • SqlSession代表和数据库的一次会话;用完必须关闭;
  • 执行更新和删除操作需要加上 sqlSession.commit() 才能生效
  • SqlSession和connection一样都是非线程安全。每次使用都应该去获取新的对象。
  • mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象。(将接口和xml进行绑定)
    EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMapper.class);
  • 两个重要的配置文件:
    1. mybatis的全局配置文件:包含数据库连接池信息,事务管理器信息等…系统运行环境信息
    2. sql映射文件:保存了每一个sql语句的映射信息:将sql抽取出来。

你可能感兴趣的:(#,ORM,java,mysql,jdbc,mybatis,数据库)