java mybatis狂神说sql_狂神说SpringBoot09:整合MyBatis
狂神说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相关推荐
- java mybatis狂神说sql_狂神说MyBatis01:第一个程序
狂神说MyBatis系列连载课程,通俗易懂,基于MyBatis3.5.2版本,欢迎各位狂粉转发关注学习,视频同步文档.未经作者授权,禁止转载 MyBatis简介 环境说明: jdk 8 + MySQL ...
- 【Java从0到架构师】Spring - 整合 MyBatis
整合 MyBatis 整合 MyBatis - 依赖 整合 MyBatis - 数据源 整合 MyBatis - SqlSessionFactoryBean 整合 MyBatis - MapperSc ...
- Java游戏服务器开发之十二--数据库连接整合mybatis
应该比较让人关心的还有一个就是数据存储的问题了. 下面将会介绍连接数据库的相关内容 使用的是mysql数据库,框架中将使用mybatis 这里介绍时假设各位都使用或者了解过mysql. 1 ...
- Mybatis零基础教程,Java访问数据库核心操作,详解Spring-boot整合Mybatis持久层!
1.前言 持久层是JavaEE中访问数据库的核心操作,Mybatis是一款优秀的持久层框架,诞生于2010年,2013年迁移至Github.它支持定制化 SQL.存储过程以及高级映射.MyBatis ...
- mybatis log4j 在日志中打印sql_SpringBoot整合MyBatis+详细打印执行SQL语句
图片来源网路 为啥写这篇文章呢,有人可能会说springBoot的mybatis的starter都有了写这篇文章不是多此一举吗?难道是真的吗?其实我一开始也是使用mybatis的starter的,但是 ...
- Java使用lambda进行分页,SpringBoot(八):整合mybatis,通用mapper,分页插件,lambda,Logger,junit用法...
本文作者:低调小熊猫 转载声明:自由转载-非商用-非衍生-保持署名,非商业转载请注明作者及出处,商业转载请联系作者本人qq:2696284032 整合demo 配置依赖 tk.mybatis mapp ...
- mysql mybatis多库查询_SpringBoot2.0.3整合Mybatis添加动态数据源实现多库查询(DynamicDataSource)...
最近由于项目使用了spring boot 2.0.3版本,业务从多个数据查询,必须支持动态数据源,由于2.0.3的版本与之前的版本有了较大的改动其实现上有些不同,再采坑以后在此记录 1.需要Java类 ...
- mybatis mysql demo_SpringBoot(入门Demo,整合mybatis,连接mysql)
1.简介 SpringBoot提供一种固定的.约定优于配置风格的框架,使开发者更快地创建基于spring的应用和程序.可以高效的创建基于Spring的应用服务(SpringBoot不是对spring功 ...
- JavaWeb以Maven整合Mybatis报错java.lang.NoClassDefFoundError(Web项目未能完全加载Maven下的依赖)
问题描述 为完成学校课程一个javaweb的demo,想着对数据库的访问能够更加简洁,所以用了Mybatis.因为之前有过Springboot整合Mybatis经验,所以本以为事情会简单.在Junit ...
最新文章
- 初版python计算器
- 图像反光能被一键去除了?港科大开源RFC,仅用一个操作,强反光也能完美去除|CVPR2021...
- 【设计思想解读开源框架】java监听模式和观察者模式
- vi/vim粘贴代码自动缩进导致全乱了
- Nginx+win10安装配置
- VTK:PolyData之OrientedBoundingCylinder
- jquery:TypeError: $(...).on is not a function
- linux驱动线程睡眠,linux驱动中断不能睡眠的原因
- Android程序版本更新--通知栏更新下载安装(转)
- 小米8青春版超级夜景安排上了 这个样张我是服气的!
- scrapy安装_「从零开始Python爬虫」1.8.3 Scrapy-Splash的安装
- Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案
- nginx学习.第一部分
- 计算机专业类ppt背景图片,6种方法,教你做出高大上PPT及背景-ppt背景图片怎么设置...
- ReResNet源码解读
- 如何做好软件可靠性测试?
- ROBOMASTER比赛作品集_邹俊添
- 阿里云团队漏洞托管、渗透测试、攻防演练
- 天翼云服务器部署程序不能外网被访问问题
- 百看不如一练 100道python经典题目,拿去参考学习练手(附答案)可复制