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

深圳网站制作公司咨询新闻最近的新闻

深圳网站制作公司咨询,新闻最近的新闻,中信建设有限责任公司项目人员配置,郑州人才网目录 1. 配置文件 1.1. properties 1.1.1. 编写db.properties 1.1.2. 在配置文件中引入db.properties 1.2. settings 1.3. plugins 1.4. typeAliases 1.4.1. 为一个类配置别名 1.4.2. 为一个所有包下的所有类配置别名 1.5. environments 1.5.1. 事务管理 1.5.2. 连…

目录

1. 配置文件

1.1. properties

1.1.1. 编写db.properties

1.1.2. 在配置文件中引入db.properties

1.2. settings

1.3. plugins

1.4. typeAliases

1.4.1. 为一个类配置别名

1.4.2. 为一个所有包下的所有类配置别名

1.5. environments

1.5.1. 事务管理

1.5.2. 连接池

1.6. mappers

1.6.1. 使用相对路径注册映射文件

1.6.2. 使用绝对路径注册映射文件

1.6.3. 注册持久层接口

1.6.4. 注册一个包下的所有持久层接口        

2. 映射文件

2.1. resultMap

2.2. sql、include

2.3. 特殊字符处理

3. 总结


🎉 前言

本文来讲解MyBatis中的的重点内容:配置文件 和 映射文件

学完本节,将会理解和掌握配置、映射文件

个人主页:艺杯羹🌿

系列专栏:MyBatis🚀

1. 配置文件

先来看看配置文件的结构

-configuration-properties(属性)-property-settings(全局配置参数)-setting-plugins(插件)-plugin-typeAliases(别名)-typeAliase-package-environments(环境)-environment-transactionManager(事务管理)-dataSource(数据源)-mappers(映射器)-mapper-package

1.1. properties

属性值定义
properties标签中可以定义属性值,也可以引入外部配置文件
无论是内部定义还是外部引入,都可以使用 ${name}  获取值
可以动态的配置数据源

例如:我们可以将数据源配置写到外部的 db.properties 中,再使用properties标签引入外部配置文件,这样可以做到动态配置数据源
下面来演示一下

1.1.1. 编写db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root

1.1.2. 在配置文件中引入db.properties

-- 关键一句 
<properties resource="db.properties"></properties><environments default="mysql"><environment id="mysql"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment>
</environments>

1.2. settings

​<settings>​是配置MyBatis运行时的一些行为的
例如 缓存、延迟加载、命名规则等一系列控制性参数
后期我们会使用该标签配置缓存和延迟加载等。

1.3. plugins

​<plugins>​ 是配置MyBatis插件的
插件可以增强MyBatis功能,比如进行sql增强,打印日志,异常处理等
后期我们会使用该标签配置分页插件

1.4. typeAliases

MyBatis对常用类有默认别名支持
比如java.lang.Stirng的别名为string
除此之外,我们也可以使用<typeAliases>​设置自定义别名

1.4.1. 为一个类配置别名

<typeAliases><typeAlias type="全类名" alias="别名"></typeAlias>
</typeAliases>

此时我们即可在映射文件中使用自定义别名,如:

a. 配置文件

<typeAliases><!--设置别名--><typeAlias type="com.yibeigen.pojo.User" alias="User"> </typeAlias>
</typeAliases>
注意:要写在properties下面

 b. 映射文件

<!--这里就不用写全类名了,直接写User别名即可-->
<select id="findAll" resultType="User">select * from user
</select>

1.4.2. 为一个所有包下的所有类配置别名

<typeAliases><package name="包名"></package>
</typeAliases>

  此时该包下的所有类都有了别名,别名省略包名,也就是直接写类名即可。例如:

a. 配置文件

<typeAliases><package name="com.yibeigen.pojo"></package>
</typeAliases>

b. 映射文件

<!--直接写返回值类型就可以了,因为省略了包名-->
<select id="findPage2" resultType="User" parameterType="PageQuery">select * from user limit #{startIndex},#{pageSize}
</select>

1.5. environments

<environments>​可以为MyBatis配置数据环境 

1.5.1. 事务管理

<environments default="mysql"><environment id="mysql"><!--type的参数 JDBC:使用JDBC的提交和回滚 MANAGED:不做事务处理--><transactionManager type="JDBC"></transactionManager></environment>
</environments>

1.5.2. 连接池

<environments default="mysql"><environment id="mysql"><transactionManager type="JDBC"></transactionManager><!-- 连接池设置 --><dataSource type="POOLED"><!-- 数据源设置... --></dataSource></environment>
</environments>

dataSource的type属性:

  • POOLED:使用连接池管理连接,使用MyBatis自带的连接池。
  • UNPOOLED:不使用连接池,直接由JDBC连接
  • JNDI:由JAVAEE服务器管理连接,如果使用Tomcat作为服务器则使用Tomcat自带的连接池管理

1.6. mappers

<mappers>​用于注册映射文件或持久层接口
只有注册的映射文件才能使用,共有四种方式都可以完成注册:

1.6.1. 使用相对路径注册映射文件

<mappers><mapper resource="com/yibeigen/mapper/UserMapper.xml"/>
</mappers>

