关键词:
Spring boot 学习笔记 (二)- 整合MyBatis
Spring Boot中整合MyBatis,并通过注解方式实现映射。
整合MyBatis
以Spring boot 学习笔记 (一)- Hello world 为基础项目,在pom.xml中添加如下依赖
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency>
在application.properties 文件下 添加mysql的连接配置(切记不要在行尾留有空格,否则报com.mysql.jdbc.Driver Class Not Found error,其实只是含有空格导致找不到类)
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password= spring.datasource.driver-class-name=com.mysql.jdbc.Driver
同其他Spring Boot工程一样,简单且简洁的的完成了基本配置,下面看看如何在这个基础下轻松方便的使用MyBatis访问数据库。
添加com.latteyan.entity包,并添加User 类
package com.latteyan.entity; import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 8002149736589557777L; private Long id; private String name; private Integer age; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
添加com.latteyan.dao包,并添加UserMapper接口
package com.latteyan.dao; import java.util.List; import java.util.Map; import com.latteyan.entity.User; import org.apache.ibatis.annotations.*; @Mapper public interface UserMapper { // 通过Parameter新增 @Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})") int insertByParameter(@Param("name") String name, @Param("age") Integer age); // 通过Map新增 @Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})") int insertByMap(Map<String, Object> map); // 通过Object新增 @Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})") int insertByObject(User user); // Delete By Id @Delete("DELETE FROM user WHERE id =#{id}") void delete(Long id); // Update @Update("UPDATE user SET age=#{age} WHERE name=#{name}") void update(User user); // Find by Parameter @Select("SELECT * FROM USER WHERE NAME = #{name}") User findByName(@Param("name") String name); // 通过@Results,绑定返回值 @Results({ @Result(property = "name", column = "name"), @Result(property = "age", column = "age") }) @Select("SELECT name, age FROM user") List<User> findAll(); }
通过UserMapper 接口我们就可以现在访问数据库的功能.
单元测试
package com.latteyan; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import com.latteyan.dao.UserMapper; import com.latteyan.entity.User; @RunWith(SpringRunner.class) @SpringBootTest public class SpringbootApplicationTests { @Autowired private UserMapper userMapper; @Test public void add() throws Exception { // insert by parameter userMapper.insertByParameter("zhangShan", 20); // insert by object User user = new User(); user.setAge(21); user.setName("LiSi"); userMapper.insertByObject(user); // insert by map Map<String, Object> map = new HashMap<>(); map.put("name", "huangwu"); map.put("age", 22); userMapper.insertByMap(map); User zhangShan = userMapper.findByName("zhangShan"); Assert.assertEquals(20, zhangShan.getAge().intValue()); User LiSi = userMapper.findByName("LiSi"); Assert.assertEquals(21, LiSi.getAge().intValue()); User huangwu = userMapper.findByName("huangwu"); Assert.assertEquals(22, huangwu.getAge().intValue()); } @Test public void udpate() throws Exception { User user = userMapper.findByName("zhangShan"); user.setAge(50); userMapper.update(user); user = userMapper.findByName("zhangShan"); Assert.assertEquals(50, user.getAge().intValue()); userMapper.delete(user.getId()); } @Test public void findAll() throws Exception { List<User> users = userMapper.findAll(); Assert.assertNotNull(users); } }
参考:http://blog.didispace.com/springbootmybatis/
springboot学习笔记--[springboot集成阿里druid数据源,整合mybatis搭建一个案例试试](代码片段)
文章目录1.springboot整合阿里数据源2.springboot整合Mybatis3.试试案例测试1.springboot整合阿里数据源首先在pom.xml文件中导入依赖坐标<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</versio... 查看详情
mybatis-plus学习笔记(代码片段)
目录1.Mybatis-Plus简介1.1Mybatis-Plus介绍1.2代码以及文档1.3特性1.4框架结构1.5作者2.快速入门2.0准备工作2.1Mybatis整合Mybatis-Plus2.1.1原生Mybatis查询2.1.2使用Mybatis-Plus查询2.2Spring&Mybatis整合Mybatis-Plus2.3SpringBoot、Mybatis整合Mybatis 查看详情
springboot学习10:springboot整合mybatis
需求:通过使用SpringBoot+SpringMVC+MyBatis整合实现一个对数据库中的t_user表的CRUD的操作1、创建maven项目,添加项目所需依赖<!--springboot项目依赖的父项目--><parent><groupId>org.springframework.boot</groupId><artifactId> 查看详情
springmvc学习笔记-springmvc整合mybatis之service
springmvc学习笔记(8)-springmvc整合mybatis之servicespringmvc学习笔记8-springmvc整合mybatis之service定义service接口在spring容器配置service事务控制本文记录如何整合service,包括定义spring接口,在spring容器配置service以及事务控制。让spring管理servic... 查看详情
学习整合springboot2.0和mybatis,实现基本的crud
前言:本文是在自己整合springboot2.0和mybatis时的过程和踩得坑。先附上github地址:https://github.com/yclxt/springboot-mybatis.git环境/版本:工具:IntellijIDEA2018.3JDK:1.8Springboot:2.0.4.RELEASEMybatis:1.3.2由于本人是初学者,对druid和handlePage不太熟 查看详情
第275天学习打卡(知识点回顾springboot整合mybatis操作)
知识点回顾springboot整合MyBatis操作1.配置模式全局配置文件SqlSessionFactory:自动配置好了SqlSession:自动配置了SqlSessionTemplate组合了SqlSession@Import(AutoConfiguredMapperScannerRegistrar.class)Mapper:只要我们写的操作MyBatis的接口标注了@Map 查看详情
mybatis学习笔记--maven+spring+mybatis从零开始搭建整合详细过程(下)
继续 mybatis学习笔记(五)--maven+spring+mybatis从零开始搭建整合详细过程(上) 五、使用监听器启动Spring容器1、修改pom.xml文件,添加Spring-web2、修改web.xml,配置启动Spring容器3、新建BookServer4、新建BookServlet5、修改Application... 查看详情
第276天学习打卡(知识点回顾springboot整合mybatis-plus)
知识点回顾springboot整合Mybatis-plus自动配置MyBatisPlusAutoConfiguration配置类,MyBatisPlusProperties配置项绑定。mybatis-plus:xxx就是对mybatis-plus的定制SqlSessionFactory自动配置好,底层是容器中默认的数据源mapperLocations自动配置好的。有... 查看详情
springboot学习笔记-3整合redis&mongodb
一.整合redis1.1建立实体类@Entity@Table(name="user")publicclassUserimplementsSerializable{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateLongid;privateStringname;@DateTimeFormat(pattern="yyyy-MM-ddHH:m 查看详情
springboot学习笔记:整合aop(代码片段)
本文介绍SpringBoot整合aop(面向切面编程)一.创建一个SpringBoot项目引入相应的依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency 查看详情
springboot学习笔记--整合thymeleaf
1.新建SpringBoot项目添加spring-boot-starter-thymeleaf依赖1<dependency>2<groupId>org.springframework.boot</groupId>3<artifactId>spring-boot-starter-thymeleaf</artifactId>4</dep 查看详情
springboot整合jsp的那些坑(springboot学习笔记之三)
SpringBoot整合Jsp步骤:1.新建一个springboot项目2.修改pom文件 <dependency> <groupId>org.springframework.boot</groupId> &n 查看详情
springboot+mybatis学习笔记(代码片段)
Springboot+Mybatis实战笔记目录结构1.controller层:控制层-->调用业务层方法来控制业务逻辑2.service层3.dao层:持久层,主要与数据库交互4.entity层:实体层-->数据库在项目中的类5.resources下的mapper.userMap6.controller层和service层注解... 查看详情
elasticsearch学习笔记4:springboot整合es
一、编写ES配置类importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;//Spring两步骤://1、找对象//2、放到spring中待用@ConfigurationpublicclassElasticSearc 查看详情
springboot整合mybatis
springboot本来可以使用jpa进行数据库操作,但是考虑到jpa的资料比较少,学习成本比较大,不是所有的人都可以十分了解,因此考虑采用mybatis来进行数据库操作。1、新建maven项目,在pom中添加相关依赖。<projectxmlns="http://maven.apa... 查看详情
springboot学习笔记:整合thymeleaf(代码片段)
1.引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>2.添加配置#关闭页面缓存spring.thymeleaf.cache& 查看详情
elasticsearch学习笔记4:springboot整合es(代码片段)
一、编写ES配置类importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;//Spring两步骤://1、找对象//2、放到spring中待用@ConfigurationpublicclassElasticSearc 查看详情
springboot整合mybatis(代码片段)
SpringBoot整合MyBatisSpringBoot整合MyBatisSpringBoot是一个快速开发应用程序的框架,而MyBatis是一个提供ORM支持的优秀框架。在本文中,我们将学习如何将SpringBoot与MyBatis整合,以便我们能够更加轻松地开发Web应用程序。步骤创建新的Spri... 查看详情