Tag: jdbc

Hibernate无法打开连接

我在hibernate无法打开连接时遇到问题。 我有一个DAO: public class MyDao extends HibernateDaoSupport { DataSource dataSource; public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } public MyPOJO findByQuery(int hour) { Query query = this.getSession().createSQLQuery( “SELECT * FROM MyPOJO WHERE someDate >= DATE_SUB(now(), INTERVAL ? HOUR)”) .addEntity(MyPOJO.class); List results = query.setInteger(0, hours).list(); return results; } } 然后在测试用例中调用findByQuery(1)8次,它可以工作,但如果我第9次调用它失败了: org.hibernate.exception.GenericJDBCException: Cannot open connection at […]

使用Quartz获取数据库连接

我有一个要求,我需要在我的调度过程中插入数据并检索相同的内容。尽管我可以创建自己的连接类并且可以完成工作,但我想知道是否有办法使用Quartz API获取数据库连接。 由于Quartz有效地进行数据库连接和处理,所以我的目的是使用一个定义良好的结构而不是创建自己的结构。 我在Quartz中看到了以下代码 conn = DBConnectionManager.getInstance().getConnection( getDataSource()); 但我不确定这种方法有多好,以获得连接。或者有任何好的示例/资源来创建一个有效的数据库连接类。 Quartz属性文件 org.quartz.scheduler.instanceName=QuartzScheduler org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.threadPool.threadCount=7 org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate org.quartz.jobStore.tablePrefix = QRTZ_ org.quartz.jobStore.dataSource = myDS org.quartz.dataSource.myDS.driver=com.mysql.jdbc.Driver org.quartz.dataSource.myDS.URL=jdbc:mysql://localhost:3306/quartz org.quartz.dataSource.myDS.user=root org.quartz.dataSource.myDS.password=root org.quartz.dataSource.myDS.maxConnections=5

使用JDBC获取和设置数据库服务器连接变量

当我打开到MySQL数据库的JDBC连接时,我想设置一些数据库服务器变量,所以例如每次建立连接时我想用这个值设置变量sqlmode: SET sql_mode=’STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT’; 用于启用管道串连接… 我必须在查询语句中发送此参数,还是可以直接在JDBC连接上设置此参数? JDBC连接上是否有允许设置此变量的属性? 使用JDBC连接设置或检索数据库服务器变量的最佳方法是什么?

如何使用连接字符串和jdbc url

我正在尝试使用以下url将oracle与jdbc连接起来 String url = “jdbc:oracle:thin:@:1522:dev;includeSynonyms=true”; 但它抛出以下错误。 java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: :1522:dev;includeSynonyms=true 如果我从url中删除属性(includeSynonyms = true),我可以连接。 我正在使用ojdbc14.jar 请帮我

用Java Express连接Java

我使用Java和MySQL设计了一个数据库管理系统。 我使用WAMP作为服务器。 现在一切都很完美……直到现在…… 现在,我必须使用SQL Express而不是WAMP 。 我对SQL Express一无所知。 我在默认情况下安装了它。 但是,现在我可以使用以下选项连接到Microsoft SQL Server Management Studio中的数据库,( LORDXAX-PC是我的计算机名称) 但我需要将数据库与我的Java程序连接起来。 (之前我使用过JDBC成功,使用WAMP) 需要帮助才能成功吗? 我试过找到某些东西,但它会给出错误。 有人可以给我提供干净的说明.. 任何帮助表示赞赏。 谢谢! 编辑(2) 这是一个完整的代码,展示了这个问题。 package ExpressTest; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class MAIN { public static void main(String[] args) { new MAIN().start(); } private void start() { System.out.println(“START”); String query = “SELECT * […]

PreparedStatements或callableStatements

我试图了解PreparedStatements和CallableStatements之间的区别,但我无法理解。 所以任何人都可以将以下sql Query转换为CallableStatement 。 我知道如何将Statement转换为PreparedStatement但遇到CallableStatements问题。 作为java.sql.Statement SELECT * FROM Customer WHERE customerId = ‘C001’ 作为java.sql.PreparedStatement SELECT * FROM Customer WHERE customerId = ? //set customerId using preparedStatement.setString(1,”C001″) 如何在CallableStatements编写相同的查询 提前致谢!

BoneCP和Derby – 如何正确关闭

我有: BoneCP CONNECTION_POOL = …; CONNECTION_POOL.getConfig().setJdbcUrl(“jdbc:derby:database…;shutdown=true”); Connection connection = CONNECTION_POOL.getConnection(); connection.close(); CONNECTION_POOL.shutdown(); 但是,这会导致以下exception: 3274 [com.google.common.base.internal.Finalizer] ERROR com.jolbox.bonecp.ConnectionPartition – Error while closing off internal db connection java.sql.SQLException: Cannot close a connection while a transaction is still active. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.checkForTransactionInProgress(Unknown Source) at […]

这个简单的字符串转义是否可以阻止任何SQL注入?

我在一家公司工作,负责数据库模块的人严格禁止使用预准备语句。 我担心他的实施不安全。 以下是我们当前用于进行SQL查询的代码(带有JDBC / MySQL 5.5的Java 8应用程序): String value = “Raw user input over HTTP-Form”; String sql = “SELECT * FROM db1.articles WHERE title like ‘” + replaceSingleQuotes(value) + “‘”; executeSQL(sql); public static String replaceSingleQuotes(String value) { value = value.replaceAll(“\\\\”, “\\\\\\\\”); return value.replaceAll(“‘”, “\\\\'”); } 我无法进行任何注射,但他的解决方案对我来说似乎非常可疑。 任何人都可以指出如何逃避这种逃避吗? 如果我无法提出任何问题,我将不会更换他的代码,我们的应用程序(银行业务)中有数千名客户提供非常敏感的信息。 编辑:不幸的是我无法显示executeSQL(),因为有一个庞大的类层次结构混乱,一切都是分散的。 但它归结为这样的事情: String query = … // […]

如何用JSON表示数据库中的图像

我需要根据数据库中的blob创建JSON。 要获取blob图像,我使用下面的代码并在json数组中显示之后: Statement s = connection.createStatement(); ResultSet r = s.executeQuery(“select image from images”); while (r.next()) { JSONObject obj = new JSONObject(); obj.put(“img”, r.getBlob(“image”)); } 我希望根据图像blob为每个图像返回一个JSON对象。 我怎样才能实现它?

有关addBatch(String)的注意事项

在PreparedStatement的addBatch()方法addBatch(String) , Statement类中还有一个addBatch(String)方法。 我想处理一系列不同的sql语句,我正在寻找一些关于addBatch(String)意味着性能的澄清。 使用此方法是安全(和快速)还是更好地在Java中对类似的sql语句进行分组并在组中执行它们?