IDEA+Maven配置MyBatis

    科技2022-07-11  97

    SQL

    创建员工表 CREATE TABLE tb1_employee( id INT(11) PRIMARY KEY AUTO_INCREMENT, last_name VARCHAR(255), gender CHAR(1), email VARCHAR(255) )

    项目结构

    Employee

    package com.atguigu.mybatis.bean; /** * @authod Jia Junhao * @create 2020-10-03-10:27 */ public class Employee { private Integer id; private String lastName; private String email; private String gender; @Override public String toString() { return "Employee{" + "id=" + id + ", lastName='" + lastName + '\'' + ", email='" + email + '\'' + ", gender='" + 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; } }

    EmployeeMapper

    package com.atguigu.mybatis.dao; import com.atguigu.mybatis.bean.Employee; /** * @authod Jia Junhao * @create 2020-10-03-16:47 */ public interface EmployeeMapper { public Employee getEmpById(Integer id); }

    MyBatisTest

    package com.atguigu.mybatis.test; import com.atguigu.mybatis.bean.Employee; import com.atguigu.mybatis.dao.EmployeeMapper; 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 java.io.IOException; import java.io.InputStream; /** * @authod Jia Junhao * @create 2020-10-03-11:35 */ public class MyBatisTest { public SqlSessionFactory getSqlSessionFactory() throws IOException{ String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); return new SqlSessionFactoryBuilder().build(inputStream); } /* 1、根据全局配置文件(mybatis-config.xml)创建一个SqlSessionFactory对象 有数据源一些运行环境信息 2、sql映射文件(EmployeeMapper.xml),配置了每一个sql,以及sql的封装规则等 3、将sql映射文件注册在全局配置文件中 4、写代码 1)根据全局配置文件得到SqlSessionFactory 2)使用sqlSession工厂,获取到sqlSession对象,然后进行增删改查 一个sqlSession就是代表和数据库的一次对话,用完关闭 3)使用sql的惟一标识告诉MyBatis执行哪个sql,sql都是保存在sql映射文件中 */ @Test public void test() throws IOException{ //1、获取sqlSessionFactory对象 SqlSessionFactory sqlSessionFactory=getSqlSessionFactory(); //获取sqlSession对象 SqlSession openSession=sqlSessionFactory.openSession(); try{ //3、获取接口的实现类对象 //会为接口自动的创建一个代理对象,代理对象去执行增删改查方法 EmployeeMapper mapper=openSession.getMapper(EmployeeMapper.class); Employee employee=mapper.getEmpById(1); System.out.println(employee); }finally { openSession.close(); } } }

    EmployeeMapper.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"> <mapper namespace="com.atguigu.mybatis.dao.EmployeeMapper"> <select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"> select id,last_name lastName,email,gender from tb1_employee where id = #{id} </select> </mapper>

    mybatis-config.xml

    <?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.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <mapper resource="EmployeeMapper.xml"/> </mappers> </configuration>

    小结 1、接口式编程

    原生: Dao ——> DaoImpl mybatis Mapper ——>xxMapper.xml

    2、SqlSession和connection都是非线程安全,每次使用都应该去获取新的对象。 3、mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象。(将接口和xml进行绑定)

    EmployeeMapper mapper=openSession.getMapper(EmployeeMapper.class);

    4、两个重要的配置文件 mybatis全局配置文件:包含数据库连接池信息,事务管理器信息等。。。系统运行环境信息 sql映射文件:保存了每一个sql语句的映射信息,将sql抽取出来

    Processed: 0.025, SQL: 8