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


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

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

SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器

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;

@Service
public 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是一种高性能的数据源):

SpringBoot 集合mybatis代码生成器

SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器


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

SpringBoot 集合mybatis代码生成器

SpringBoot 集合mybatis代码生成器

SpringBoot 集合mybatis代码生成器


事务管理配置:

SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器


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

SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器


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

SpringBoot 集合mybatis代码生成器

application.properties:

SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器

hikari.properties:

SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器


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

SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器


get.All.html:

SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器

9.访问地址:http://localhost/user/getAll.doSpringBoot 集合mybatis代码生成器

SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器SpringBoot 集合mybatis代码生成器

SpringBoot 集合mybatis代码生成器

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

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

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


相关文章: