狂神说SpringBoot系列连载课程,通俗易懂,基于SpringBoot2.2.5版本,欢迎各位狂粉转发关注学习。未经作者授权,禁止转载

整合MyBatis

官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

Maven仓库地址:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter/2.1.1

整合测试

1、导入 MyBatis 所需要的依赖

<dependency>    <groupId>org.mybatis.spring.bootgroupId>    <artifactId>mybatis-spring-boot-starterartifactId>    <version>2.1.1version>dependency>

2、配置数据库连接信息(不变)

spring:  datasource:    username: root    password: 123456    #?serverTimezone=UTC解决时区的报错    url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8    driver-class-name: com.mysql.cj.jdbc.Driver    type: com.alibaba.druid.pool.DruidDataSource    #Spring Boot 默认是不注入这些属性值的,需要自己绑定    #druid 数据源专有配置    initialSize: 5    minIdle: 5    maxActive: 20    maxWait: 60000    timeBetweenEvictionRunsMillis: 60000    minEvictableIdleTimeMillis: 300000    validationQuery: SELECT 1 FROM DUAL    testWhileIdle: true    testOnBorrow: false    testOnReturn: false    poolPreparedStatements: true    #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入    #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority    #则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j    filters: stat,wall,log4j    maxPoolPreparedStatementPerConnectionSize: 20    useGlobalDataSourceStat: true    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

3、测试数据库是否连接成功!

4、创建实体类,导入 Lombok!

Department.java

package com.kuang.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@NoArgsConstructor@AllArgsConstructorpublic class Department {    private Integer id;    private String departmentName;}

5、创建mapper目录以及对应的 Mapper 接口

DepartmentMapper.java

//@Mapper : 表示本类是一个 MyBatis 的 Mapper@Mapper@Repositorypublic interface DepartmentMapper {    // 获取所有部门信息    ListgetDepartments();    // 通过id获得部门    Department getDepartment(Integer id);}

6、对应的Mapper映射文件

DepartmentMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>/span>        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.kuang.mapper.DepartmentMapper">    <select id="getDepartments" resultType="Department">       select * from department;    select>    <select id="getDepartment" resultType="Department" parameterType="int">       select * from department where id = #{id};    select>mapper>

7、maven配置资源过滤问题

