首先引入jar
<!-- 引入starter-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
<scope>runtime</scope>
</dependency>
<!-- MySQL的JDBC驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 引入第三方数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency>
配置文件的配置
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=utf-8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
启动类增加mapper扫描
@MapperScan("com.boot.*.mapper") // mapper 注释扫描那些mapper com.boot.*.mapper 为mapper 文件夹的路径
@SpringBootApplication
@MapperScan("com.boot.*.mapper") // mapper 注释扫描那些mapper
public class TestBootApplication {
public static void main(String[] args) {
SpringApplication.run(TestBootApplication.class, args);
}
}
mapper 文件中的注解
@Repository
public interface UserMapper {
@Select("select * from user where id = #{id}")
@Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
public User getId(String id);
}
@Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id") 这个是指定数据库的字段和实体类中的字段
这里我mapper 用的注解是@Repository 其实这里还可以用@mapper
这两个有所不同
@Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中。
@Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。
让控制台操作打印sql 语句 在配置文件中加入
logging: level: com.boot.test.mapper: debug
com.boot.test.mappe 这个为mapper文件存放的文件夹