Tag: jdbc

JDBC连接失败,错误:到主机的TCP / IP连接失败

我想用SQL server 2012连接Java类文件。我已经使用SQL Server身份validationlogin。 但是我正在接收连接错误。 错误:与主机127.0.0.1,端口1433的TCP / IP连接失败。 错误:“Connection refused:connect。validation连接属性确保主机上正在运行SQL Server实例并接受端口上的TCP / IP连接请确保与端口的TCP连接没有被防火墙阻止“。 我的代码— Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //1. Register your driver //2. get the connection object //Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=aysha","sa","admin"); Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=aysha","user=sa","password=admin"); //"jdbc:sqlserver://127.0.0.1:1433; Instance=SQL2008;" + "databaseName=MB;user=sa;password=123;"; //Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=aysha","sa" , "password"); //3. Prepare a statement Statement stmt = con.createStatement(); //4. Write the query` String […]

我如何获得PreparedStatement的SQL?

我有一个通用的Java方法,具有以下方法签名: private static ResultSet runSQLResultSet(String sql, Object… queryParams) 它打开一个连接,使用sql语句和queryParams可变长度数组中的参数构buildPreparedStatement ,运行它,cachingResultSet (在CachedRowSetImpl ),closures连接并返回caching的结果集。 我在logging错误的方法中有exception处理。 我将sql语句logging为日志的一部分,因为它对debugging非常有帮助。 我的问题是,日志logging的stringvariablessql日志的模板语句?而不是实际值。 我想logging执行(或试图执行)的实际语句。 所以…有什么办法来获得将由PreparedStatement运行的实际SQL语句? (如果我自己没有构build它,如果我找不到一个访问PreparedStatement's SQL的方法,那么我可能最终会自己去构build它。)

什么是使用JDBC来参数化IN子句的最佳方法?

说我有一个forms的查询 SELECT * FROM MYTABLE WHERE MYCOL in (?) 我想参数化参数。 有没有一种简单的方法可以在Java中使用JDBC执行此操作,而且可以在不修改SQL本身的情况下在多个数据库上工作? 我发现最接近的问题与C#有关 ,我想知道是否有什么不同的Java / JDBC。

在Java中处理MySQLdate和时间戳

在java应用程序中,在使用date时间和时间戳混合的MySQL数据库中提取和inputdate信息方面有什么好的折中?

我如何获得java.sql.ResultSet的大小?

这不应该是一个非常简单的操作? 但是,我看到既没有size()也没有length()方法。

重复使用PreparedStatement多次

在使用PreparedStatement和一个没有任何池的公共连接的情况下,我是否可以重新创build一个实例,以保证每个准备好语句的dml / sql操作? 我的意思是: for (int i=0; i<1000; i++) { PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setObject(1, someValue); preparedStatement.executeQuery(); preparedStatement.close(); } 代替: PreparedStatement preparedStatement = connection.prepareStatement(sql); for (int i=0; i<1000; i++) { preparedStatement.clearParameters(); preparedStatement.setObject(1, someValue); preparedStatement.executeQuery(); } preparedStatement.close(); 我的问题是由于我想把这个代码放到multithreading的环境中,你能给我一些build议吗? 谢谢

从java.sql.PreparedStatement获取查询

在我的代码中,我正在使用java.sql.PreparedStatement 。 然后我执行setString()方法来填充预备语句的通配符。 有没有办法让我在调用executeQuery()方法并执行查询之前检索(并打印出)最终查询? 我只是想debugging的目的。

Java:使用PreparedStatement将多行插入到MySQL中

我想用Java一次插入多行到一个MySQL表中。 行数是dynamic的。 过去我在做… for (String element : array) { myStatement.setString(1, element[0]); myStatement.setString(2, element[1]); myStatement.executeUpdate(); } 我想优化这个使用MySQL支持的语法: INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, …] 但用PreparedStatement我不知道有什么办法做到这一点,因为我事先不知道有多less元素array将包含。 如果PreparedStatement是不可能的,那我还能怎么做(并且仍然在数组中的值)?

尝试通过JDBC将UTF-8插入到MySQL中时出现“错误的string值”?

这是我的连接设置: Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true&characterEncoding=utf-8", userName, password); 而且在向表中添加一行时出现以下错误: Incorrect string value: '\xF0\x90\x8D\x83\xF0\x90…' for column 'content' at row 1 我插入了成千上万的logging,当文本包含\ xF0时(即不正确的string值始终以\ xF0开头),我总是得到这个错误。 该列的sorting规则是utf8_general_ci。 可能是什么问题呢?

在PreparedStatement中使用setDate

为了使我们的代码更加标准化,我们被要求将我们的SQLvariables硬编码为SQL语句的所有地方改为准备语句,然后绑定variables。 不过,我正面临setDate()的问题。 这里是代码: DateFormat dateFormatYMD = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); DateFormat dateFormatMDY = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); Date now = new Date(); String vDateYMD = dateFormatYMD.format(now); String vDateMDY = dateFormatMDY.format(now); String vDateMDYSQL = vDateMDY ; java.sql.Date date = new java.sql.Date(0000-00-00); requestSQL = "INSERT INTO CREDIT_REQ_TITLE_ORDER (REQUEST_ID," + " ORDER_DT, FOLLOWUP_DT) " + "values(?,?,?,)"; prs = conn.prepareStatement(requestSQL); prs.setInt(1,new […]