<resources>    <resource>        <directory>src/main/javadirectory>        <includes>            <include>**/*.xmlinclude>        includes>        <filtering>truefiltering>    resource>resources>

8、编写部门的 DepartmentController 进行测试!

@RestControllerpublic class DepartmentController {        @Autowired    DepartmentMapper departmentMapper;        // 查询全部部门    @GetMapping("/getDepartments")    public List getDepartments(){        return departmentMapper.getDepartments();    }    // 查询全部部门    @GetMapping("/getDepartment/{id}")    public Department getDepartment(@PathVariable("id") Integer id){        return departmentMapper.getDepartment(id);    }    }

启动项目访问进行测试!

我们增加一个员工类再测试下,为之后做准备

1、新建一个pojo类 Employee ;

@Data@AllArgsConstructor@NoArgsConstructorpublic class Employee {    private Integer id;    private String lastName;    private String email;    //1 male, 0 female    private Integer gender;    private Integer department;    private Date birth;    private Department eDepartment; // 冗余设计}

2、新建一个 EmployeeMapper 接口

//@Mapper : 表示本类是一个 MyBatis 的 Mapper@Mapper@Repositorypublic interface EmployeeMapper {    // 获取所有员工信息    ListgetEmployees();    // 新增一个员工    int save(Employee employee);    // 通过id获得员工信息    Employee get(Integer id);    // 通过id删除员工    int delete(Integer id);}

3、编写 EmployeeMapper.xml 配置文件

<?xml version="1.0" encoding="UTF-8" ?>/span>        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.kuang.mapper.EmployeeMapper">    <resultMap id="EmployeeMap" type="Employee">        <id property="id" column="eid"/>        <result property="lastName" column="last_name"/>        <result property="email" column="email"/>        <result property="gender" column="gender"/>        <result property="birth" column="birth"/>        <association property="eDepartment"  javaType="Department">            <id property="id" column="did"/>            <result property="departmentName" column="dname"/>        association>    resultMap>    <select id="getEmployees" resultMap="EmployeeMap">        select e.id as eid,last_name,email,gender,birth,d.id as did,d.department_name as dname        from department d,employee e        where d.id = e.department    select>    <insert id="save" parameterType="Employee">        insert into employee (last_name,email,gender,department,birth)        values (#{lastName},#{email},#{gender},#{department},#{birth});    insert>    <select id="get" resultType="Employee">        select * from employee where id = #{id}    select>    <delete id="delete" parameterType="int">        delete from employee where id = #{id}    delete>mapper>

4、编写EmployeeController类进行测试

@RestControllerpublic class EmployeeController {    @Autowired    EmployeeMapper employeeMapper;    // 获取所有员工信息    @GetMapping("/getEmployees")    public List getEmployees(){        return employeeMapper.getEmployees();    }    @GetMapping("/save")    public int save(){        Employee employee = new Employee();        employee.setLastName("kuangshen");        employee.setEmail("qinjiang@qq.com");        employee.setGender(1);        employee.setDepartment(101);        employee.setBirth(new Date());        return employeeMapper.save(employee);    }    // 通过id获得员工信息    @GetMapping("/get/{id}")    public Employee get(@PathVariable("id") Integer id){        return employeeMapper.get(id);    }    // 通过id删除员工    @GetMapping("/delete/{id}")    public int delete(@PathVariable("id") Integer id){        return employeeMapper.delete(id);    }}

测试结果完成,搞定收工!

java mybatis狂神说sql_狂神说SpringBoot09:整合MyBatis相关推荐

  1. java mybatis狂神说sql_狂神说MyBatis01:第一个程序

    狂神说MyBatis系列连载课程,通俗易懂,基于MyBatis3.5.2版本,欢迎各位狂粉转发关注学习,视频同步文档.未经作者授权,禁止转载 MyBatis简介 环境说明: jdk 8 + MySQL ...

  2. 【Java从0到架构师】Spring - 整合 MyBatis

    整合 MyBatis 整合 MyBatis - 依赖 整合 MyBatis - 数据源 整合 MyBatis - SqlSessionFactoryBean 整合 MyBatis - MapperSc ...

  3. Java游戏服务器开发之十二--数据库连接整合mybatis

    应该比较让人关心的还有一个就是数据存储的问题了.   下面将会介绍连接数据库的相关内容   使用的是mysql数据库,框架中将使用mybatis   这里介绍时假设各位都使用或者了解过mysql. 1 ...

  4. Mybatis零基础教程,Java访问数据库核心操作,详解Spring-boot整合Mybatis持久层!

    1.前言 持久层是JavaEE中访问数据库的核心操作,Mybatis是一款优秀的持久层框架,诞生于2010年,2013年迁移至Github.它支持定制化 SQL.存储过程以及高级映射.MyBatis ...

  5. mybatis log4j 在日志中打印sql_SpringBoot整合MyBatis+详细打印执行SQL语句

    图片来源网路 为啥写这篇文章呢,有人可能会说springBoot的mybatis的starter都有了写这篇文章不是多此一举吗?难道是真的吗?其实我一开始也是使用mybatis的starter的,但是 ...

  6. Java使用lambda进行分页,SpringBoot(八):整合mybatis,通用mapper,分页插件,lambda,Logger,junit用法...

    本文作者:低调小熊猫 转载声明:自由转载-非商用-非衍生-保持署名,非商业转载请注明作者及出处,商业转载请联系作者本人qq:2696284032 整合demo 配置依赖 tk.mybatis mapp ...

  7. mysql mybatis多库查询_SpringBoot2.0.3整合Mybatis添加动态数据源实现多库查询(DynamicDataSource)...

    最近由于项目使用了spring boot 2.0.3版本,业务从多个数据查询,必须支持动态数据源,由于2.0.3的版本与之前的版本有了较大的改动其实现上有些不同,再采坑以后在此记录 1.需要Java类 ...

  8. mybatis mysql demo_SpringBoot(入门Demo,整合mybatis,连接mysql)

    1.简介 SpringBoot提供一种固定的.约定优于配置风格的框架,使开发者更快地创建基于spring的应用和程序.可以高效的创建基于Spring的应用服务(SpringBoot不是对spring功 ...

  9. JavaWeb以Maven整合Mybatis报错java.lang.NoClassDefFoundError(Web项目未能完全加载Maven下的依赖)

    问题描述 为完成学校课程一个javaweb的demo,想着对数据库的访问能够更加简洁,所以用了Mybatis.因为之前有过Springboot整合Mybatis经验,所以本以为事情会简单.在Junit ...

最新文章

  1. 初版python计算器
  2. 图像反光能被一键去除了?港科大开源RFC,仅用一个操作,强反光也能完美去除|CVPR2021...
  3. 【设计思想解读开源框架】java监听模式和观察者模式
  4. vi/vim粘贴代码自动缩进导致全乱了
  5. Nginx+win10安装配置
  6. VTK:PolyData之OrientedBoundingCylinder
  7. jquery:TypeError: $(...).on is not a function
  8. linux驱动线程睡眠,linux驱动中断不能睡眠的原因
  9. Android程序版本更新--通知栏更新下载安装(转)
  10. 小米8青春版超级夜景安排上了 这个样张我是服气的!
  11. scrapy安装_「从零开始Python爬虫」1.8.3 Scrapy-Splash的安装
  12. Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案
  13. nginx学习.第一部分
  14. 计算机专业类ppt背景图片,6种方法,教你做出高大上PPT及背景-ppt背景图片怎么设置...
  15. ReResNet源码解读
  16. 如何做好软件可靠性测试?
  17. ROBOMASTER比赛作品集_邹俊添
  18. 阿里云团队漏洞托管、渗透测试、攻防演练
  19. 天翼云服务器部署程序不能外网被访问问题
  20. 百看不如一练 100道python经典题目,拿去参考学习练手(附答案)可复制

热门文章

  1. 在python程序中的进程操作
  2. dubbox 编译 和 测试
  3. css 设置table样式
  4. ::selection 制作空心字
  5. USACO 2.2.2 Subset Sums解题报告
  6. 多層開發注重效率的注意點
  7. php session获取不到的解决方法
  8. Linux出现cannot create temp file for here-document: No space left on device的问题解决
  9. 什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?
  10. Json返回时间中出现乱码问题的两种解决方法