Spring boot整合mybatis实现数据的CRUD
来源:互联网 发布:湖北招生考试软件 编辑:程序博客网 时间:2024/05/24 04:25
Spring boot整合mybatis实现数据的CRUD
本文主要参考:
https://spring.io/guides/gs/rest-service/ 这个是如何搭建Spring boot
本文略过如何搭建spring boot,默认已经搭建好spring boot了,如果想要搭建spring boot可以参考上边的文章。
好,下面上货。
首先看一下目录结构:
1、添加maven依赖。
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency>
2、在classpath:mybatis文件夹下添加mybatis-conf.xml文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <typeAliases> <typeAlias alias="Integer" type="java.lang.Integer"/> <typeAlias alias="Long" type="java.lang.Long"/> <typeAlias alias="String" type="java.lang.String"/> <typeAlias alias="HashMap" type="java.util.HashMap"/> <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap"/> <typeAlias alias="ArrayList" type="java.util.ArrayList"/> <typeAlias alias="LinkedList" type="java.util.LinkedList"/> </typeAliases></configuration>
3、添加实体类Student:
package com.xueyou.demo.pojo;import com.fasterxml.jackson.annotation.JsonFormat;import java.util.Date;/** * Created by wuxueyou on 2017/5/26. */public class Student { private int id; private String name; private int age; private String attr; private Date createtime; private Date updatetime; public Student() { } public Student(int id) { this.id = id; } public Student(int id, String name) { this.id = id; this.name = name; } public Student(int id, String name, int age, String attr) { this.id = id; this.name = name; this.age = age; this.attr = attr; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAttr() { return attr; } public void setAttr(String attr) { this.attr = attr; } @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") public Date getCreatetime() { return createtime; } public void setCreatetime(Date createtime) { this.createtime = createtime; } @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") public Date getUpdatetime() { return updatetime; } public void setUpdatetime(Date updatetime) { this.updatetime = updatetime; }}
4、添加DAO接口
package com.xueyou.demo.dao;import com.xueyou.demo.pojo.Student;import java.util.Date;import java.util.HashMap;import java.util.List;/** * Created by wuxueyou on 2017/6/15. */public interface StudentDao { List<Student> getAll(); Student getById(int id); List<Student> getByNameLike(String name); Student getByIdAndName(Student student); Student getByIdAndNameWithParamMap(HashMap<String,Object> params); List<Student> getByCreateTime(Date date); int insertStudent(Student student); int deleteById(Student student);}
5、添加studentmapper.xml
<?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 namespace="com.xueyou.demo.dao.StudentDao"> <sql id="allField"> id, `name`, age, memo AS attr, createtime, updatetime </sql> <select id="getAll" resultType="com.xueyou.demo.pojo.Student"> select <include refid="allField"/> from student </select> <select id="getById" resultType="com.xueyou.demo.pojo.Student"> SELECT <include refid="allField"/> from student WHERE id = #{id} </select> <select id="getByNameLike" resultType="com.xueyou.demo.pojo.Student"> SELECT <include refid="allField"/> from student WHERE name LIKE CONCAT('%',#{name},'%') </select> <select id="getByIdAndName" resultType="com.xueyou.demo.pojo.Student" parameterType="com.xueyou.demo.pojo.Student"> SELECT <include refid="allField"/> from student WHERE id = #{id} AND name = #{name} </select> <select id="getByIdAndNameWithParamMap" resultType="com.xueyou.demo.pojo.Student" parameterType="HashMap"> SELECT <include refid="allField"/> from student WHERE id = #{id} AND name = #{name} </select> <select id="getByCreateTime" resultType="com.xueyou.demo.pojo.Student"> SELECT <include refid="allField"/> from student where createtime >= #{date} </select> <insert id="insertStudent" parameterType="com.xueyou.demo.pojo.Student"> insert INTO student(id, `name`, age, memo) VALUES (#{id},#{name},#{age},#{memo}) </insert> <delete id="deleteById"> DELETE FROM student where id = #{id} </delete></mapper>
6、在controller层进行处理:
package com.xueyou.demo.controller;import com.xueyou.demo.dao.StudentDao;import com.xueyou.demo.pojo.Student;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.List;/** * Created by wuxueyou on 2017/6/15. */@RestController@RequestMapping("/mybatis")public class mybatisTestController { @Autowired public StudentDao studentDao; @RequestMapping("/getAll") public List<Student> getAll() { List<Student> studentList = studentDao.getAll(); return studentList; } @RequestMapping("/getById") public Student getById(int id) { return studentDao.getById(id); } @RequestMapping("/getByNameLike") public List<Student> getByNameLike(String name) { return studentDao.getByNameLike(name); } @RequestMapping("/getByIdAndName") public Student getByIdAndName(int id, String name) { return studentDao.getByIdAndName(new Student(id, name)); } @RequestMapping("/getByIdAndNameWithParamMap") public Student getByIdAndNameWithParamMap(int id, String name) { HashMap<String, Object> param = new HashMap<>(); param.put("id", id); param.put("name", name); return studentDao.getByIdAndNameWithParamMap(param); } @RequestMapping("/getByCreatetime") public List<Student> getByCreatetime(String dateStr) throws Exception { Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr); return studentDao.getByCreateTime(date); } @RequestMapping("/insertStudent") public int insertStudent(int id, String name, int age, String memo) { return studentDao.insertStudent(new Student(id, name, age, memo)); } @RequestMapping("/deleteById") public int deleteById(int id) { return studentDao.deleteById(new Student(id)); }}
7、这里需要注意的是在springboot启动的时候需要添加mapperscan注解
@MapperScan(basePackages = {"com.xueyou.demo.dao"})否则会出现找不到接口的实现类的问题。
测试数据:
由于请求很多,这里不一一列出了。update和delete的返回值是sql执行后受影响的行数。如果返回0,那么就意味着更新或者删除失败。
阅读全文
0 0
- Spring boot整合mybatis实现数据的CRUD
- spring boot 整合mybatis 中用注解实现的查询
- 原 Spring + SpringMVC + Mybatis 整合,实现 CRUD (增删改查)
- Spring Boot整合MyBatis
- spring boot 整合mybatis
- Spring Boot整合MyBatis
- Spring-boot整合Mybatis
- Spring Boot整合MyBatis
- spring boot 整合mybatis
- Spring Boot整合Mybatis
- spring boot mybatis整合
- spring boot整合mybatis
- Spring Boot 整合 MyBatis
- spring-boot整合mybatis
- Spring Boot整合Mybatis
- Spring Boot 整合 MyBatis
- spring boot整合mybatis
- Spring Boot整合MyBatis
- Java方法传参的值传递和引用传递的区别(code)
- LINUX软件安装和管理
- java多态的体现(theory)
- Java学习记录日志_1.1关于CLASSPATH环境变量
- PHP函数之spl_autoload_register和spl_autoload_unregister
- Spring boot整合mybatis实现数据的CRUD
- java笔记(三):IO流
- BCG集中框架图
- 51Nod-1377-最慢的快排
- ZeroMQ的一些配置
- tp中U方法在传值变量时的运用
- @controllerAdvice 统一处理异常(spring-mvc)
- 关于Android中工作者线程的思考
- Linux常用系统命令