java的connection.prepareStatement(sql, columnNames)怎么获取返回的列

connection.prepareStatement(sql,columnNames);这个方法的使用有人告诉我说可以获取到insert对象相应的列,但是我还是不太懂,... connection.prepareStatement(sql, columnNames);这个方法的使用有人告诉我说可以获取到insert对象相应的列,但是我还是不太懂,因为我没有在PreparedStatement类里面找到我觉得像的方法,所以我写了一点代码,帮我看看怎么接下去获取到刚插入的行的id吧
假设我有一个Book类,属性是id和name ,有一个book表,字段是id和name, id字段自增长 name可重复
代码大概是这样,可能语法有点错这个就无视掉好了
PreparedStatement pstmt=null;
String sql="insert into book(name) values(?)";
String columnNames[]=new String[1];
columnNames[0]="id";
connection.prepareStatement(sql, columnNames);
pstmt=connection.prepareStatement(sql);
pstmt.setString(1, book.getName());

suc=pstmt.execute();

接下来,就是我怎么获得prepareStatement返回的id列了,请帮我看看什么地方要改的或者要添加的
ps:如果我再用select 去select name相同的行,因为name是可重复的啦,会select以前的行的吧,所以 这个应该是行不通的吧?
补充一下上面的
connection.prepareStatement(sql, columnNames);
pstmt=connection.prepareStatement(sql);写错了
应该是pstmt=connection.prepareStatement(sql, columnNames);
复制的问题
展开
 我来答
gameman520
推荐于2016-09-02 · 超过13用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:38.4万
展开全部
请仔细阅读API“PreparedStatement prepareStatement(String sql,
int[] columnIndexes)
throws SQLException
创建一个能够返回由给定数组指定的自动生成键的默认 PreparedStatement 对象。此数组包含目标表中的列的索引,而该目标表包含应该使其可用的自动生成的键。如果该 SQL 语句不是一条 INSERT 语句,则忽略此数组。 ”
追问
谢谢,不过这句话我不理解啊,我之前的提问也是问这句话什么意思,最后有人告诉我说可以返回某些字段,不过当时没问清楚怎么返回
所以现在想知道怎么得到这些字段 http://zhidao.baidu.com/question/589759150.html?quesup2&oldq=1
追答
执行Select 就可以得到这些字段啊……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式