人才招聘网网站策划方案,wordpress右边小工具,百度seo营销公司,群晖wordpress目录Mybatis的开发有两种方式#xff1a; 注解 XML配置文件
通过XML配置文件的形式来配置SQL语句#xff0c;这份儿XML配置文件在MyBatis当中也称为XML映射文件。
导学#xff1a;在MyBatis当中如何来定义一份儿XML映射文件#xff1f;
在MyBatis当中#xff0c;定义XML…Mybatis的开发有两种方式 注解 XML配置文件
通过XML配置文件的形式来配置SQL语句这份儿XML配置文件在MyBatis当中也称为XML映射文件。
导学在MyBatis当中如何来定义一份儿XML映射文件
在MyBatis当中定义XML映射文件它是有一定的规范的。
2.1 XML配置文件规范
使用Mybatis的注解方式主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能建议使用XML来配置映射语句也就是将SQL语句写在XML配置文件中。
在Mybatis中使用XML映射文件方式开发需要符合一定的规范 - XML映射文件定义规范 XML映射文件的名称与Mapper接口名称保持一致并且将XML映射文件和Mapper接口放置在相同包下同包同名- 在项目开发当中一般都是一个接口对应一份儿映射配置文件 XML映射文件的namespace{命名空间}属性与Mapper接口的全限定名{包名接口名}一致 XML映射文件中SQL语句的id与Mapper接口中的方法名一致并保持返回类型一致。 通过以上的规则MyBatis会在运行时动态生成Mapper接口的实现类并根据接口方法的调用来查找对应的XML配置文件中的SQL语句并执行该SQL语句这样就实现了Mapper接口方法与XML配置文件中SQL语句的关联。 在标准的Maven项目结构当中java目录下存放的都是Java的源代码而resources这个目录下存放的才是配置文件。在映射配置文件当中来定义SQL语句。 每一个SQL语句都有一个唯一标识就是它的id属性这个id属性需要与Mapper接口的方法名保持一致。
select标签就是用于编写select查询语句的。 resultType属性指的是查询返回的单条记录所封装的类型。 2.2 XML配置文件实现
第1步创建XML映射文件 注意我们想要的包结构是一级一级的目录如果用点来分隔就会当成一个文件目录之前的 分隔我们要使用斜杠/来分隔。 打开磁盘目录验证 目录结构 第2步编写XML映射文件 XML映射文件中的dtd约束直接从MyBatis官网复制即可 配置XML文件的约束
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespace/mapper
mapper/mapper标签是根标签
配置XML映射文件的namespace属性为Mapper接口全限定名
在mapper标签当中它有一个唯一的属性就叫namespace命名空间namespace属性需要与Mapper接口的全类名保持一致。 XML配置文件的namespace属性与Mapper接口的全限定名一致 ?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.gch.mapper.EmpMapper/mapper
配置XML映射文件中sql语句的id与Mapper接口中的方法名一致并保持返回类型一致 ?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.gch.mapper.EmpMapper!--查询操作 resultType:指的是单条记录所封装的类型{实体类全类名}--select idselect resultTypecom.gch.pojo.Empselect id,username,password,name,gender,image,job,entrydate,dept_id,create_time,update_timefrom mybatis.empwhere name like concat(%, #{name}, %)and gender #{gender}and entrydate between #{begin} and #{end}order by update_time desc/select
/mapper
Mapper接口方法
package com.gch.mapper;import com.gch.pojo.Emp;
import org.apache.ibatis.annotations.*;import java.time.LocalDate;
import java.util.List;/**加上Mapper注解就代表程序在运行时会自动的创建该接口的代理对象,并且会将这个代理对象放入到IOC容器当中*/
Mapper
public interface EmpMapper {/*** 条件查询员工信息* 基于XML映射文件的形式来配置SQL语句* param name 查询的姓名* param gender 查询的性别* param begin 查询的入职时间* param end 查询的离职时间* return 把查询返回的多条记录封装到List集合里面*/public ListEmp select(String name, short gender, LocalDate begin, LocalDate end);
}测试类
package com.gch;import com.gch.mapper.EmpMapper;SpringBootTest
class SpringbootMybatisCrudApplicationTests {/**从Spring的IOC容器当中,获取类型是EmpMapper的对象并注入*/Autowiredprivate EmpMapper empMapper;/*** 条件查询*/Testpublic void testSelectList() {// 调用查询方法查询员工信息,并将查询返回的结果使用List集合接收ListEmp list empMapper.select(张, (short) 1,LocalDate.of(2010, 01, 01), LocalDate.of(2020, 01, 01));// 遍历集合输出list.stream().forEach(s -{System.out.println(s);});}
}运行测试类执行结果 思考在定义XML映射文件的时候为什么要遵守这三点规范
通过MyBatis这个框架来操作数据库最终我们只需要调用Mapper接口当中的接口方法就可以完成数据库的操作但是我们要明白最终我们操作数据库并不是直接通过Mapper接口中的方法来操作数据库而是执行了与该接口方法对应的SQL语句来完成数据库的操作。
思考通过Mapper接口中的接口方法怎么找到与之关联的SQL语句
如果使用注解的方式来进行配置就不用思考这样的问题因为使用注解的方式进行配置我们执行这个接口方法最终执行的不就是注解当中的SQL语句吗SQL语句与Mapper接口中的接口方法是绑定在一起的。但是如果我们采用XML配置文件的形式来配置SQL语句Mapper接口中的接口方法的定义与XML配置文件当中配置的SQL语句它们两是分开的我们现在要做的就是根据Mapper接口中的接口方法来找到在XML配置文件当中配置的SQL语句。 如果我们按照规范来定义了这样一份儿XML配置文件此时当我们调用Mapper接口当中的接口方法的时候此时MyBatis框架就会自动的去查找namespace属性值与这个接口全类名相同的这份XML映射文件并且在这份儿XML映射文件当中找到id属性值与方法名相同的这条SQL语句最终来运行这条SQL语句从而就完成了数据库的操作。 2.3 MybatisX的使用
MybatisX是一款基于IDEA的快速开发Mybatis的插件为效率而生。通过MyBatisX这款插件就可以提高MyBatis的开发效率。
MybatisX的安装 如图 这只是IDEA的一个误报IDEA识别错乱的一个问题在真实的企业开发当中一个项目就是一个单独的工程所以是不会出现这个问题的。
可以通过MybatisX快速定位 MyBatisX的使用在后续学习中会继续分享...
学习了Mybatis中XML配置文件的开发方式了大家可能会存在一个疑问到底是使用注解方式开发还是使用XML方式开发
官方说明入门_MyBatis中文网 使用注解来映射简单语句会使代码显得更加简洁但对于稍微复杂一点的语句Java 注解不仅力不从心还会让你本就复杂的 SQL 语句更加混乱不堪。 因此如果你需要做一些很复杂的操作最好用 XML 来映射语句。选择何种方式来配置映射以及认为是否应该要统一映射语句定义的形式完全取决于你和你的团队。 换句话说永远不要拘泥于一种方式你可以很轻松的在基于注解和 XML 的语句映射方式间自由移植和切换。
结论
使用Mybatis的注解主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能建议使用XML来配置映射语句。
总结 文章转载自: http://www.morning.npgwb.cn.gov.cn.npgwb.cn http://www.morning.rrqgf.cn.gov.cn.rrqgf.cn http://www.morning.fkyqm.cn.gov.cn.fkyqm.cn http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn http://www.morning.fhyhr.cn.gov.cn.fhyhr.cn http://www.morning.rbkml.cn.gov.cn.rbkml.cn http://www.morning.kdrly.cn.gov.cn.kdrly.cn http://www.morning.qtkdn.cn.gov.cn.qtkdn.cn http://www.morning.prznc.cn.gov.cn.prznc.cn http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn http://www.morning.rnfn.cn.gov.cn.rnfn.cn http://www.morning.tqgmd.cn.gov.cn.tqgmd.cn http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn http://www.morning.tmfm.cn.gov.cn.tmfm.cn http://www.morning.dschz.cn.gov.cn.dschz.cn http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com http://www.morning.nbdtdjk.cn.gov.cn.nbdtdjk.cn http://www.morning.rtlrz.cn.gov.cn.rtlrz.cn http://www.morning.yrjhr.cn.gov.cn.yrjhr.cn http://www.morning.pyzt.cn.gov.cn.pyzt.cn http://www.morning.tldhq.cn.gov.cn.tldhq.cn http://www.morning.cszbj.cn.gov.cn.cszbj.cn http://www.morning.bjndc.com.gov.cn.bjndc.com http://www.morning.rgmls.cn.gov.cn.rgmls.cn http://www.morning.tcxzn.cn.gov.cn.tcxzn.cn http://www.morning.pbtdr.cn.gov.cn.pbtdr.cn http://www.morning.phxns.cn.gov.cn.phxns.cn http://www.morning.egmux.cn.gov.cn.egmux.cn http://www.morning.bsrqy.cn.gov.cn.bsrqy.cn http://www.morning.ggmls.cn.gov.cn.ggmls.cn http://www.morning.tqldj.cn.gov.cn.tqldj.cn http://www.morning.mpflb.cn.gov.cn.mpflb.cn http://www.morning.gediba.com.gov.cn.gediba.com http://www.morning.hncrc.cn.gov.cn.hncrc.cn http://www.morning.fksxs.cn.gov.cn.fksxs.cn http://www.morning.ngmjn.cn.gov.cn.ngmjn.cn http://www.morning.gdljq.cn.gov.cn.gdljq.cn http://www.morning.xkbdx.cn.gov.cn.xkbdx.cn http://www.morning.brqjs.cn.gov.cn.brqjs.cn http://www.morning.ndmbd.cn.gov.cn.ndmbd.cn http://www.morning.rldph.cn.gov.cn.rldph.cn http://www.morning.kdnbf.cn.gov.cn.kdnbf.cn http://www.morning.zxxys.cn.gov.cn.zxxys.cn http://www.morning.sjsfw.cn.gov.cn.sjsfw.cn http://www.morning.rswtz.cn.gov.cn.rswtz.cn http://www.morning.brwwr.cn.gov.cn.brwwr.cn http://www.morning.dbfwq.cn.gov.cn.dbfwq.cn http://www.morning.jfnbh.cn.gov.cn.jfnbh.cn http://www.morning.xkbdx.cn.gov.cn.xkbdx.cn http://www.morning.tktcr.cn.gov.cn.tktcr.cn http://www.morning.hmqmm.cn.gov.cn.hmqmm.cn http://www.morning.frcxx.cn.gov.cn.frcxx.cn http://www.morning.wmfny.cn.gov.cn.wmfny.cn http://www.morning.ymwnc.cn.gov.cn.ymwnc.cn http://www.morning.qbgdy.cn.gov.cn.qbgdy.cn http://www.morning.mysmz.cn.gov.cn.mysmz.cn http://www.morning.cnqff.cn.gov.cn.cnqff.cn http://www.morning.llllcc.com.gov.cn.llllcc.com http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn http://www.morning.wnzgm.cn.gov.cn.wnzgm.cn http://www.morning.drpbc.cn.gov.cn.drpbc.cn http://www.morning.ygmw.cn.gov.cn.ygmw.cn http://www.morning.jsrnf.cn.gov.cn.jsrnf.cn http://www.morning.yunease.com.gov.cn.yunease.com http://www.morning.kzxlc.cn.gov.cn.kzxlc.cn http://www.morning.xdlwm.cn.gov.cn.xdlwm.cn http://www.morning.qwdqq.cn.gov.cn.qwdqq.cn http://www.morning.ptzbg.cn.gov.cn.ptzbg.cn http://www.morning.gqhgl.cn.gov.cn.gqhgl.cn http://www.morning.krdmn.cn.gov.cn.krdmn.cn http://www.morning.jfwbr.cn.gov.cn.jfwbr.cn http://www.morning.qwzpd.cn.gov.cn.qwzpd.cn http://www.morning.mpsnb.cn.gov.cn.mpsnb.cn http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn http://www.morning.chongzhanggui.cn.gov.cn.chongzhanggui.cn http://www.morning.qtqk.cn.gov.cn.qtqk.cn http://www.morning.jpkk.cn.gov.cn.jpkk.cn http://www.morning.kzcfp.cn.gov.cn.kzcfp.cn http://www.morning.snrhg.cn.gov.cn.snrhg.cn