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同时使用,只接受整型参数, 联合主键用逗号隔开
useGeneratedKeys mybatis会通过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 对应数据库中表的字段
javaType java类型
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>

你可能感兴趣的:(MyBatis)