SpringBoot+Mybatis 完整实例 增删查改
来源:互联网 发布:手机淘宝查看卖家电话 编辑:程序博客网 时间:2024/06/05 16:46
本文章主要是结合SpringBoot+MyBatis+MySQL来实现数据库的CRUD操作(增删查改),Maven项目工程中主要包括以下6个文件:
- User.java:实体类
- UserMapper.java:mapper映射器类
- UserController.java:控制类
- Application.java:启动类
- application.properties:配置文件,Spring项目启动自动加载
- pom.xml:pom文件
在Eclipse6个文件的位置如下所示:
注:其中src/main/resources在创建Maven Project时并没有,需要右键->New->Source Folder来添加
首先在MySQL中的Springdb模式下创建user表,包括4个属性:
id:int ,设置为[主键][6]且[自增][6]
userName:varchar
userAge:int
userAddress:varchar
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.spring.mybatis</groupId> <artifactId>springMybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>springMybatis</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build></project>
User实体类
package com.spring.mybatis.springMybatis.entity;import lombok.Getter;import lombok.Setter;@Setter@Getterpublic class User { private int id; private String userName; private int userAge; private String userAddress;}
以上也许有人会奇怪,@Setter和@Getter两个注解是什么意思。顾名思义应该会想到这是getter和setter方法。那么为什么这样做呢?
因为每个实体类都应该包含getter和setter方法才有意义。但是getter和setter方法的代码过于冗余,属于模板类型代码,影响代码阅读。@Setter和@Getter两个注解是属于[lombok][6]的,在pom.xml文件中添加依赖引入lombok:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.14.4</version></dependency>
这样在实体类中添加@Setter和@Getter注解,就可以省略getter和setter方法而达到同样的效果
如果你没有用过lombok可以上网查找相关资料学习一下,这个是很方便的。也十分易于学习理解
如果你不想使用lombok的话,直接在User.java中,右键->Source->Generate Getters and Setters来生产getter和setter方法。
application.properties
这个文件是放在src/main/resources目录下,当项目启动时,该文件会自动加载,application.properties内容如下:
spring.datasource.url=jdbc:mysql://localhost:3306/springdbspring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.jdbc.Driver
UserMapper.java映射器类
该类主要是用于CRUD操作的,一般有两种方式实现与数据库实现CRUD:
- 注解: @Insert、@Select、@Update、@Delete
- xml文件配置
本文中选择的是基于注解的
package com.spring.mybatis.springMybatis.dao;import java.util.List;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;import com.spring.mybatis.springMybatis.entity.User;@Mapperpublic interface UserMapper { @Select("select * from user where id = #{id}") public User selectUserById(int id); @Select("select * from user where userName = #{userName}") public List<User> selectUserByName(String userName); @Insert("insert into user(userName,userAge,userAddress) values (#{userName},#{userAge},#{userAddress})") public void addUser(User user); @Update("update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}") public void updateUser(User user); @Delete("delete from user where id=#{id}") public void deleteUser(int id);}
UserController.java 控制器类
package com.spring.mybatis.springMybatis.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import com.spring.mybatis.springMybatis.dao.UserMapper;import com.spring.mybatis.springMybatis.entity.User;@RestController@RequestMapping("/user")public class UserController { @Autowired UserMapper userMapper; @RequestMapping(value={"/selectUserById"}, method=RequestMethod.GET) public User selectUserById(String id){ User user = userMapper.selectUserById(Integer.parseInt(id)); return user; } @RequestMapping(value={"/selectUserByName"}, method=RequestMethod.GET) public List<User> selectUserByName(String userName){ return userMapper.selectUserByName(userName); } @RequestMapping(value={"/addUser"}, method=RequestMethod.POST) public void addUser(User user){ userMapper.addUser(user); } @RequestMapping(value={"/updateUser"}, method=RequestMethod.POST) public void updateUser(User user){ userMapper.updateUser(user); } @RequestMapping(value={"/deleteUser"}, method=RequestMethod.POST) public void deleteUser(String id){ userMapper.deleteUser(Integer.parseInt(id)); }}
该类是作为请求入口的,通过get/post请求来实现CRUD。
测试
本文采用google浏览器的postman插件来发送get/post请求。
其他对应的请求如下:
post请求后会在mysql中看到数据的改变。
- SpringBoot+Mybatis 完整实例 增删查改
- Mybatis增删改查实例
- Mybatis增删改查实例
- Mybatis增删改查实例
- springboot+Mybatis批量增删改查
- SpringBoot 数据库增删改查实例
- Mybatis的增删改查实例
- Mybatis 注解实例实现增删改查
- 4、SpringBoot+Mybatis多表操作以及增删改查
- SpringBoot整合Mybatis实现增删改查的功能
- Mybatis 增删改查
- mybatis增删改查
- mybatis增删改查
- mybatis 增删改查
- MyBatis增删改查
- mybatis--增删改查
- MyBatis增删改查
- MyBatis增删改查
- java图片验证码
- web.xml配置详解
- android富文本 加载带图片的html<drawable为null的bug>
- java实现手机扫二维码登陆
- 浅谈list和truple(python3)
- SpringBoot+Mybatis 完整实例 增删查改
- [日常训练] 单词
- poj Stall Reservations(贪心)
- 从零开始开发一款Android App
- vi 常用命令
- android开发之四种基本布局
- Service基础
- 扫码微信开发中的一些事
- window.open详解