第一步:依赖的导入pom.xml
①一定会有数据库驱动的依赖
版本太低的话(如5.1.47),在yml里面的驱动会加载不出来的
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
②mybatis/通用mapper/mybatis-plus 三选一
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<!-- 配置通用mapper启动器 -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<!-- mybatis-plus 是自己开发,并非官方的! -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
对于springboot项目可以导入下面这个mybatis依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
spring:
datasource:
username: root
password: zykj5717
url: jdbc:mysql://183.62.240.92:3306/zycx_test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=true&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mapper/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
如果不能关联过去需要配置yml
mybatis:
mapper-locations: classpath:mapper/*.xml
其他常用的依赖
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
③application.yml的配置
# mysql 5 驱动不同 com.mysql.jdbc.Driver
# mysql 8 驱动不同 com.mysql.cj.jdbc.Driver、
# mysql 8 需要增加时区的配置serverTimezone=GMT%2B8
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/newsell?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=true&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mapper/*.xml
configuration:
# 打印语句
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 自动转换驼峰
map-underscore-to-camel-case: true
遇到了时区相差8小时的问题:
?serverTimezone=GMT%2B8
serverTimezone=Asia/Shanghai
使用
对于mybatis
传统方式pojo-dao(连接mybatis,配置mapper.xml文件)-service-controller
对于通用mapper
在启动类上使用MapperScan注解扫描需要的接口
@MapperScan(“xxx”)
对于mybatis-plus
1、SQL谁帮我们写的 ? MyBatis-Plus 都写好了
2、方法哪里来的? MyBatis-Plus 都写好了
①在启动类上添加注解扫描
@MapperScan("com.kuang.mapper")
②mapper接口
package com.kuang.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kuang.pojo.User;
import org.springframework.stereotype.Repository;
// 在对应的Mapper上面继承基本的类 BaseMapper
@Repository // 代表持久层
public interface UserMapper extends BaseMapper<User> {
// 所有的CRUD操作都已经编写完成了
// 你不需要像以前的配置一大堆文件了!
}
③使用
@SpringBootTest
class MybatisPlusApplicationTests {
// 继承了BaseMapper,所有的方法都来自己父类
// 我们也可以编写自己的扩展方法!
@Autowired private UserMapper userMapper;
@Test void contextLoads() {
// 参数是一个 Wrapper ,条件构造器,这里我们先不用 null
// 查询全部用户
List<User> users = userMapper.selectList(null); users.forEach(System.out::println);
}
}
④ 扩展:
我们所有的sql现在是不可见的,我们希望知道它是怎么执行的,所以我们必须要看日志!
如何配置日志呢?