Tag: jdbc

结果集到分页

如何将Resultset对象转换为JSP上的分页视图? 例如,这是我的查询和结果集: pst = con.prepareStatement("select userName, job, place from contact"); rs = pst.executeQuery();

我应该如何在JDBC中使用try-with-resources?

我有一个使用JDBC从数据库中获取用户的方法: public List<User> getUser(int userId) { String sql = "SELECT id, name FROM users WHERE id = ?"; List<User> users = new ArrayList<User>(); try { Connection con = DriverManager.getConnection(myConnectionURL); PreparedStatement ps = con.prepareStatement(sql); ps.setInt(1, userId); ResultSet rs = ps.executeQuery(); while(rs.next()) { users.add(new User(rs.getInt("id"), rs.getString("name"))); } rs.close(); ps.close(); con.close(); } catch (SQLException e) { e.printStackTrace(); } […]

用JDBC做批量INSERTS的有效方法

在我的应用程序中,我需要做很多插入。 它是一个Java应用程序,我使用普通的JDBC执行查询。 DB是Oracle。 我已经启用批处理,所以它节省了我的networking延迟执行查询。 但是查询作为单独的INSERT被串行执行: insert into some_table (col1, col2) values (val1, val2) insert into some_table (col1, col2) values (val3, val4) insert into some_table (col1, col2) values (val5, val6) 我想知道下面的INSERTforms是否更有效率: insert into some_table (col1, col2) values (val1, val2), (val3, val4), (val5, val6) 即折叠多个INSERT到一个。 任何其他技巧,使批量插入更快?

Java JDBC – 如何使用服务名称而不是SID连接到Oracle

我有一个使用JDBC(通过JPA)的Java应用程序,它使用主机名,端口和Oracle SID连接到开发数据库,​​如下所示: JDBC:神谕:薄:@ oracle.hostserver1.mydomain.ca:1521:XYZ XYZ是Oracle SID。 现在我需要连接到不使用SID的不同Oracle数据库,而是使用Oracle“Service Name”。 我试过,但它不工作: JDBC:神谕:薄:@ oracle.hostserver2.mydomain.ca:1522:ABCD ABCD是另一个数据库的服务名称。 我究竟做错了什么?

在Maven仓库中查找Oracle JDBC驱动程序

我想将oracle jdbc驱动程序添加到我的项目中,作为依赖项(运行时范围) – ojdbc14。 在MVNrepository站点中放入POM的依赖是: <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.3.0</version> </dependency> 当然这不起作用,因为它不在maven使用的中央存储库中。 2个问题: 如何find包含此工件的存储库(如果有)? 我如何添加它,以便Maven将使用它?

Java ResultSet如何检查是否有任何结果

结果集 hasNext没有方法。 我想检查结果集是否有任何值 这是正确的方法 if (!resultSet.next() ) { System.out.println("no data"); }

PreparedStatement和IN子句中的参数列表

如何在执行查询时在JDBC的preparedStatement中为in子句设置值。 例: connection.prepareStatement("Select * from test where field in (?)"); 如果这个子句可以保存多个值,我该怎么做。 有时我事先知道参数列表,有时候我事先不知道。 如何处理这种情况?

为什么JDBC驱动程序必须放在TOMCAT_HOME / lib文件夹中?

我有一个奇怪的问题,其中两个具有Oracle JDBC驱动程序的Web应用程序将相互冲突。 我必须将JDBC驱动程序JAR放在通用文件夹TOMCAT_HOME / lib中 。 这是什么原因?

是java.sql.Timestamp时区特定的?

我必须在数据库中存储UTC dateTime。 我已将特定时区中给定的date时间转换为UTC。 为此我遵循下面的代码。 我input的date时间是“20121225 10:00:00 Z”时区是“亚洲/加尔各答” 我的服务器/数据库(甲骨文)运行在相同的时区(IST)“亚洲/加尔各答” 获取此特定时区中的Date对象 String date = "20121225 10:00:00 Z"; String timeZoneId = "Asia/Calcutta"; TimeZone timeZone = TimeZone.getTimeZone(timeZoneId); DateFormat dateFormatLocal = new SimpleDateFormat("yyyyMMdd HH:mm:ss z"); //This date object is given time and given timezone java.util.Date parsedDate = dateFormatLocal.parse(date + " " + timeZone.getDisplayName(false, TimeZone.SHORT)); if (timeZone.inDaylightTime(parsedDate)) { // We need […]

java.sql.SQLException: – ORA-01000:超过最大打开游标

我得到一个ORA-01000 SQLexception。 所以我有一些相关的疑问。 最大打开的游标是否与JDBC连接的数量完全相关,还是与我们为单个连接创build的语句和结果集对象有关? (我们正在使用连接池) 有没有办法configuration数据库中的语句/结果集对象的数量(如连接)? 在单线程环境中使用实例variables语句/结果集对象而不是方法本地语句/结果集对象是否明智? 在循环中执行预处理语句是否会导致此问题? (当然,我可以使用sqlBatch)注意:一旦循环结束,pStmt被closures。 { //method try starts String sql = "INSERT into TblName (col1, col2) VALUES(?, ?)"; pStmt = obj.getConnection().prepareStatement(sql); pStmt.setLong(1, subscriberID); for (String language : additionalLangs) { pStmt.setInt(2, Integer.parseInt(language)); pStmt.execute(); } } //method/try ends { //finally starts pStmt.close() } //finally ends 如果在单个连接对象上多次调用conn.createStatement()和conn.prepareStatement(sql)会发生什么情况? 编辑1: 6.使用弱/软参考语句对象是否有助于防止泄漏? 编辑2: 1.有什么办法,我可以find我的项目中所有缺less的“statement.close()”? 我明白这不是内存泄漏。 但是我需要find一个声明引用(其中不执行close())符合垃圾回收的条件吗? […]