springboot整合mybatis

导入依赖:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!--整合 druid数据源 mybatis mysql junit-↑ jdbc--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <!--引入thymeleaf依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
新建个application.yaml写数据库的配置
spring: datasource: username: root password: 111111 driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/smbms?serverTimezone=GMT%2B8&useSSL=true type: com.alibaba.druid.pool.DruidDataSource #---------------------------------------------------------------------------------------- #Spring Boot 默认是不注入这些属性值的,需要自己绑定 #druid 数据源专有配置 initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true #druid 牛逼就牛逼在自带监控功能,还可以 ↓ #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入 #如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority #则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j #看filtes:这块有log4j 所以不写log4j的依赖就会报错 filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 #----------------------------------------------------------------------------------------
写一下UserMapper.interface
/* * 从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件(那个xml写的是真的蛋疼。。。)。 * @Mapper 是mybatis的注解 @Repository让Spring容器帮我们自动装配bean * */ @Mapper @Repository public interface UserMapper { //查询 public List<User> queryAll(); //添加数据 public int addUser(User user); //根据用户名模糊查询 public List<User> queryByLikeName(String username); }
写一下UserMapper.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.example.demo.mapper.UserMapper"> <select id="queryAll" resultType="com.example.demo.pojo.User"> select * from user </select> <insert id="addUser" parameterType="com.example.demo.pojo.User"> insert into user (username,userid) values (#{username},${userid}); </insert> <select id="queryByLikeName" parameterType="String" resultType="com.example.demo.pojo.User"> select * from user where username like #{arg0} </select> </mapper>
在主启动类头上写mapper扫描注解
//去扫描mapper @MapperScan("com.example.demo.mapper") @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
测试一下
@SpringBootTest class DemoApplicationTests { @Autowired DataSource dataSource; @Autowired UserMapper userMapper; @Test void contextLoads() { System.out.println(dataSource.getClass()); //查看现在所使用的数据源 final List<User> users = userMapper.queryAll(); for (User user : users) { System.out.println(user); } } @Test void contextLoads2() { final List<User> users = userMapper.queryByLikeName("%用%"); for (User user : users) { System.out.println(user); } } }

浙公网安备 33010602011771号