SpringBoot如何通过yml方式整合Mybatis

这篇文章主要介绍了SpringBoot如何通过yml方式整合Mybatis,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

本来打算写个使用Sharding-JDBC的例程,但是在搭建Mybatis的过程中,一波三折,因为好久没搭建项目了,另外加上换了电脑。所以很破折,在这里记录一下Spring Boot整合Mybatis吧。可能很简单,但是我长时间没用忘记了,我这里备忘一下吧。

一、项目目录结构

注意这里Application文件的位置,它是与controller、entity、mapper、service等包处于并列的关系。

二、数据库文件

SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for t_user_00 -- ---------------------------- DROP TABLE IF EXISTS `t_user_00`; CREATE TABLE `t_user_00` ( `id` int(0) NOT NULL AUTO_INCREMENT, `user_id` int(0) NOT NULL, `name` varchar(255) CHaraCTER SET utf8 COLLATE utf8_general_ci NOT NULL, `age` int(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHaraCTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;

三、pom.xml

4.0.0org.springframework.bootspring-boot-starter-parent2.1.13.RELEASEcom.gougoushardingjdbc-shardingtable-demo0.0.1-SNAPSHOTshardingjdbc-shardingtable-demoshardingjdbc-shardingtable-demoUTF-81.8org.springframework.bootspring-boot-starter-weborg.projectlomboklomboktrueorg.mybatis.spring.bootmybatis-spring-boot-starter1.3.2MysqLmysql-connector-javaorg.springframework.bootspring-boot-maven-plugin

四、application.yml

# 数据源 spring: application: name: shardingjdbc-shardingtable-demo datasource: url: jdbc:MysqL://localhost:3306/sharding_0?serverTimezone=UTC username: root password: root driver-class-name: com.MysqL.jdbc.Driver dbcp2: min-idle: 5 # 数据库连接池的最小维持连接数 initial-size: 5 # 初始化连接数 max-total: 5 # 最大连接数 max-wait-millis: 150 # 等待连接获取的最大超时时间 # mybatis配置 mybatis: mapper-locations: classpath:mapper/*.xml # mapper映射文件位置 type-aliases-package: com.gouggou.shardingtable.entity # 实体类所在的位置 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #用于控制台打印sql语句

五、启动类Application

说明:

1、@MapperScan的:扫描mapper接口的位置

2、@ComponentScan:如果Application文件的位置不是与controller、entity、mapper、service等包处于并列的关系。就要用此注解,否则可以不用;

@MapperScan("com.gouggou.shardingtable.mapper") @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

六、controller

@RequestMapping("student") @RestController public class UserController { @Autowired private UserService userService; @RequestMapping("save") public String save() { User user = new User(); user.setUserId(new Random().nextInt( 1000 ) + 1); user.setName("张三"+user.getUserId()); user.setAge(new Random().nextInt( 80 ) + 1); userService.insert(user); return user.getName()+"创建成功!"; } }

七、service

public interface UserService { Integer insert(User u); List findAll(); List findByUserIds(List userIds); }

@Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public Integer insert(User u) { return userMapper.insert(u); } @Override public List findAll() { return userMapper.findAll(); } @Override public List findByUserIds(List userIds) { return userMapper.findByUserIds(userIds); } }

八、entity

@Data public class User implements Serializable { private static final long serialVersionUID = -5514139686858156155L; private Integer id; private Integer userId; private String name; private Integer age; }

九、Mapper

@Repository public interface UserMapper { Integer insert(User u); List findAll(); List findByUserIds(List userIds); }

insert into t_user_00 (user_id,name,age) values (#{userId},#{name},#{age}) select from t_user_00 select from t_user_00 where user_id in ( #{item} ) id,user_id,name,age

十、遇到的问题

1、idea 右键无java class选项

2、maven仓库中产生后缀是LastUpdated的文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...