liuyiqi2008 2011-04-27 12:03
浏览 659
已采纳

IBatis插入一条记录后,如何返回记录ID值

下面是IBatis将用户插入数据库的例子:

  1. MySQL定义
    CREATE TABLE user (
    id bigint(20) NOT NULL AUTO_INCREMENT,
    name char(80) NOT NULL,
    age int(11) DEFAULT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY id (id)
    )

  2. User定义
    public class User {
    private Long id;
    private String name;
    private int age;
    ...
    }

  3. 定义UserMapper
    [code="java"]

    insert into author(name,age) values(#{name},#{age})

    [/code]

  4. 增加一个用户的程序片段
    [code] ApplicationContext aContext = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");
    UserMapper userMapper = aContext.getBean(UserMapper.class);
    User user = new User();

    user.setName("张三");
    user.setAge(18);
    userMapper.insert(user);[/code]
    问题:如何才能得到加入记录"张三"的ID值? 能在插入时直接回填ID吗?

  • 写回答

3条回答 默认 最新

  • TonyLian 2011-04-28 09:36
    关注

    纠正一下1楼的说法,返回值是2楼SQL-Map中要加上的 @@IDENTITY
    把它强转为String或int都可以,下面是int的写法:

    [code="java"]
    public int insert(User user) throws DAOException {
    return ((Integer)getSqlMapClientTemplate().insert("insert", user)).intValue();
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大