1. 程式人生 > >jdbcTemplate獲得資料庫生成的主鍵值

jdbcTemplate獲得資料庫生成的主鍵值

JSONObject obj = new JSONObject();
			obj.put("code", transactionTemplate.execute(new TransactionCallback<Integer>() {
						@Override
						public Integer doInTransaction(TransactionStatus status) {
							Object spt = status.createSavepoint();
							
							try {
								
								final String sql = "insert into article (title, content, source, keyword, intro,"
										+ " type, author, recommend, headline,leaveNumber,clickNumber,userid,"
										+ "createtime,updatetime,deploytime) values"
										+ " (?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?) ";

								
								KeyHolder keyHolder = new GeneratedKeyHolder();
								jdbcTemplate.update(new PreparedStatementCreator() {
									
									@Override
									public PreparedStatement createPreparedStatement(Connection conn)
											throws SQLException {
										PreparedStatement pstat = conn.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
										pstat.setString(1, title);
										pstat.setString(2, content);
										pstat.setString(3, source);
										pstat.setString(4, keyword);
										pstat.setString(5, intro);
										pstat.setString(6, type);
										pstat.setString(7, author);
										pstat.setString(8, recommend);
										pstat.setString(9, headline);
										pstat.setString(10, leaveNumber);
										pstat.setString(11, clickNumber);
										pstat.setString(12, userid);
										pstat.setDate(13, new java.sql.Date(new  java.util.Date().getTime()));
										pstat.setDate(14, new java.sql.Date(new  java.util.Date().getTime()));
										pstat.setDate(15, new java.sql.Date(new  java.util.Date().getTime()));
										return pstat;
									}
								}, keyHolder);
								System.out.println("PK: " + keyHolder.getKey().intValue());
								/*String sqls = "insert into channel_article (articleid, channelid) values (?, ?)";
								jdbcTemplate.update(sqls, articleid, channelid);*/
								status.releaseSavepoint(spt);
								return 0;
							} catch (Exception e) {
								status.rollbackToSavepoint(spt);
								return -1;
							}
						}
					}));
		response.getWriter().write(obj.toString());