哪里可以做产品购物网站,福建城乡建设部网站首页,无锡网站策划,网络公司经营范围开发属于制造吗引言
最近在工作结束后抽时间学习了一下mybatis的知识#xff0c;因为之前有学习过#xff0c;但是经久不用#xff0c;也未曾踏实地整理#xff0c;因此有所淡忘。
super meeting会议管理系统是我厂最近开发的一套会议预约平台。持久层框架经讨论#xff0c;选为灵活优…引言
最近在工作结束后抽时间学习了一下mybatis的知识因为之前有学习过但是经久不用也未曾踏实地整理因此有所淡忘。
super meeting会议管理系统是我厂最近开发的一套会议预约平台。持久层框架经讨论选为灵活优秀的半自动持久层框架Mybatis。
关于mybatis的有点和简介不做本系列学习博客的重点在此不做记录。
学习的方式采用视频实践的学练组合方式。结合一直接触的spring boot框架重温mybatis的使用和各种应用场景的解决方案。
学习的视频连接https://www.bilibili.com/video/av21272940
项目搭建
pom依赖
项目采用maven管理的spring boot方式添加pom依赖
此处需要引入Mybatis的spring boot start包 和 mysql的驱动依赖
dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion1.3.2/version
/dependency
dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope
/dependency
这两项依赖可以直接在spring boot初始化界面的Search for dependencies 中找到https://start.spring.io/
如何搭建spring boot项目请参考《SpringBoot————快速搭建springboot项目》
建库建表
为方便日后学习mapper的使用此处直接建立两张关联表dept部门表employee员工表 插入测试数据 数据源配置
servert.port8080
#mysql
spring.datasource.urljdbc:mysql://localhost:3306/mybatis?useUnicodetruecharacterEncodingutf8
spring.datasource.usernameroot
spring.datasource.passwordroot
spring.datasource.driver-class-namecom.mysql.jdbc.Driver
此处先简单配置数据源mybatis相关配置稍后介绍。
定义接口与Mapper配置文件
根据mybatis的接口式编程方式定义数据库操作方法的api可以与Mapper进行动态绑定。 接口与mapper.xml文件进行绑定后调用接口中的增删改查时Mybatis会为用户创建一个代理对象由这个代理对象执行操作。 Mapper接口
Mapper
public interface EmpDao {/*** 根据员工id查找员工*/Employee getEmpById(Integer empId);
}
Mapper代表这是一个mybatis可以识别的Mapper接口。
mybatis的mapper-locations配置项、Mapper注解、mapper标签的namespace属性三者可以使mybatis找到任意目录下的Mapper配置文件以及与其绑定的接口。因此接口名称可以根据喜好使用Dao或者Mapper结尾并没有限制。
Mapper.xml配置
添加mybatis 的mapper.xml文件约束
官网查找地址http://www.mybatis.org/mybatis-3/getting-started.html
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.example.demo.dao.EmpDaoselect idgetEmpById resultTypecom.example.demo.entity.EmployeeSELECT * FROM employee WHERE emp_id #{empId}/select
/mapper
namespace指定绑定接口的全类名id标识接口中与之绑定的方法resultType表示返回值类型#{empId}此处的empId代表接口中传入的参数这里注意如果是一个参数mybatis不会特殊处理如果是多个参数参数必须指定参数名否则会报错后续文章会说明这个问题。
小提示添加dtd约束后如果在书写xml的时候没有任何提示则可以在联网状态下Ctrl左键点击约束中的链接“http://mybatis.org/dtd/mybatis-3-mapper.dtd”这样可以加载xml的提示内容。
全局配置
最开始的spring 整合 mybatis的版本都是使用mybatis-config.xml配置文件进行数据源以及各种配置信息的配置。
当然这些配置项依然不变变化的是配置项书写的方式以及去掉了mybatis-config全局配置文件。
官网中提供了有关spring boot需要的mybatis的全部配置信息
http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/index.html 而configuration属性更是包含了其他更加详细的settings项 NOTE configuration property cannot be used at the same time with the config-location. 在configuration中包含诸如mapUnderscoreToCamelCase下划线转驼峰、lazyLoadingEnabled懒加载、aggressiveLazyLoading侵入式懒加载、cacheEnabled全局缓存等配置项都是configuration中的子配置项。
项目搭建所需的简单配置项如下
#mybatis
mybatis.mapper-locationsclasspath:com/example/demo/dao/xml/*.xml
mybatis.configuration.mapUnderscoreToCamelCasetrue
mybatis.type-aliases-packagecom.example.demo.entity
最后观察一下我们的项目结构 测试
为了简便测试我们定义一个controller直接调用dao层的方法以此来进行方法的测试web接口采用RESTful 风格。
RestController
RequestMapping(/emps)
public class EmpController {Autowiredprivate EmpDao empDao;GetMapping(/{empId})public Employee getEmpById(PathVariable Integer empId) {return empDao.getEmpById(empId);}
}
浏览器调用接口: 综上就是关于spring boot mybatis 的简单整合与使用后续会进行更加深入的学习和使用。