接上文:SpringBoot整合Mybatis【注解版】


一、项目创建

  • 新建一个工程

  • 选择Spring Initializr,配置JDK版本

  • 输入项目名

  • 选择构建web项目所需的staters(启动器)


  • 选择与数据库相关的组件

分析:Spring Boot基本上将我们实际项目开发中所遇到的所有场景都做了封装。它将所有的功能场景都抽取出来,做成了一个个的staters(启动器),只需要在项目的pom.xml配置文件里面引入这些starter相关场景的所有依赖都会导入进来。需要什么功能就导入什么场景的启动器,实质就是通过配置导入了与实现其功能相关的jar包,然后直接进行项开发即可。


  • 选择保存地址后点击Finish


  • 注意:idea必须在联网环境下才会自动构建项目


  1. package com.cyn.bean;
  2.  
  3. /**
  4. * @author:cyn
  5. * @create:2018/12/30 16:14
  6. * @description:员工实体类
  7. */
  8. public class Employee {
  9.  
  10. private Integer id;
  11. private String lastName;
  12. private Integer gender;
  13. private String email;
  14. private Integer dId;
  15.  
  16. public Integer getId() {
  17. return id;
  18. }
  19.  
  20. public void setId(Integer id) {
  21. this.id = id;
  22. }
  23.  
  24. public String getLastName() {
  25. return lastName;
  26. }
  27.  
  28. public void setLastName(String lastName) {
  29. this.lastName = lastName;
  30. }
  31.  
  32. public Integer getGender() {
  33. return gender;
  34. }
  35.  
  36. public void setGender(Integer gender) {
  37. this.gender = gender;
  38. }
  39.  
  40. public String getEmail() {
  41. return email;
  42. }
  43.  
  44. public void setEmail(String email) {
  45. this.email = email;
  46. }
  47.  
  48. public Integer getdId() {
  49. return dId;
  50. }
  51.  
  52. public void setdId(Integer dId) {
  53. this.dId = dId;
  54. }
  55.  
  56. }


  • 新建数据库mybatis,在数据库中新建与实体类对象相关联的数据库表 employee

    1. DROP TABLE IF EXISTS `employee`;
    2. CREATE TABLE `employee` (
    3. `id` int(11) NOT NULL AUTO_INCREMENT,
    4. `lastName` varchar(255) DEFAULT NULL,
    5. `email` varchar(255) DEFAULT NULL,
    6. `gender` int(2) DEFAULT NULL,
    7. `d_id` int(11) DEFAULT NULL,
    8. PRIMARY KEY (`id`)
    9. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


  • 在mapper包下新建与实体类所关联的mapper接口【非注解版】:EmployeeMapper
  1. package com.cyn.mapper;
  2.  
  3. import com.cyn.bean.Employee;
  4.  
  5. /**
  6. * @author:崔雅楠
  7. * @create:2018/12/30 17:32
  8. * @description:员工管理
  9. */
  10. //在这里使用@Mapper注解或在主类中使用@MapperScan注解将该接口扫描装配到容器中
  11. @Mapper
  12. public interface EmployeeMapper {
  13.  
  14. //查询
  15. public Employee getEmpById(Integer id);
  16. //插入
  17. public void insertEmp(Employee employee);
  18. }


  • 在classpath:mybatis/下新建mybatis的主配置文件:mybatis-config.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6.  
  7. <settings>
  8. <!--开启驼峰命名规则-->
  9. <setting name="mapUnderscoreToCamelCase" value="true"/>
  10. </settings>
  11. </configuration>
  • 在classpath:mybatis/mapper/下新建mapper接口相对应的映射文件例如:EmployeeMapper.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!--切记:要将此映射文件与相对应的mapper接口通过namespace属性进行关联-->
  6. <mapper namespace="com.cyn.mapper.EmployeeMapper">
  7. <!-- public Employee getEmpById(Integer id);
  8.  
  9. public void insertEmp(Employee employee);-->
  10. <select id="getEmpById" resultType="com.cyn.bean.Employee">
  11. SELECT * FROM employee WHERE id=#{id}
  12. </select>
  13.  
  14. <insert id="insertEmp">
  15. INSERT INTO employee(lastName,email,gender,d_id) VALUES (#{lastName},#{email},#{gender},#{dId})
  16. </insert>
  17. </mapper>

  • application.yml(application.properties)项目配置文件中指定mybatis的主配置文件和mapper映射文件的路径,告知springboot,完整application.yml配置文件如下:

    1. spring:
    2. datasource:
    3. username: root
    4. password: 123456
    5. url: jdbc:mysql://localhost:3306/mybatis
    6. driver-class-name: com.mysql.jdbc.Driver
    7. #修改springboot默认数据源为Druid
    8. type: com.alibaba.druid.pool.DruidDataSourceC3P0Adapter
    9. #数据源其他配置
    10. initialSize: 5
    11. minIdle: 5
    12. maxActive: 20
    13. maxWait: 60000
    14. timeBetweenEvictionRunsMillis: 60000
    15. minEvictableIdleTimeMillis: 300000
    16. validationQuery: SELECT 1 FROM DUAL
    17. testWhileIdle: true
    18. testOnBorrow: false
    19. testOnReturn: false
    20. poolPreparedStatements: true
    21. #配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    22. filters: stat,wall,log4j
    23. maxPoolPreparedStatementPerConnectionSize: 20
    24. useGlobalDataSourceStat: true
    25. connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
    26. #配置mybatis的主配置文件和mapper映射文件的路径
    27. mybatis:
    28. config-location: classpath:mybatis/mybatis-config.xml
    29. mapper-locations: classpath:mybatis/mapper/*.xml

  • 在controller包下新建controller控制类:EmpController
  1. package com.cyn.controller;
  2.  
  3. import com.cyn.bean.Employee;
  4. import com.cyn.mapper.EmployeeMapper;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.web.bind.annotation.GetMapping;
  7. import org.springframework.web.bind.annotation.PathVariable;
  8. import org.springframework.web.bind.annotation.RestController;
  9.  
  10. /**
  11. * @author:cyn
  12. * @create:2019/1/1 20:15
  13. * @description:员工管理
  14. */
  15. @RestController
  16. public class EmpController {
  17.  
  18. @Autowired
  19. EmployeeMapper employeeMapper;
  20.  
  21. //查询
  22. @GetMapping("emp/{id}")
  23. public Employee getEmpById(@PathVariable("id") Integer id){
  24.  
  25. return employeeMapper.getEmpById(id);
  26. }
  27. //添加
  28. @GetMapping("emp")
  29. public void insertEmp(Employee employee){
  30. employeeMapper.insertEmp(employee);
  31. }
  32. }

附录:

  1. @RestController:等价于同时使用@ResponseBody和@Controller
  2. @GetMapping("/emp/{id}"):等价于@RequestMapping(value = "/dept/{id}",method = RequestMethod.GET)
  3. /emp/{id}:controller中的url采用restful形式,不会的请自行百度
  4. @PathVariable("id"):将url中相对应参数名的值绑定到指定的形参上

  • 最终项目结构目录如下:

二、项目测试

  • 至此,springboot整合mybatis成功!如果你失败了,继续调试吧骚年!刚搬来博客园,请多多关照手动滑稽--

( ̄︶ ̄)↗[GO!]

SpringBoot整合Mybatis【非注解版】的更多相关文章

  1. Spring Boot整合MyBatis(非注解版)

    Spring Boot整合MyBatis(非注解版),开发时采用的时IDEA,JDK1.8 直接上图: 文件夹不存在,创建一个新的路径文件夹 创建完成目录结构如下: 本人第一步习惯先把需要的包结构创建 ...

  2. SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版)

    SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版) ================================ ©Copyright 蕃薯耀 2 ...

  3. SpringBoot整合Mybatis完整详细版

    记得刚接触SpringBoot时,大吃一惊,世界上居然还有这么省事的框架,立马感叹:SpringBoot是世界上最好的框架.哈哈! 当初跟着教程练习搭建了一个框架,传送门:spring boot + ...

  4. SpringBoot整合Mybatis完整详细版二:注册、登录、拦截器配置

    接着上个章节来,上章节搭建好框架,并且测试也在页面取到数据.接下来实现web端,实现前后端交互,在前台进行注册登录以及后端拦截器配置.实现简单的未登录拦截跳转到登录页面 上一节传送门:SpringBo ...

  5. SpringBoot整合Mybatis使用注解或XML的方式开发

    2018-6-4 补充mybatis-spring-boot注解的使用 1.导包 只需要再导入mysql+mybatis两个包 <dependency> <groupId>or ...

  6. springboot整合mybatis之注解方式

    1. 创建maven项目,工程目录如下图 2. 在pom.xml文件中添加mybatis依赖. 3. 创建实体类,并生成construct方法,getter和setter方法.同时在数据库中创建对应的 ...

  7. SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)

    前言 通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数 ...

  8. SpringBoot整合Mybatis注解版---update出现org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1, param2]

    SpringBoot整合Mybatis注解版---update时出现的问题 问题描述: 1.sql建表语句 DROP TABLE IF EXISTS `department`; CREATE TABL ...

  9. SpringBoot系列-整合Mybatis(注解方式)

    目录 一.常用注解说明 二.实战 三.测试 四.注意事项 上一篇文章<SpringBoot系列-整合Mybatis(XML配置方式)>介绍了XML配置方式整合的过程,本文介绍下Spring ...

