springboot+springMVC+mysql+mybatis微整合

一.项目构建

  1. 下载springboot项目
    springboot+springMVC+mysql+mybatis微整合_第1张图片
  2. 添加mybatis逆向工程需要的依赖(jar包和插件):

            org.mybatis.generator
            mybatis-generator-core
            1.3.2
        

			
				org.mybatis.generator
				mybatis-generator-maven-plugin
				1.3.2
				
					${basedir}/src/main/resources/generator/generatorConfig.xml
					
					true
					
					true
				
			

  1. 完善项目目录
    springboot+springMVC+mysql+mybatis微整合_第2张图片

二.mybatis逆向工程

  1. 在generator目录下新建generatorConfig.xml,内容如下



    
    
    
        
        
        
            
            
        

        
        
        

        
        
            
        

        
        
            
            
            
            
        

        
        
            
        

        
        
            
        


        
        
        

注意:

connectionURL=“jdbc:mysql://localhost:3306/test?serverTimezone=GMT&nullCatalogMeansCurrent=true&characterEncoding=UTF-8”

  1. serverTimezone属性:不加这个属性的话,需要修改mysql配置文件,把数据库时区改为中国时区,否则会报错
  2. nullCatalogMeansCurrent属性:用于识别主键,老版本mysql的jar包中默认属性为true,不需要加,但新版本需要加上,要不然生成的xml文件没有主键.参考!MyBatis Generator踩坑与自救,如果按他上面的配置,表名前会有库名加两个点,项目进行中会因识别不了表名而报错
  3. 配置中路径和参数是我的路径和参数,灵活修改
  1. 运行generatorConfig.xml文件(本案例使用maven命令运行)
mybatis-generator:generate -e

springboot+springMVC+mysql+mybatis微整合_第3张图片

3. 运行后项目目录结构:
springboot+springMVC+mysql+mybatis微整合_第4张图片

三. 配置application.properties文件

spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis.type-aliases-package=com.example.demo.entity
mybatis.mapper-locations=classpath:mapper/*.xml

注意:

mysql-connector-java的jar包版本太高,驱动类名称:com.mysql.cj.jdbc.Driver,老版本的驱动类不推荐使用了,在逆向工程的配置文件中也是这样

四. 编写业务层代码合控制层代码

  1. 业务层接口
public interface StudentService {
    Student getStudent(Long id);
}
  1. 业务层实现
@Service
public class StudentServiceImpl implements StudentService {
    @Autowired
    private StudentMapper studentMapper;
    @Override
    public Student getStudent(Long id) {
        return studentMapper.selectByPrimaryKey(id);
    }
}

注意:

这里使用idea的时候,注入一个接口,studentMapper会标红,不会影响程序运行,因为mybatis使用动态代理生成了代理类,注入的其实是一个代理类,把error级别改为warning即可.或者每个mapper接口都加上@Component,不过比较麻烦

  1. 控制层
@RestController
public class StudentController {
    @Autowired
    private StudentService studentService;

    @RequestMapping("/")
    public String findStudent() {
        return studentService.getStudent(1L).toString();
    }
}
  1. 实体类Student重写toString方法
@Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
  1. 启动类DemoApplication加mapper路径扫描
@SpringBootApplication
@MapperScan("com.example.demo.dao")
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

五. 数据库表

springboot+springMVC+mysql+mybatis微整合_第5张图片

六. 运行项目

直接运行启动类main方法,浏览器输入地址:http://localhost:8080/
结果:
springboot+springMVC+mysql+mybatis微整合_第6张图片

你可能感兴趣的:(springboot)