草庐IT

ShardingSphere-jdbc

全部标签

java - JDBC SQLServerException : "This driver is not configured for integrated authentication."

我正在为SmartFoxServer编写“服务器端扩展”(SFS)。在我的登录脚本中,我需要连接到我正在尝试使用JDBC进行的MSSQLServer。我已经在我的调试环境中测试了JDBC代码,它运行良好。但是当我将服务器端扩展放入SFS“扩展”文件夹(按照规范)时,我得到一个com.microsoft.sqlserver.jdbc.SQLServerException:"Thisdriverisnotconfiguredforintegratedauthentication.".我用Google搜索了这个错误,发现通常是因为文件sqljdbc_auth.dll不在系统路径中;我已将此文

java - 使用 C3P0 的 JDBC 连接池

以下是我获取数据库连接的帮助类:我使用了here中描述的C3P0连接池.publicclassDBConnection{privatestaticDataSourcedataSource;privatestaticfinalStringDRIVER_NAME;privatestaticfinalStringURL;privatestaticfinalStringUNAME;privatestaticfinalStringPWD;static{finalResourceBundleconfig=ResourceBundle.getBundle("props.database");DRIV

Java JDBC 延迟加载的结果集

有没有办法让你通过运行JDBC查询获得的ResultSet被延迟加载?我希望按照我的要求而不是事先加载每一行。 最佳答案 简答:在调用executeQuery()之前使用Statement.setFetchSize(1)。长答案:这非常很大程度上取决于您使用的JDBC驱动程序。您可能想看看thispage,它描述了MySQL、Oracle、SQLServer和DB2的行为。主要收获:每个数据库(即每个JDBC驱动程序)都有自己的默认行为。一些驱动程序会尊重setFetchSize()而没有任何警告,而另一些驱动程序则需要一些“帮助”

java - 如何解析 JDBC url 以获取主机名、端口等?

如何解析JDBCURL(oracle或sqlserver)以获取主机名、端口和数据库名称。URL的格式不同。 最佳答案 从这样的开始:Stringurl="jdbc:derby://localhost:1527/netld;collation=TERRITORY_BASED:PRIMARY";StringcleanURI=url.substring(5);URIuri=URI.create(cleanURI);System.out.println(uri.getScheme());System.out.println(uri.get

java - 如何确定给定 JDBC 连接的数据库类型?

我需要处理返回三个数据库(Oracle、sybase、MS-Server)的存储过程/函数的结果集。过程/函数通常相同,但调用在Oracle中略有不同。statement.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);...statement.execute();ResultSetrs=(ResultSet)statement.getObject(1);JDBC没有提供通用的方法来处理这个问题,所以我需要在我的代码中区分不同类型的DB。我得到了连接,但不知道确定数据库是否是oracle的最佳方法。我可以使用驱动程序名称,但

java - JDBC VS Hibernate

Closed.Thisquestionisopinion-based。它当前不接受答案。想改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。6年前关闭。Improvethisquestion我们在Web应用程序中使用JDBC已有很长时间了。我们使用它的主要原因是因为我们对代码,sql拥有100%的控制权,并且可以手动进行修复。除此之外,我们在数据库内部使用了触发器,并且数据库由DB专家单独开发。但是,现在许多人建议使用Hibernate,因此我们也考虑过使用它。但是,我们发现了以下问题。Hibernate无法与“现有”数据库连接。它总是尝试创建自己的一个。

java - 如何在 JDBC 中从 resultSet 读取可能为空的 double 值?

我的数据库中有一个类型为double的列,我想使用JDBCResultSet从中读取值,但它可能为空。这样做的最佳方法是什么?我能想到三个选项,似乎都不是很好。选项1:不好,因为异常处理冗长且有异味doubled;try{d=rs.getDouble(1);//dosomething}catch(SQLExceptionex){if(rs.wasNull()){//dosomethingelse}else{throwex;}}选项2:错误,因为两次提取s=rs.getString(1);//orgetObject()if(s==null){//dosomethingelse}else{

java - 使用 JDBC 将空值插入整数列

我有一个sql列PROTOCOL,它可以为空并且对表有约束PROTOCOLIN(1,2,3)另外,由于它可以为空,我想将空值设置并获取到表中但我不能将setInt和getInt设为null。如何使用JDBC将空列设置为空setInt(4,null); 最佳答案 尝试使用。pst.setNull(4,java.sql.Types.INTEGER);//pstispreparedstatementinstance.InterfacePreparedStatement.setNullAPIMappingofjava.sql.Typesto

java - ClassNotFoundException com.mysql.jdbc.Driver

这个问题在这里已经有了答案:ConnectJavatoaMySQLdatabase(14个回答)关闭3年前.这个问题可能已经在这里问过很多次了。在对上述错误进行了一些谷歌搜索并进行了一些更新之后,我不明白为什么我仍然会收到该错误。我已经将我的驱动程序——mysql-connector-java-5.1.5-bin放在了类路径中:Java_Home\jre\lib\Java_Home\jre\lib\ext\Java_Home\lib我用来连接mysql数据库的代码是:try{Class.forName("com.mysql.jdbc.Driver");Connectioncon=Dri

Java 7 自动资源管理 JDBC(try-with-resources 语句)

如何将创建/接收连接、查询数据库和可能处理结果的常见JDBC习惯用法与Java7的自动资源管理、try-with-resources语句集成?(Tutorial)在Java7之前,通常的模式是这样的:Connectioncon=null;PreparedStatementprep=null;try{con=getConnection();prep=prep.prepareStatement("Update...");...con.commit();}catch(SQLExceptione){con.rollback();throwe;}finally{if(prep!=null)pre