您的位置:首页 > 编程语言 > Java开发

Spring的JdbcTemplate返回表自增主键值

2016-05-17 16:15 435 查看
事情是这样的,在1对N对N的表关系中,要用1方表自增生成的主键作为N方表的外键,因此插入1方表insert方法的返回值为主键值,这样可以用返回值插入N方表

代码如下

 public int add(final Message message)

    {

        KeyHolder keyHolder = new GeneratedKeyHolder();

        getJdbcTemplate().update(new PreparedStatementCreator(){

            final String sql="insert into message (msgContent,sendTime) values(?,?)";

                       public PreparedStatement createPreparedStatement(java.sql.Connection conn) throws SQLException{

                            PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); 

                            ps.setString(1, message.getMsgContent());

                            ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));

                            return ps;

                        }

                    },

                    keyHolder);

    return keyHolder.getKey().intValue();

    }

注意导包不能导错:

import org.springframework.jdbc.support.GeneratedKeyHolder;

import org.springframework.jdbc.support.KeyHolder;

import org.springframework.jdbc.core.PreparedStatementCreator;

另外别忘了message 表的主键设置为自增
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: