mybatis深入理解
准备工作:
导入依赖pom文件中
<?xml version="1.0" encoding="UTF-8"?>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
Mybits
com.whz
1.0-SNAPSHOT
4.0.0
Mybatis-02
org.mybatis
mybatis
3.5.2
org.projectlombok
lombok
1.18.20
provided
junit
junit
4.12
mysql
mysql-connector-java
5.1.47
org.springframework
spring-jdbc
5.1.9.RELEASE
org.mybatis
mybatis-spring
2.0.2
org.springframework
spring-webmvc
5.1.9.RELEASE
src/main/java
**/*.properties
**/*.xml
false
src/main/resources
**/*.properties
**/*.xml
false
Spring 一起使用 MyBatis,需要在 Spring 应用上下文中定义至少两样东西:一个 SqlSessionFactory 和至少一个数据映射器类。
可使用 SqlSessionFactoryBean来创建 SqlSessionFactory
《spring配置文件中》
配置文件类型:
注解类型:
@Configuration public class MyBatisConfig { @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource()); return factoryBean.getObject(); } }
所需的datasource:
映射器类必须是一个接口,而不是具体的实现类
假设接口名《mapper的接口》:
配置文件类型:
public interface UserMapper {
@Select("SELECT * FROM website")
List selectUser();
}
注解类型:
<?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="com.whz.Dao.userMapper"> <select id="selectUser" resultType="com.whz.pojo">
select * from website
select>
Spring 一起使用 MyBatis使用MapperFactoryBean去整合(2)映射器和(1)SqlSessionFactory
《spring配置文件中》加入:
配置文件类型:
注解类型:
@Configuration
public class MyBatisConfig {
@Bean
public UserMapper userMapper() throws Exception {
SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory());
return sqlSessionTemplate.getMapper(UserMapper.class);
}
}
pojo实体类:
package com.whz.pojo;
import lombok.Data;
@Data
public class User {
private String account;
private String password;
private String name;
}
测试:
public class test {
@Test
public void test01() {
ApplicationContext app= new ClassPathXmlApplicationContext("spring-dao.xml");
UserMapper userMapper = (UserMapper) app.getBean("userMapper");
List users = userMapper.selectUser();
for (User user: users){
System.out.println(user.getName());
}
}
}