Tag: jdbc

在Java 1.7.0下运行的SQL-Server(MSSQL-JDBC 3.0)中的日期列检索为过去2天

在官方Oracle JDK 1.7.0下运行时,使用Microsoft JDBC-Driver 3.0版从SQLServer2008检索DATE类型的列时,我会产生奇怪的效果。 主机操作系统是Windows Server 2003。 对于实际存储在列中的值,将过去两天检索所有日期列。 我编写了一个最小的代码示例,测试了这个(测试表和数据): CREATE TABLE Java7DateTest ( dateColumn DATE ); INSERT INTO Java7DateTest VALUES(‘2011-10-10’); 码: public class Java7SQLDateTest { public static void main(final String[] argv) { try { Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”); Connection connection = DriverManager.getConnection( “jdbc:sqlserver://192.168.0.1:1433;databaseName=dbNameHere”, “user”, “password”); PreparedStatement statement = connection.prepareStatement(“SELECT * FROM Java7DateTest”); ResultSet resultSet = statement.executeQuery(); while […]

将参数传递给JDBC PreparedStatement

我正在尝试为我的程序制作validation课程。 我已经建立了与MySQL数据库的连接,我已经在表中插入了行。 该表由firstName , lastName和userID字段组成。 现在我想通过构造函数的参数在数据库中选择一个特定的行。 import java.sql.*; import java.sql.PreparedStatement; import java.sql.Connection; public class Validation { private PreparedStatement statement; private Connection con; private String x, y; public Validation(String userID) { try { Class.forName(“com.mysql.jdbc.Driver”); con = DriverManager.getConnection( “jdbc:mysql://localhost:3306/test”, “root”, “”); statement = con.prepareStatement( “SELECT * from employee WHERE userID = ” + “”” + userID); ResultSet […]

正确使用JDBC连接池(Glassfish)

我需要在作为会话bean实现的Java Web服务中建立数据库连接,我不确定我是否正确执行。 我创建了一个类 public final class SQLUtils { //….. private static DataSource m_ds=null; static { try { InitialContext ic = new InitialContext(); m_ds = (DataSource) ic.lookup(dbName); //Connection pool and jdbc resource previously created in Glassfish , dbName contains the proper JNDI resource name } catch (Exception e) { e.printStackTrace(); m_ds = null; } } public […]

设置JDBC连接的网络超时

我正在尝试使用Java设置网络超时我的Oracle数据库连接。 但是,我收到了一个错误。 下面是示例代码,它是相应的例外。 try{ conn = new Database(“oracle”).connect(); conn.setNetworkTimeout(null, 30000); //I don’t have an Executor, so the field is set to null System.out.println(Switch.date() + ” -> Database Connection Initialized”); } catch(SQLException ex){ Logger.getLogger(Switch.class.getName()).log(Level.SEVERE, null, ex); } 我得到的例外是: Exception in thread “main” java.lang.AbstractMethodError:oracle.jdbc.driver.T4CConnection.setNetworkTimeout(Ljava/util/concurrent/Executor;I)V at ke.co.smart.Switch.(Switch.java:524) at ke.co.smart.Switch.main(Switch.java:161) Java Result: 1 我认为它与抽象方法(读取AbstractMethodError)有关。 什么可能导致这个错误,因为我只实现了我认为已经在Java中定义的方法,因此,不拒绝编译。 注意:如果有抽象方法,Java不允许编译具体类。

如何将JDBC连接到tns oracle

我可以使用tns文件从plsql连接到数据库 现在我想使用JDBC从我的Java连接到数据库。 我尝试了什么: 我搜索谷歌,我发现我必须使用此连接字符串: “jdbc:oracle:thin:@//host:port))/tnsfile)”; 我的电脑名是myPC 在tnsfile中写入的端口是5151 所以我尝试了这个连接String “jdbc:oracle:thin:@//myPC:5151))/tnsfile” 但我得到了这个例外 java.sql.SQLRecoverableException: IO ERROR: SO Exception was generated 我究竟做错了什么? 如何使用tns文件将我的JDBC连接到数据库?

Java JDBC忽略setFetchSize?

我正在使用以下代码 st = connection.createStatement( ResultSet.CONCUR_READ_ONLY, ResultSet.FETCH_FORWARD, ResultSet.TYPE_FORWARD_ONLY ); st.setFetchSize(1000); System.out.println(“start query “); rs = st.executeQuery(queryString); System.out.println(“done query”); 查询返回大量(800k)行,并且在打印“开始查询”和“完成查询”之间需要很长时间(~2m)。 当我在查询中手动设置“限制10000”时,“开始”和“完成”之间没有时间。 处理结果需要花费时间,所以我猜它总体上更快,如果它只是从数据库中取出1k行,处理它们,当它用完行时它可以在后台获得新的行。 结果集.CONCUR_READ_ONLY等我最后猜测的地方; 我错过了什么吗? (这是一个postgresql 8.3服务器)

如何将具有未知列数的ResultSet映射到List并将其显示在HTML表中?

我使用Netbeans,GlassFish和JavaDB创建了一个数据库应用程序。 现在我的控制器Servlet代码执行一些动态SQL查询并返回一个结果集(或者我可以改变toString)。 现在,如何以表格格式显示返回的结果集(我不知道结果集的结构)。 有人可以帮我这个吗?

如何在JDBC中捕获特定的exception?

如何在JDBC中捕获特定的exception? 示例:主键exception或外键exception。

如何使用JDBC将数据从文件复制到PostgreSQL?

我想使用JDBC将数据从文件复制到PostgreSQL DB。 我正在使用JDBC语句对象将文件复制到DB中。 这很慢。 我才知道我们也可以使用copy out命令将文件复制到DB。 但是,我如何处理JDBC。 即使是在JDBC中具有复制示例的良好参考资料也会有所帮助。 PS:提前谢谢

如何获取JDBC中的行数?

我已经执行了JDBC查询以获取结果集。 在迭代之前,我想快速找出返回的行数。 我怎样才能以高性能做到这一点? 我正在使用Java 6,Oracle 11g和最新的Oracle JDBC驱动程序。