添加mybatis、MysqL驱动、Druid(连接池)依赖
<dependency>
<groupId>MysqL</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.5</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
在application.properties中配置数据库的基本信息
spring.datasource.url=jdbc:MysqL://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
-
直接使用mybatis的注解进行查询
@Repository
public interface BookMapper {
@Select("select * from Book where id=#{id}")
Book queryById(String id);
}
Mapper.java创建好之后,还要配置mapper扫描,第一种方法是在每个Mapper.java上添加 @Mapper注解(不推荐);第二种在项目启动类上添加@MapperScan扫描Mapper
@SpringBootApplication
@MapperScan(basePackages = "com.hjy.dao")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
-
使用mapper.xml进行查询
使用mapper.xml进行查询时,xml文件可以存放在两个地方:
-
和Mapper.java存放在同一个包下,放在这里的Mapper.xml会被自动扫描到,但是有另外一个Maven带来的问题,就是java目录下的xml资源在项目打包时会被忽略掉,所以,如果UserMapper.xml放在包下,需要在pom.xml文件中再添加如下配置,避免打包时java目录下的XML文件被自动忽略掉
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
-
xml放在resources目录下,这样就不用担心打包时被忽略了,但是放在resources目录下,又不能自动被扫描到,需要在application.properties中添加配置。例如在resources目录下创建mapper目录用来放mapper文件
mybatis.mapper-locations=classpath:mapper/*.xml