Tag: jdbc

Mac上的CLASSPATH,以及Mac如何寻找mysql-connector-java-bin.jar

Mac OS X 10.6上是否有默认的类路径? 当我echo $CLASSPATH ,什么都不会出现。 在我的.profile ,我只看到PATH变量被设置。 我的问题是我的servlet似乎无法找到一个合适的驱动程序来连接到mysql服务器。 我使用Eclipse , Glassfish v3和MAMP用于MYSQL服务器。

Tomcat6 MySql JDBC数据源配置

我总是使用Spring的dependency injection来获取数据源对象并在我的DAO中使用它们,但现在,我必须编写一个没有它的应用程序。 有了Spring,我可以这样写: 但是如何在没有Spring或其他任何东西的情况下在我的DAO中使用数据源? 我只使用servlet和JSP。 性能是非常重要的因素。

警告:注册Oracle JDBC Diagnosability MBean时出错

使用Oracle 11g ojdbc6.jar时出现以下错误: WARNING: Error while registering Oracle JDBC Diagnosability MBean. java.lang.NoSuchMethodError: javax.management.StandardMBean.(Ljava/lang/Class;Z)V at oracle.jdbc.driver.OracleDiagnosabilityMBean.(OracleDiagnosabilityMBean.java:34) at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:342) at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:199) 在从许多论坛和博客调查后,我们还没有找到任何最终的解决方案。 因此,我们希望在此处分享解决方法。

SimpleJdbcCall忽略JdbcTemplate获取大小

我们通过Spring SimpleJdbcCall调用pl / sql存储过程,SimpleJdbcCall忽略了JdbcTemplate上的fetchsize设置。 尽管我们已将jdbctemplate fetchsize设置为200,但rowmapper结果集获取大小设置为10.请知道为什么会发生这种情况以及如何解决它? 在下面的代码片段中的rowmapper中打印了结果集的fetchsize – 一旦它是200而其他时间它是10,即使我在两个occassion上都使用相同的JdbcTemplate。 通过jdbctemplate直接执行会在行映射器中返回200的fetchsize jdbcTemplate = new JdbcTemplate(ds); jdbcTemplate.setResultsMapCaseInsensitive(true); jdbcTemplate.setFetchSize(200); List temp = jdbcTemplate.query(“select 1 from dual”, new ParameterizedRowMapper() { public Object mapRow(ResultSet resultSet, int i) throws SQLException { System.out.println(“Direct template : ” + resultSet.getFetchSize()); return new String(resultSet.getString(1)); } }); 通过SimpleJdbcCall执行此操作始终在rowmapper中返回10的fetchsize jdbcCall = new SimpleJdbcCall(jdbcTemplate).withSchemaName(schemaName) .withCatalogName(catalogName).withProcedureName(functionName); jdbcCall.returningResultSet((String) outItValues.next(), new […]

JDBC连接的语法prepareCall SQL

我正在为Connection#prepareCall阅读JavaDocs : sql – 可能包含一个或多个’?’的SQL语句 参数占位符。 通常,此语句是使用JDBC调用转义语法指定的。 根据这个流行的mkyong JDBC教程 ,我看到执行的方法如下: String insertStoreProc = “{call insertDBUSER(?,?,?,?)}”; callableStatement = dbConnection.prepareCall(insertStoreProc); 我想知道: 为什么字符串封装在大括号( { … } )中? 为什么call继续执行程序的名称? 最重要的是 : { call }是否是在所有JDBC驱动程序中执行所有存储过程的正确语法? 或者是{ call … }特定于特定类型的驱动程序? 这个过程调用语法有变化吗? 例如,是否存在可以将”{ execute }”传递到prepareCall方法的场景/驱动程序? 有没有关于这方面的文件? 更新: 根据CallableStatement ,JDBC提供了两种有效的语法,用于在所有驱动程序中以标准方式调用proc: {?= call [(,, …)]} 和: {call [(,, …)]} 但目前还不清楚何时使用(即:什么时候预先call ?= )。

Spring JDBC:如何创建表?

我使用Spring JdbcTemplate和DAO模式来访问数据库。 我没有手动创建数据库表,而是在寻找一种在DAO层生成表的方法。 我知道我可以使用JdbcTemplate来执行语句,我只是在寻找合适的位置来执行它。 有最好的做法吗?

使用Java在Postgresql中输入Date值

我正在尝试使用java和PostgreSQL编写数据库应用程序。 我有一些日期数据类型的行。 但是我无法使用以下代码向数据库添加任何条目: Date aDate = null; aDate.setYear(1990); aDate.setDate(01); aDate.setMonth(05); preparedStatement prep = connection.prepareStatement(“insert into exampletable values (?,?);”); prep.setDate(1, (java.sql.Date) aDate); prep.setDate(2, (java.sql.Date) aDate); 如何在java中使用查询在postgreSQL行中添加日期?

CallableStatement vs Statement

当调用没有参数的存储过程而没有输出时,使用CallableStatement比使用常规Statement或PreparedStatement有什么好处?

连续PreparedStatement良好做法

我正在连续执行一些SELECT ,我想知道我应该如何处理PreparedStatement 。 示例代码: //Connection conn is already declared PreparedStatement pstmt = null; ResultSet rset = null; try { String sql = “SELECT …”; pstmt = conn.prepareStatement(sql); pstmt.setString(1, someVar); rset = pstmt.executeQuery(); // Use ResultSet // A different query sql = “SELECT …”; pstmt = conn.prepareStatement(sql); pstmt.setString(1, someVar); rset = pstmt.executeQuery(); // Use ResultSet } […]

Jetty mysql连接池配置错误:javax.naming.NameNotFoundException; 剩余名称’env / jdbc / —(mysql 5.0 + jetty 7.0.1)

我的配置文件 project / WEB-INF / web.xml : ConnectionPool DataSource Reference jdbc/mysql javax.sql.DataSource Container 项目/ WEB-INF /docker-env.xml: jdbc/mysql com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/db user pwd 50 要调用的代码: ctx = new InitialContext(); ds = (DataSource) ctx.lookup(“java:comp/env/jdbc/mysql”); con=ds.getConnection(); 启动docker的脚本: java -DOPTIONS=plus -jar start.jar java -jar start.jar 无论哪种方式开始docker,我都有以下错误: javax.naming.NameNotFoundException; remaining name ‘env/jdbc/mysql’ at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:632) at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:663) at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:678) at org.eclipse.jetty.jndi.java.javaRootURLContext.lookup(javaRootURLContext.java:110) at javax.naming.InitialContext.lookup(Unknown […]