getJdbcTemplate 获取插入数据的行号

xiechunmei13 2009-08-25 02:37:51
如题:我要获取我当前插入的行的id
String sql = "insert into customer (cname,type,roles,created,bind_code) values(?,?,?,?,?)";
return getJdbcTemplate().update(sql, new Object[]{customer.getCname(),
customer.getType(),
customer.getRoles(),
new Date(),
customer.getBind_code()});

jdbc可有这样的方法?
如果我自己查:
private static String QUERY_CUSTOMER_MAXID = "select max(1) from vis_customer order by cid desc";
那我获取值杂获取啊?
一个愚笨问题!
谢谢各位!
我把getJdbcTemplate()的方法翻了一遍也没找到合适的。不知道是不是我方法不对。
...全文
339 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiechunmei13 2009-08-27
  • 打赏
  • 举报
回复
貌似不可以。结贴。
xiechunmei13 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiechunmei13 的回复:]
o(∩_∩)o...哈哈
问题已解决!
就当我在自己写笔记吧。
自己太笨了
看来还是没仔细的原因
当我自己查的时候:
private static String QUERY_CUSTOMER_MAXID = "select max(1) from customer order by cid desc";
改正下:private static String QUERY_CUSTOMER_MAXID = "select max(cid) from customer order by cid desc";
@Override
public int getMaxID() {
return getJdbcTemplate().queryForInt(QUERY_CUSTOMER_MAXID);
}
这样可以取了。

但是我还是想知道有没有直接的方法在插入的时候可以一起把当前id返回的呢?

[/Quote]
andesen 2009-08-25
  • 打赏
  • 举报
回复
SqlServer可以,我以为是一样的,呵呵
xiechunmei13 2009-08-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 andesen 的回复:]
String sql="insert into customer (cname,type,roles,created,bind_code) values(?,?,?,?,?);select @@identity"

执行查询方法就ok了
[/Quote]

刚试了下,直接在mysql控制台后,执行完后是返回一个整形,但是杂是0呢?数据库插入值了。结果却返回是0!

在程序中,像你那样写就出错了。o(∩_∩)o...哈哈
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select @@identity' at line 1

继续研究!
andesen 2009-08-25
  • 打赏
  • 举报
回复
执行增加并返回查询的标识列
andesen 2009-08-25
  • 打赏
  • 举报
回复
String sql="insert into customer (cname,type,roles,created,bind_code) values(?,?,?,?,?);select @@identity"

执行查询方法就ok了
xiechunmei13 2009-08-25
  • 打赏
  • 举报
回复
o(∩_∩)o...哈哈
问题已解决!
就当我在自己写笔记吧。
自己太笨了
看来还是没仔细的原因
当我自己查的时候:
private static String QUERY_CUSTOMER_MAXID = "select max(1) from customer order by cid desc";
@Override
public int getMaxID() {
return getJdbcTemplate().queryForInt(QUERY_CUSTOMER_MAXID);
}
这样可以取了。

但是我还是想知道有没有直接的方法在插入的时候可以一起把当前id返回的呢?

xiechunmei13 2009-08-25
  • 打赏
  • 举报
回复
自己顶!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