MyBatis知识二 配置文件解析一
来源:互联网 发布:战地使命召唤知乎 编辑:程序博客网 时间:2024/05/29 18:41
这里我们首先分析的是对于类与数据库之间的映射配置文件,不是总配置文件。
看下列配置文件:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="user"> <select id="selectById" parameterType="int" resultType="com.wf.model.User"> <!-- select * from User where id = #{id} --> <!-- select * from User where id = #{value} --> select * from User where id = #{hehe} </select> <select id="selectByName" parameterType="java.lang.String" resultType="com.wf.model.User"> select * from User where username like '%${value}%' </select> <insert id="insertUser" parameterType="com.wf.model.User"> <!-- insert into user value (#{id},#{username},#{birthday},#{sex},#{address}) --> insert into user value (null,#{username},#{birthday},#{sex},#{address}) <!-- 字段必须全部写完,即使是自增的也要写上,或者利用null代替 --> </insert> <insert id="insertUserAndCheckID" parameterType="com.wf.model.User"> <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> select LAST_INSERT_ID() </selectKey> insert into user value (#{id},#{username},#{birthday},#{sex},#{address}) </insert> <insert id="insertUserAndCheckIDFree" parameterType="com.wf.model.User"> <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> select uuid() </selectKey> insert into user value (#{id},#{username},#{birthday},#{sex},#{address}) </insert> <delete id="deleteuserwithid" parameterType="java.lang.Integer"> delete from user where id=#{id} </delete> <update id="updateuserwithid" parameterType="com.wf.model.User"> update user set username=#{username},birthday=#{birthday},sex=#{sex}, address=#{address} where id=#{id} </update></mapper>
NameSpace属性
namespace的作用,首先在没有利用Mapper代理开发的时候,他的作用仅仅是用来进行模块化划分,对SQL进行分类化管理,隔离SQL,但是我们如果使用了Mapper代理进行开发的时候,我们就是根据我们的namespace的类全名称进行我们的接口与配置文件之间的映射,用来指定映射的接口。
增删改查标签
INSERT,DELETE,UPDATE,SELECT ,标签用来标识此时的SQL语句的操作。
ID属性
id属性标识映射文件的sql,用来唯一标示此SQL语句的身份特质,一般在代码的Dao层会进行SQL语句的执行,此时就是根据这个NameSpace和ID用来唯一标示要执行的SQL语句。
parameterType属性
指定输入参数的类型,可以是基本类型,也可以是封装类型,一般情况在在传递一个参数时,我们只需要进行单个参数的类型入int,String等设定即可,但是,对于多参数的传递,我们都会将其封装成一个对象,然后将这个对象传递到我们的SQL语句中。
resultType属性
resultType,指定SQL输出结果的所映射的java对象类型,也就是这个属性,将我们数据库中的一条记录对应成我们的一个Java对象,如果查询的结果是一个List列表的形式,我们利用此属性只需要指定List集合中的对象属性即可。
井{ }和${ }
在一般的属性传值中,我们的 #{} 表示一个占位符号,而${} 表示不加任何修饰的拼接SQL串。
井{id} id 表示接收输入值的参数,参数名称是id,如果输入参数是简单类型,#{}中的参数名称可以是任意的。可以是value或者其他。而如果传入的参数不为简单类型,那么括号里面的属性必须为value。
${ } 表示不加任何修饰的拼接SQL串,将传入的参数直接拼接到我们的SQL语句中,利用的是拼接而不是占位符
<!--简单类型 任意--><select id="selectById" parameterType="int" resultType="com.wf.model.User"> <!-- select * from User where id = #{id} --> <!-- select * from User where id = #{value} --> select * from User where id = #{hehe} </select><!--复杂类型 value --><select id="selectByName" parameterType="java.lang.String" resultType="com.wf.model.User"> select * from User where username like '%${value}%' </select>
selectKey标签—主键的返回
selectKey子标签,对于在插入的同时获取插入的id值,用于外键的插入
<insert id="insertUserAndCheckID" parameterType="com.wf.model.User"> <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> select LAST_INSERT_ID() </selectKey> insert into user value (#{id},#{username},#{birthday},#{sex},#{address}) </insert><insert id="insertUserAndCheckIDFree" parameterType="com.wf.model.User"> <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> select uuid() </selectKey> insert into user value (#{id},#{username},#{birthday},#{sex},#{address}) </insert>
上面的代码,第一句是自增主键的主键获取,而对于第二个,则是在进行插入时生成的非自增的uuid的字符串的主键。注意order的属性值。
keyProperty属性:selectKey 语句结果应该被设置的目标属性。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。
order 属性: 指定语句执行顺序,相当于INSERT语句来说的执行顺序
resultType: 指定返回的对象类型
- MyBatis知识二 配置文件解析一
- (二)MyBatis源码解析之配置文件
- (一)MyBatis源码解析之配置文件
- MyBatis的配置文件解析
- mybatis generator 配置文件解析
- MyBatis配置文件解析
- MyBatis配置文件属性解析
- MyBatis 全局配置文件解析
- MyBatis配置文件全解析
- mybatis主配置文件解析
- MyBatis(一)配置文件
- MyBatis知识系列之三:MyBatis的配置文件:mybatis.cfg.xml和xxx.mapper.xml文件的解析
- MyBatis学习(二):解析MyBatis配置文件的写法和使用原理
- mybatis generator tools配置文件解析
- mybatis generator tools配置文件解析
- Mybatis之XML配置文件解析
- mybatis配置文件(mapper)属性解析
- 【Mybatis】sqlMapConfig.xml配置文件解析
- 恭喜您成为 2017 年度 Microsoft MVP
- 创建一个基于SQLITE数据库的类
- HTMLday2旅途
- AngularJS-7-表单
- leetcode 66. Plus One
- MyBatis知识二 配置文件解析一
- 数据库中取出时间数据,JS转换后小时的值多了8个小时
- 算法概论课后题8.16证明
- MySQL免安装环境配置
- 机器人技术(9)AtdRobot读取激光雷达数据教程
- Matlab连接MySQL并实现简单的数据库操作
- Spark伪分布式搭建
- 在NotePad++中安装DBGP debugger调试PHP程序
- #2 组件生命周期