在做一个项目,现在遇到了个问题,
如何在java中获取Oracle里获取自增ID
不能对数据库修改,只能在代码里改动。
如何在java中获取Oracle里获取自增ID
不能对数据库修改,只能在代码里改动。
解决方案 »
- 急 在线等 hibernate注解 one-to-many表关系
- 大家帮我解决一个问题
- 使用Memcached后是不是就可以抛弃Hibernate二级缓存了?
- java 开发,ssh框架 网站如何实现中英文切换功能
- java生成触发器问题
- 财付通代付接口中文乱码
- 关于display显示的问题!!!!
- 用JBuilder9开发Web Service方便吗??谁有这方面的经验请介绍下啊!!
- jdom输出格式问题.我在新增一条记录时,中间就多了一些黑的方块,怎么去掉呢.代码如下
- JDOM保存XML时自动加入空行的问题!兄弟姐妹们,帮帮忙!
- Struts+Hibernate+Spring配置文件错误
- 想做客服,应该着重培养哪些能力
create sequence seq_atable minvalue 1 maxvalue 999999999999999999 start with 1 increment by 1 nocache
insert时调用
如果想自增,可以使用序列
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;public class OracleTest { public static void main(String[] args) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = OracleConnectionFactory.getConnection();
DatabaseMetaData dmd = con.getMetaData();
System.out.println("database product name: " + dmd.getDatabaseProductName());
System.out.println("database product version: " + dmd.getDatabaseProductVersion());
// 这一句如果返回的是 true 那下面的语句可以正常执行
System.out.println("supports generate keys? " + dmd.supportsGetGeneratedKeys());
String sql = "INSERT INTO t_mt_stat (id, mt_time, stat, stat_time) " +
"VALUES (s_mt_stat.nextval, ?, ?, ?)";
ps = con.prepareStatement(sql, new String[]{"ID"}); // 后面一个参数表示需要返回的列
ps.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
ps.setString(2, "Y");
ps.setTimestamp(3, new Timestamp(System.currentTimeMillis()));
ps.executeUpdate();
if(dmd.supportsGetGeneratedKeys()) {
rs = ps.getGeneratedKeys();
while(rs.next()) {
// 如果使用 rs.getInt("ID") 会报错,奇怪的 Oracle JDBC 驱动!
System.out.println("ID: " + rs.getInt(1));
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtil.close(rs, ps, con);
}
}
}
insert into profession values(professionId.nextval,'医疗');
取的时候也这样取啊