1.6.2. 使用绝对路径注册映射文件

<mappers>  <mapper url="file:///C:\Users\a\IdeaProjects\mybatiscase\mybatisDemo1\src\main\resources\com\itbaizhan\mapper\UserMapper.xml"/> 
</mappers>

1.6.3. 注册持久层接口

<mappers>  <mapper class="com.yibeigen.mapper.UserMapper"/> 
</mappers>

1.6.4. 注册一个包下的所有持久层接口        

<mappers><package name="com.yibeigen.mapper"/>
</mappers>

也就是,要么注册接口,要么注册xml文件

2. 映射文件

MyBatis映射文件中除了<insert>​、<delete>​、<update>​、<select>​外,还有一些标签可以使用:

2.1. resultMap

标签的作用的自定义映射关系
MyBatis可以将数据库结果集封装到对象中,是因为结果集的列名和对象属性名相同
那如果结果集合对象属性不相同时,MyBatis就不知道怎么配对了,所以就要用到resultMAp标签来做映射

<select id="findAll" resultType="com.itbaizhan.pojo.Teacher">select tid as id,tname as teacherName from teacher;
</select>

MyBatis 默认通过 字段名与属性名完全一致 来自动映射
如果不一致,对应的属性将被设置为 null​(不会报错,但数据会丢失)

  • ​tid as id​:把表中的 tid​ 字段重命名为 id​,这样就能和 Teacher​ 类中的 id​ 属性相对应。
  • ​tname as teacherName​:将 tname​ 字段重命名为 teacherName​,以和 Teacher​ 类里的 teacherName​ 属性相匹配

自定义映射关系

在映射文件中,使用<resultMap>​自定义映射关系:

<!-- id:自定义映射名 type:自定义映射的对象类型  -->
<resultMap id="teacherMapper" type="com.itbaizhan.pojo.Teacher"><!-- id定义主键列  property:POJO属性名 column:数据库列名  --><id property="id" column="tid"></id><!-- result定义普通列  property:POJO属性名 column:数据库列名  --><result property="teacherName" column="tname"></result>
</resultMap>

在<select>​标签中,使用resultMap​属性代替resultType​属性,使用自定义映射关系

<select id="findAll" resultMap="teacherMapper">select * from teacher
</select>

2.2. sql、include

​<sql>​用来定义可重用的Sql片段,通过 <include refid>​ 引入该片段
如:Sql语句的查询字段起与POJO属性相同的别名,该Sql片段就可以重用

<sql id="selectAllField">select tid as id,tname as teacherName
</sql><select id="findAll" resultType="com.yibeigen.pojo.Teacher"><include refid="selectAllField"></include>from teacher;
</select><select id="findById" resultType="com.itbaizhan.pojo.Teacher"><include refid="selectAllField"></include>from teacher where tid = #{id}
</select>

2.3. 特殊字符处理

在Mybatis映射文件中尽量不要使用一些特殊字符,如:<​,>​等。

我们可以使用符号的实体来表示:

符号实体
<&lt;
>&gt;
&&amp;
'&apos;
"&quot;

例如:

<select id="findById2" resultType="com.yibeigen.pojo.Teacher"><include refid="selectAllField"></include>from teacher where tid &gt; #{id}
</select>

3. 总结

到此,就结束了配置和映射文件的学习了,希望对你有所帮助 (๑•̀ㅂ•́)و✧

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

相关文章:

  • 重庆百度网站快速排名2020国内十大小说网站排名
  • 免费10g网站空间知乎推广
  • 秦皇岛网站搜索排名泉州全网营销优化
  • 网络推广具体内容宁波谷歌seo
  • 网站建设的盈利性和非盈利性兰州seo整站优化服务商
  • 做网站需要多海外新闻发布
  • dede做招聘网站交换链接营销实现方式解读
  • 全屏滚动网站示例新闻10条摘抄大全
  • ftp上传网站步骤seo常用的工具
  • 无锡企业网站制作公司有哪些酒店seo是什么意思
  • 做外贸哪个网站要办信用卡的网店推广软文范例
  • 织梦模板添加网站地图广告策划方案怎么做
  • 免费crm软件下载网站seo排名优化
  • 南宁设计网站建设现在做推广的新渠道有哪些
  • 模板网站外链做不起来晚上必备免费软件大全苹果
  • 深圳设计网站招聘合肥网络推广公司
  • 做视频上什么网站找创意开发一个小程序一般需要多少钱呢
  • 华为网站建设策划书seo百度网站排名研究中心关键词首页优化
  • 网站网页的书签怎么做营销宝
  • 其中最重要的网络设计结果想做seo哪里有培训的
  • 电子商务网站建设与运维论文百度指数搜索热度排行
  • 舞钢网站建设专业seo关键词优化
  • 没有网站域名是否需要备案歌尔股份砍单
  • 长春代做网站佛山百度推广电话
  • 有没有专门做宝宝用品的网站怎么查找关键词排名
  • 动态网站建设公司微信朋友圈广告投放价格表
  • 深圳做网站供应商怎么做市场营销和推广
  • 自己如何做网站推广怎么写网站
  • 重庆网站产品推广第一接单网app地推和拉新
  • 东莞做网站的公司吗nba赛程排名