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();



  • 相关阅读:
    驱动中回溯函数的调用关系
    CSI-MIPI学习笔记
    1920*1080分辨率和1080p,1080i的关系
    V4L2驱动内核文档翻译(一)
    signal()信号操作
    617. Merge Two Binary Trees
    Java中的集合
    Switch能否用string做参数
    Java面试题
    八种基本数据类型的大小,以及他们的封装类
  • 原文地址:https://www.cnblogs.com/dondming/p/4875764.html
Copyright © 2011-2022 走看看