Spring Boot集成Mybatis+Mysql完成CURD操作

前言:在上一篇快速生成SpringBoot项目的基础上,我们今天完成MyBatis的集成,并完成MySQL中的CURD。

MyBatis  是一个基于Java的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

1.数据库创建一个表:用于测试结果:

DROP DATABASE IF EXISTS `bigdata`;
CREATE DATABASE bigdata /*!40100 DEFAULT CHARACTER SET utf8 */;
USE bigdata;
create table user(
id int AUTO_INCREMENT primary key,
username varchar(20),
userage int ,
useraddress varchar(200)
);
insert into user value(0,"张三0",20,"江苏");
insert into user value(0,"张三1",25,"江苏");
insert into user value(0,"张三2",24,"江苏");
insert into user value(0,"张三3",22,"江苏");
insert into user value(0,"张三4",20,"江苏");

2.为了快速生成entity,Mapper和mapperxml文件,我们使用mybatis generators快速生成代码。

    2.1我们现在pom.xml中完成相关引用

  
            org.mybatis.generator  
            mybatis-generator-maven-plugin  
            1.3.2  
              
                src/main/resources/config/generatorConfig.xml 
                true  
                true  
              
         

    2.2在此src/main/resources/config/generatorConfig.xml路径下,完成相关配置(包括是否添加注释,实体文件位置等)特别关系的是example这个相关类(方法)时候要生成,此处设置的false,后面再研究。




	
    
	
	
	
		
		
			
			
		

		
		
		
			
			
		
		
		
			
		
		
		
			
		
		
		
		

3.完成项目框架(注意:这边所有添加包,一定要在启动类所在包的子目录下)也可以把上面数据库驱动的位置,实体类位置,等写在文件下,直接用xml文件读取。

Spring Boot集成Mybatis+Mysql完成CURD操作_第1张图片

4.选择generatorConfig.xml右键run->run Configuations->Maven Build 选择现在项目->在Goals中输入命令 mybatis-generator:generate->Apply->Run    刷新项目,看到相应的文件

Spring Boot集成Mybatis+Mysql完成CURD操作_第2张图片

5.到此我们持久层的文件基本生成,我们需要在application.properties中添加

mybatis.mapper-locations=classpath*:/mapper/*Mapper.xml

为了程序可以自动读到这个xml。(不然你在别的地方使用此Mapper时,会报bean找不到的错误)。

并配置数据库必要因素:

spring.datasource.url=jdbc:mysql://localhost:3306/bigdata
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=520123

6.编写Controller层,用来测试我们的整合是否完成。

@RestController
@RequestMapping("/User")
public class UserController {
	@Autowired
	private UserService userservice;
	//展示所有的user
	@RequestMapping("/showalluser")
	public List showalluser() {
		System.out.println("showalluser");
		List list=userservice.FindAll();
		return list;
	}
}

@RestController标识返回的是一个json数据,不会调用视图解析器,@Controller则返回到页面

@RequestMapping 是地址映射,对应uri的内容

@Autowired是Spring的自动织入,直接调用服务层的相关业务。

7.编程服务层Service

编一个接口,后再写一个实现类,解耦。

这边直接上实现类

@Service
@Transactional
public class UserServiceImpl implements UserService{

	@Autowired
	private UserMapper usermapper;
 
	@Transactional(propagation=Propagation.SUPPORTS,readOnly=true)
	public List FindAll() {
		return usermapper.selectAll();
	}

}

@Service标识我是服务层

@Transactional标识开启事务

@Autowired自动织入,持久层的相关操作。

8.完成Dao层的相关操作,因为,查询所有用户是自动生成代码不没带的功能,我自己手动加入的

Mapper 接口层

添加:  List selectAll();

Mapper实现层xml中

实现:

 

9.直接启动,启动类。在浏览器输入对应的uri:如下表示基本整合完成,对应的 增删改查,都在Mapper中就不一一测试。

推荐使用上一篇的springboot整合的junit来测试。

Spring Boot集成Mybatis+Mysql完成CURD操作_第3张图片

总结:1.配置*Mapper.xml位置是关键,后面研究注解是可以感觉注解的好处。

        2.mybatis generators自动生成代码的使用。

        3.xx.properties文件的创建   File->new->File,可以新建各种文件。


你可能感兴趣的:(Springboot,Maven)