SpringBoot 集合mybatis代码生成器

来源:互联网 发布:postgresql mysql 电商 编辑:程序博客网 时间:2024/05/21 15:06

项目git地址:https://github.com/ricky739996585/BaseSpringBoot.git


1.用idea 创建一个springboot项目(如果用eclipse开发,下载spring-tools-suite来创建springboot项目):

这里不详细介绍如何创建了,有一个关键需要注意的是:


2.在原本的pom.xml中加入以下以来:

<!-- springboot热部署依赖 --><dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-devtools</artifactId></dependency><!-- mysql依赖 --><dependency>   <groupId>mysql</groupId>   <artifactId>mysql-connector-java</artifactId></dependency><!-- 高性能JDBC连接池组件 ,性能比常用的 c3p0、tomcat、bone、vibur 这些要高很多 --><dependency>   <groupId>com.zaxxer</groupId>   <artifactId>HikariCP</artifactId>   <!-- 版本号可以不用指定,Spring Boot会选用合适的版本 --></dependency><!-- mybatis --><dependency>   <groupId>org.mybatis.spring.boot</groupId>   <artifactId>mybatis-spring-boot-starter</artifactId>   <version>1.2.0</version></dependency><dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-configuration-processor</artifactId>   <optional>true</optional></dependency><!-- mybatis 代码生成器所需jar包 --><dependency>   <groupId>org.mybatis.generator</groupId>   <artifactId>mybatis-generator-core</artifactId>   <version>1.3.2</version></dependency><!-- thymeleaf模板以来--><dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

3.然后把代码生成器的运行代码放在test文件夹中(如图所示):
代码在项目中,直接复制粘贴到如图所示的位置即可。
接着把生成器的配置文件放到resources文件夹下:
这是配置文件的具体内容:
4.直接运行GenMain类的主方法,然后代码会根据数据库的表结构来生成domain、dao和mapper.xml三个部分的代码:
5.接下来就要自己写service层和controller层(注意在dao层加入@Repository注解):
目录结构:
UserService接口:
package com.example.user.service;import com.example.user.domain.UserVO;import java.util.List;public interface UserService {    public List<UserVO> getAll();    public UserVO getUser(Integer id);    public int insert(UserVO user);    public void update(UserVO user);    public void delete(Integer id);}

UserServiceImpl实现类:
package com.example.user.service.Impl;import com.example.user.dao.UserVOMapper;import com.example.user.domain.UserVO;import com.example.user.domain.UserVOExample;import com.example.user.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class UserServiceImpl implements UserService{    @Autowired    public UserVOMapper userVOMapper;    @Override    public List<UserVO> getAll() {        UserVOExample example=new UserVOExample();        example.createCriteria().andIdIsNotNull();        return userVOMapper.selectByExample(example);    }    @Override    public UserVO getUser(Integer id) {        return userVOMapper.selectByPrimaryKey(id);    }    @Override    public int insert(UserVO user) {        return userVOMapper.insertSelective(user);    }    @Override    public void update(UserVO user) {        userVOMapper.updateByPrimaryKeySelective(user);    }    @Override    public void delete(Integer id) {        userVOMapper.deleteByPrimaryKey(id);    }}

UserController控制层:
package com.example.user.controller;import com.example.user.domain.UserVO;import com.example.user.service.UserService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController@RequestMapping("/user")public class UserController {    private Logger logger =  LoggerFactory.getLogger(this.getClass());    @Autowired    private UserService userService;    @RequestMapping("/getAll")    public List<UserVO> getAllUser(){        return userService.getAll();    }}

6.接下来在启动类DemoApplication中加入Bean预加载:
加入请求地址映射的规则,只接受*.do的请求:
数据源的配置(hikari是一种高性能的数据源):

SqlSessionFactory的配置,把mapper.xml交给mybatis管理:


事务管理配置:



最后在红框地方加入2个注解,
@ComponentScan负责扫描xml、properties配置文件
@MapperScan负责扫描dao层的mapper.java文件



7.在resources下加入配置文件:


application.properties:


hikari.properties:



8.在templates文件夹中添加html文件,然后再修改controller:



get.All.html:


9.访问地址:http://localhost/user/getAll.do



10.总算成功访问到数据了,但是有2点需要注意的地方:

(1)关于thymeleaf模板如何使用,可以参考文章:阅读

(2)当数据库的表结构修改后,需要重新使用代码生成器时,需要帮原来的domain、dao、mapper中的文件删除,不然会出现错误的情况。


原创粉丝点击