ibatis主键自增生成


sqlmap-config-log.xml文件代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig  PUBLIC "-//iBATIS.com//DTD SQL Map
Config 2.0/" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

    <settings cacheModelsEnabled="true" enhancementEnabled="true"
        lazyLoadingEnabled="false" errorTracingEnabled="true" maxRequests="32"
        maxSessions="10" maxTransactions="5" useStatementNamespaces="true" />

    <sqlMap resource="sqlmap/Log.xml"/>
    <settings useStatementNamespaces="true"/>
    <transactionManager type="JDBC">
        <dataSource type="SIMPLE">
            <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
            <property name="JDBC.ConnectionURL"
                      value="jdbc:mysql://127.0.0.1:3306/dbName"/>
            <property name="JDBC.Username" value="xxx"/>
            <property name="JDBC.Password" value="xxx"/>
        </dataSource>
    </transactionManager>
</sqlMapConfig>


Log.xml文件配置如下:

    <insert id="insertLog" parameterClass="com.xxx.Log">
        <selectKey keyProperty="id" resultClass="int" type="post">
            select last_insert_id() as value
        </selectKey>
        insert into tableName(ip)
        values (#ip#)
    </insert>



java文件代码如下:

 public static void main(String[] args) {
        try {
            InputStream  inputStream = new FileInputStream("D:\\sqlmap-config-log.xml");
            SqlMapClient sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(inputStream);
            Log log= new Log();
            log.setIp("");
            Object id=(Integer)sqlMapClient.insert("Log.insertLog",log);
        } catch (Exception e) {
            e.printStackTrace(); 
        }


    }

<selectKey keyProperty="id" resultClass="int" type="post">

type为"post",那么每次插入一条数据后,会在原有插入数据库connection基础上,生成自增id,

type为“pre”或者没有type字段,那么每次插入一条数据后,返回0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值