zoukankan      html  css  js  c++  java
  • ibatis学习笔记

    注意点:

    插入语句的时候有序列需要返回值:

    <insert id="addStudent" parameterClass="Student">
    insert into
    tbl_student(name,birth,score) values
    (#name#,#birth#,#score#)
    <selectKey resultClass="int" keyProperty="id">
    select @@identity as inserted
    <!-- 这里需要说明一下不同的数据库主键的生成,对各自的数据库有不同的方式: -->
    <!-- mysql:SELECT LAST_INSERT_ID() AS VALUE -->
    <!-- mssql:select @@IDENTITY as value -->
    <!-- oracle:SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL -->
    <!-- 还有一点需要注意的是不同的数据库生产商生成主键的方式不一样,有些是预先生成 (pre-generate)主键的,如Oracle和PostgreSQL。
    有些是事后生成(post-generate)主键的,如MySQL和SQL Server 所以如果是Oracle数据库,则需要将selectKey写在insert之前 -->
    </selectKey>
    </insert>

    typealias 类的别名,定义别名后使用时不需要一大串包名的类全名
    resultMap SQL 字段与类属性的映射关系,避免在 SQL 语句中使用 as 转换字段别名
    parameterClass 参数类型
    resultClass 返回类型,使用 resultClass 不使用 resultMap 时就使用 as 让字段和属性名
    称一致

    包含大于号<、小于号>等特殊字符
    <select id="select" parameterClass="int" resultClass="Account">
    select
    ACC_ID as id,
    ACC_FIRST_NAME as firstName,
    ACC_LAST_NAME as lastName,
    ACC_EMAIL as emailAddress
    from ACCOUNT
    where <![CDATA[ACC_ID > #id#]]>
    </select>

    SqlMapClient API • sqlMapper.queryForList • sqlMapper.queryForObject • sqlMapper.queryForMap • sqlMapper.queryForPaginatedList • sqlMapper.queryWithRowHandler • sqlMapper.insert • sqlMapper.update • sqlMapper.delete
    SqlMapClient 实际是一个接口并不是类
    SqlMapClientBuilder.buildSqlMapClient()方法返回的是
    com.iBATIS.sql.engine.impl.SqlMapClientImpl 类。
    批处理
    将 startBatch 与 executeBatch 之间的语句一次一起提交执行,减少与数据库的交互数次,
    提高执行性能,如:
    sqlMapper.startBatch();
    要执行的语句……
    sqlMapper.executeBatch();



  • 相关阅读:
    个人图床【Gitee+PicGo(+Typora)】
    java 对象序列化
    @RequestParam和@PathVariable
    restful架构
    数组跟切片的区别
    为什么java支持 一个类实现多个接口;但是只能继承一个类
    == 与equals区别
    static代码块是先加载的,不能用成员变量。可以new。
    @Configuration和 @Bean
    Thymeleaf 常用th标签基础整理
  • 原文地址:https://www.cnblogs.com/dondming/p/4875764.html
Copyright © 2011-2022 走看看