SpringBoot2.x-myBatis简单使用
2020-02-17 05:11
381 查看
SpringBoot2.x-myBatis简单使用
开发工具:IDEA2019
一、加入springBoot和myBatis需要的依赖包(pom.xml)
<?xml version="1.0" encoding="UTF-8"?> <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>**项目组织id**</groupId> <artifactId>**项目名**</artifactId> <version>0.0.1-SNAPSHOT</version> <name>**项目名**</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
二、对springBoot的application.yml(application.propertys)进行配置
spring: datasource: #数据库的驱动类型 driver-class-name: com.mysql.jdbc.Driver #数据库用户名 username: **** #数据库密码 password: **** #数据库地址+数据库名 url: jdbc:mysql://localhost:3306/**数据库名**?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8 thymeleaf: cache: false mybatis: #给类起别名 com.xgg.dev是定义项目组织id(groupId) # type-aliases-package需要加载到启动器的父级 type-aliases-package: com.xgg.dev.项目名 #扫描mapper.xml文件 mapper-locations: classpath:mapper/*.xml #添加日志信息 com.xgg.dev是定义项目组织id(groupId) logging: level: com: xgg: dev: debug
三、环境配置完毕,以简单的用户表为例进行实现
(1)实体类
public class User { private Integer id; private String userName; private String userHome; //省略set/get }
(2)UserMapper接口
注意:切记加上@Mapper注解,否则mapper扫描不到报错
package com.xgg.dev.test_ssm.user.dao; import com.xgg.dev.test_ssm.user.pojo.User; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface UserMapper { //查询所有 List<User> queryAll(); //查询单个 User findUserById(Integer id); //增加用户 int addUser(User user); //修改用户 int updaUser(User user); //删除用户 int delUser(Integer id); }
(3)UserMapper.xml
对UserMapper接口进行实现,并将查询结果根据对映的实体类进行输出
mybatis不同于hibernate
mybatis是直接操作表,实体类用来接受查询结果和传参
hibernate是通过操作绑定好的实体类去操作表
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 映射mapper接口 --> <mapper namespace="com.xgg.dev.test_ssm.user.dao.UserMapper"> <!-- 管理映射关系:id表示唯一标识,返回类型 type是表对应的实体类 --> <resultMap id="userMap" type="User"> <!-- cloumn是在数据库中的字段,property是实体类中对应的属性 --> <id column="id" property="id"></id> <result column="user_name" property="userName"></result> <result column="user_home" property="userHome"></result> </resultMap> <!-- 查询所有 --> <select id="queryAll" resultMap="userMap"> SELECT u.id,u.user_name,u.user_home FROM user u </select> <!-- 按id查询 --> <select id="findUserById" resultMap="userMap"> SELECT u.id,u.user_name,u.user_home FROM user u where id=#{id} </select> <!-- 添加用户 --> <insert id="addUser" > insert into user(user_name,user_home) values(#{userName},#{userHome}); </insert> <!-- 修改用户信息 --> <update id="updaUser" > UPDATE user SET user_name=#{userName},user_home=#{userHome} WHERE id=#{id} </update> <!-- 删除用户 --> <delete id="delUser"> delete from user where id=#{id} </delete> </mapper>
(4)IUserService接口
public interface IUserService { //查询所有 List<User> queryAll(); //查询单个 User findUserById(Integer id); //增加用户 int addUser(User user); //修改用户 int updaUser(User user); //删除用户 int delUser(Integer id); }
(5)UserService实现类
service调用持久层(dao)方法进行接口的实现(可以将多个不同的mapper方法整合成自己需要的方法)
@Transactional():注解式事务
rollbackFor = Exception.class:任何异常(Exception)都会进行事务回滚(rollbackFor)
@Service @Transactional(rollbackFor = Exception.class) public class UserService implements IUserService { @Autowired private UserMapper userMapper; @Override public List<User> queryAll() { return userMapper.queryAll(); } @Override public User findUserById(Integer id) { return userMapper.findUserById(id); } @Override public int addUser(User user) { return userMapper.addUser(user); } @Override public int updaUser(User user) { return userMapper.updaUser(user); } @Override public int delUser(Integer id) { return userMapper.delUser(id); } }
(6)Controller控制层
package com.xgg.dev.test_ssm.user.web; import com.xgg.dev.test_ssm.user.pojo.User; import com.xgg.dev.test_ssm.user.service.IUserService; 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 { @Autowired private IUserService userService; //查询所有用户 @RequestMapping("queryAll") private List<User> queryAll() { return userService.queryAll(); } //查询单个 @RequestMapping("/findUserById") private User findUserById(Integer id) { return userService.findUserById(id); } //增加用户 @RequestMapping("/addUser") public int addUser(User user) { return userService.addUser(user); } //修改用户信息 @RequestMapping("/updaUser") public int updaUser(User user) { return userService.updaUser(user); } //删除用户 @RequestMapping("/delUser") public int delUser(Integer id) { return userService.delUser(id); } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Maven Profile 与 Spring Profile 管理多环境打包
- Spring面试总结
- Java核心技术卷一读书笔记 第四章:对象与类
- 理解Spring中的IOC
- Java运行时数据区域
- Java代码如何运行?
- 在java中使用Mysq数据库遇到的一些问题
- Java使用gmgraphicemagic 进行图片变换大小
- Java根据文件名下载FTP服务器上文件
- java pdf转图片
- 通过idea gradle本地搭建spring5阅读环境
- eureka启动报java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder的错
- IDEA+java通过SSH来进行分析日志,实现UI自动化动态验证码登录
- build目录调整 eclipse maven项目
- 从追MM谈Java的23种设计模式
- Java异常处理机制
- 启动RSA 报错 Eclipse :“Java was started but returned exit code = -1”
- java常用的框架介绍
- eclipse 插件安装以及常见问题解决
- eclipse 调试技巧