ibatis主键自增生成

来源:互联网 发布:js百度天气接口api 编辑:程序博客网 时间:2024/04/29 01:40

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

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfig  PUBLIC "-//iBATIS.com//DTD SQL MapConfig 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
原创粉丝点击