当前位置: 首页 > wzjs >正文

网站设计带装修网站大概收费盐城公司网站建设

网站设计带装修网站大概收费,盐城公司网站建设,wordpress微信红包,2022引流人脉推广软件上一章节我们聊了聊JDBC的缺点以及mybatis的基本框架,本章我们从mapper配置文件入手来解析mybatis 我们知道在mybatis中由于数据库连接的配置文件不经常更改,而sql的配置文件则总是要去更改因此对于不同类型的配置文件采用了隔离的机制,对于…

上一章节我们聊了聊JDBC的缺点以及mybatis的基本框架,本章我们从mapper配置文件入手来解析mybatis

我们知道在mybatis中由于数据库连接的配置文件不经常更改,而sql的配置文件则总是要去更改因此对于不同类型的配置文件采用了隔离的机制,对于系统配置文件用sqlMapConfig来进行配置对于sql语句的配置文件则采用mapper配置文件进行配置。

mapper配置文件:

对于mapper配置文件来说是用来存储sql语句的,那么所有的sql语句都放在一个mapper配置文件中吗?答案肯定是否定的。对于mapper来说往往是一个service业务有着自己的mapper配置文件

如上图所示,product业务有着自己的mapper,user业务也有着自己的mapper。这样使得mapper之间相互隔离每个mapper专注于一个业务进行服务。那么这些mapper内部是如何配置的呢?下面我们看看userMapper的代码。


<mapper namespace="com.example.mapper.UserMapper"><!-- 查询用户 --><select id="selectUserById" parameterType="Long" resultType="xx.xx.xx.User">SELECT * FROM users WHERE id = #{id}</select><!-- 插入用户 --><insert id="insertUser" parameterType="User">INSERT INTO users (username, email, age)VALUES (#{username}, #{email}, #{age})</insert></mapper>

我们可以看到最外层是一个mapper标签,这个mapper标签的主要作用就是区分不同的mapper文件,mapper标签含有一个namespace的属性,不同的mapper中的namespace的值不同这样就实现了相互隔离的机制。我们继续看内部含有了一个select标签和一个insert标签这两个标签每一个都将会被映射为一个mappedStatement对象用来对应每一个sql语句,继续看这两个标签内部我们发现都含有id,这个id就是给当前sql起了一个名字为了能够准确的定位到当前sql。并且select标签和insert标签都标志着sql不同的执行类型。同时我们之前说到过mybatis解决了JDBC执行sql后返回结果需要手动封装的问题,在上述select标签内部的resultType这个属性则是指明返回的数据类型,通过resultType所指向的类全路径使得返回数据能够映射到指定的返回类型中去。同时在jdbc中是用?来表示占位符,但是在mybatis则是通过#{}来进行占位符,通过parameterType来说明参数的映射类型是什么样的。parameterType和resultType本质都是通过反射来将数据进行映射出来的。

总的来说:并不是所有的sql语句都写到一个mapper配置文件中去,而是将不同的sql根据业务放在不同的mapper中去,同时每个mapper有着自己的命名空间实现mapper之间的隔离,mapper中的sql语句都是由一个标签进行包裹用来映射为一个mappedStatement对象,每个标签都有着自己的id。并且通过标签的parameterType属性和resultType属性分别用来标志反射映射的类型。

sqlMapConfig配置文件:

对于sqlMapConfig配置文件来说则是用来配置sql的连接的,同时在这个配置文件内部还含有mapper配置文件的地址,也就是说只要加载sqlMapConfig就能够读取到所有的mapper文件

也是使用反射的机制将配置文件中的属性一个个映射到类属性中

<configuration><!-- 环境配置 --><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false"/><property name="username" value="root"/><property name="password" value="password"/></dataSource></environment></environments><!-- 注册Mapper --><mappers><mapper resource="mapper/UserMapper.xml"/> <!-- 注册Mapper文件 --></mappers>
</configuration>

对于sqlMapConfig配置文件和mapper配置文件则是分别映射到Configuration和MappedStatement对象中后续将会介绍这两个对象的属性。

http://www.dtcms.com/wzjs/589091.html

相关文章:

  • 网站开发 前台代码wordpress会员vip购买扩展
  • 湖南郴州建设局网站模板王ppt
  • 天津网站建设美丽网站建设行业政策
  • 做展馆好的设计网站建筑工程项目
  • 青岛高级网站建设价格建设外卖网站规划书
  • 建站 公司网页设计怎么让图片横向填满
  • 企业互联网网站seo优化总结
  • 哈尔滨自助建站网站系统win7版本wordpress
  • 如何建设网站济南兴田德润o简介电话西安有什么好玩的地方吗
  • 婚礼做的好的婚庆公司网站建设网站的报告
  • 广告网站设计公司手机购物软件有哪些
  • 客户案例 网站设计wordpress汉化工具
  • 贵阳网站建设需要多少钱淘宝官网首页登陆
  • 网页设计企业宣传网站seo推广品牌排行榜
  • 做网站的服务器用什么系统wordpress qq聊天窗口
  • 中国建设银行网站 个人wordpress页脚改颜色
  • 网站收录少了大型网站改版
  • 珠海手机建站模板wordpress主标题副标题
  • 揭阳专业的网站建设价格dz还是wordpress
  • html5编辑器手机版做seo网站公司哪家好
  • 南京网站托管网络营销外包你不会百度吗网页生成
  • 宜兴市住房和城乡建设局网站仿懒人图库网站源码
  • 朝阳网站制作设计查找企业名录
  • 石家庄企业自助建站做网站用什么cms
  • 网站建设2000元营销型网站功能
  • 为什么建设银行网站专业论坛网站开发开发
  • 企业网站建设案例分析手机版网站开发html5
  • 网站被封怎么江西网站开发公司电话
  • js网站模板免费下载包头网站建设平台广和
  • 长沙企业做网站哪家好电子商务的网站建设的可用性