Mybatis 初始化
本文最后更新于:2024年9月8日 晚上
Mybatis 初始化
Spring 环境
pom.xml
1 2 3 4 5 6 7 8 9 10
| <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency>
|
spring-mapper.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<context:property-placeholder location="classpath:database.properties"/>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="mapperLocations" value="classpath*:mapper/*.xml"/> </bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <property name="basePackage" value="com.example.mapper"/> </bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> </beans>
|
mybatis-config.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?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> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <typeAliases> <package name="com.example.entity"/> </typeAliases> </configuration>
|
Mapper层接口
1 2 3
| public interface UserMapper { List<User> selectUser(); }
|
mapper.xml
1 2 3 4 5 6 7 8 9
| <?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.example.mapper.UserMapper"> <select id="selectUser" resultType="com.example.entity.User"> select * from user </select> </mapper>
|
测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| public class UserTest {
@Autowired private UserMapper userMapper;
@Test public void MapperTest() { List<User> userList = userMapper.queryAllUser(); for (User user : userList) { System.out.println(user); } }
@Test public void selectUser() { InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); List<User> users = session.selectList("com.example.mapper.UserMapper.selectUser"); UserMapper mapper = session.getMapper(UserMapper.class); List<User> users = mapper.selectUser();
for (User user: users){ System.out.println(user); } session.close(); } }
|
Spring Boot 环境
pom.xml
1 2 3 4 5
| <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency>
|
applicationContext.xml
1 2 3 4 5 6 7 8 9
| spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Driver mybatis: mapper-locations: classpath:com/example/mapper/*.xml type-aliases-package: com.example.entity
|
dao层接口
1 2 3 4
| @Mapper public interface UserMapper { List<User> selectUser(); }
|
@Mapper
:表示本类是一个 MyBatis 的 Mapper
@MapperScan
注解,可以在主启动类上添加该注解,自动扫描包路径下的所有接口,可省略@Mapper注解。
1 2 3 4 5 6 7
| @SpringBootApplication @MapperScan("com.example.mapper") public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } }
|
mapper.xml
1 2 3 4 5 6 7 8 9
| <?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.example.mapper.UserMapper"> <select id="selectUser" resultType="com.example.entity.User"> select * from user </select> </mapper>
|
测试
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class UserTest {
@Autowired private UserMapper userMapper;
@Test public void MapperTest() { List<User> userList = userMapper.queryAllUser(); for (User user : userList) { System.out.println(user); } } }
|