随机推荐

  1. [POI2015]KIN[线段树]

    很套路的维护最大和子段 #include <cmath> #include <cstring> #include <cstdio> #include <cst ...

  2. 【BZOJ3996】[TJOI2015]线性代数(最小割)

    [BZOJ3996][TJOI2015]线性代数(最小割) 题面 BZOJ 洛谷 题解 首先把式子拆开,发现我们的答案式就是这个: \[\sum_{i=1}^n\sum_{j=1}^n B_{i,j} ...

  3. C++: 模板函数定义与声明分离;

    我们知道模板函数或模板类的定义一般都是和声明一起在头文件中,但是这样的话, 就暴露了内部实现,有什么办法能够将定义和声明进行分离呢? 答案是: 有的: 头文件: test.h; class test ...

  4. socket(TCP)通讯之Python实现

    1.Service address = ('localhost', 9102) # AF_INET = ipv4; SOCK_STREAM:TCP s = socket.socket(socket.A ...

  5. Redux中间件组合方法

    中间件 https://redux.js.org/glossary#middleware 中间件在发送端 action端点 和 处理方reducer的端点之间. 主要负责将async action转换 ...

  6. design language

    design language https://en.wikipedia.org/wiki/Design_language 设计语言(设计词汇)是一种超架构的方案和风格, 它用于指导产品组件或者架构配 ...

  7. JS判断页面是在浏览器还是微信打开

    一.Navigator对象 1.获取用户的浏览器信息. let ua = navigator.userAgent.toLowerCase(); 打印一下ua的结果: Mozilla/5.0 (Maci ...

  8. python装饰器的wraps作用

    不加: from functools import wraps def my_decorator(func): def wper(*args, **kwargs): '''decorator''' p ...

  9. vo类,model类,dto类的作用及划分

    1.entity里的每一个字段,与数据库相对应, 2.dto里的每一个字段,是和你前台页面相对应, 3.VO,这是用来转换从entity到dto,或者从dto到entity的中间的东西.   举个例子 ...

  10. day07 数据类型间的相互转化及字符编码

    今日内容: 字符间的相互转化 字符编码 今日重点: 字符间的相互转化 """ 字符间的相互转化: """ """ ...