2. Mybatis入门,Mybatis元素,select,insert,update,delete相关属性

Mybatis相关配置元数说明

settings元素

属性名称作用备注
cacheEnabled所有映射器中配置的缓存全局开关默认值为true
lazyLoadingEnabled延迟加载全局开关
multipleResultSetsEnabled是否允许单一语句返回多结果集(需驱动支持)默认值为true
useColumnLable使用列标签代替列名,默认值为true
useGeneratedKeys允许jdbc支持自动生成主键,
autoMappingBehavior指定Mybatis如何自动映射列到字段或属性,NONE表示取消自动映射,PARTIAL会自动映射没有定义嵌套结果集映射的结果集,FULL会自动映射任意复杂结果集PARTIAL
defaultExecutorType默认执行器。SIMPLE是普通执行器,REUSE执行器会重用预处理语句(PreparedStatements),BATCH执行器将重用语句并执行批量更新SIMPLE
defaultStatementTimeout超时时间设置
defaultRowBoundsEnabled允许嵌套语句中使用分页默认值为false
proxyFactory创建具有延迟加载能力对象所用的代理工具3.3.0以上默认JAVASSIST,否则CGLIB

映射器相关元素

元素名称作用备注
select查询数据
insert插入数据返回一个整数,表示插入的条数
update更新数据返回一个整数,表示更新的条数
delete删除数据返回一个整数,表示删除的条数
parameterMap参数映射关系
sql预先定义一个sql,然后可以在其他地方引用使用
resultMap数据库返回的数据结果与实体之间column和字段之前的映射关系规则
cache缓存配置
cache-ref其他命名空间缓存配置引用

select元素

属性名称作用备注
id标识符,和对应的mapper的命名空间构成唯一的标识符,如果不唯一,mybatis会报错
pramaterType传递参数的类型
resultType返回值类型不能和resultMap同时使用
resultMap引用外部定义的映射集,我们可以使用rsultMap或者resultType其中的一个,resultMap可以给我们自定义映射集的机会
flushCache要求mybatis在调用SQL后是否清除之前查询的本地和二级缓存
useCache是否开启二级缓存
timeout设置超时的时间,超时将抛出异常,单位为秒默认的是JDBC厂商提供的默认值
fetchSize获取记录总条数的设定默认是jdbc厂商提供默认值
statementType告诉Mybatis使用jdbc提供的哪个Statement,取值为STATEMENT(Statement),PREPARED(PreparementStatement),CallableStatemet默认为PREPARED
resultSetType这是对jdbc的resultSet的接口而言,包括FORWORD_ONLY(允许游标向前访问),scroll_sensitive,scroll_insentive
resultOrderId用于嵌套结果集

insert元素

其他与select基本相同,一下属性独有:

属性名称作用备注
keyProperty哪个列作为主键,不能和keyColumn同时使用,如果使用插入后会回填javabean的id值如果是联合主键,逗号分隔
keyColumn知名第几列是主键不能和keyProperty同时使用,只接受整型参数,联合主键用逗号隔开
useGeneratedKeysmybatis会通过getGeneratedKeys来获取由数据库生成的主键,如mysql和sqlserver,但是oracle序列等,使用它就必须给keyProperty或keyColumn赋值
<!--手动执行自增方式,可以采取序列等方式-->
    <insert id="insertManualId" parameterType="person" useGeneratedKeys="true">
        <selectKey keyProperty="id" resultType="int" order="BEFORE" >
            select if(max(id) is null,1,max(id)+1 ) as newId from person
        </selectKey>
        insert into person(name,age,gender,address,phone)
        values(#{name},#{age},#{gender},#{address},#{phone})
    </insert>

SQL元素

这个元素用来定义能够被其它语句引用的可重用SQL 语句块。例如:
id,username,password
这个 SQL 语句块能够被其它语句引用,如:

<select id=”selectUsers” parameterType=”int” resultType=”hashmap”>
select <include refid=”userColumns”/>
from some_table
where id = #{id}
</select>

resultMap元素

属性名称作用备注
property对应类的属性名称
column对应数据库中表的字段
javaTypejava类型
jdbcType数据库类型,基本上mybatis已经配置好了
typeHandler可以用来覆盖默认的typeHandler
<resultMap id=" userResultMap" type="User">
<id property="id" column="user_id" />
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值