Tag: jdbc

MySQL和JDBC与rewriteBatchedStatements = true

我一直在阅读, 在这里 , 这里和这里关于使用rewriteBatchedStatements=true的优势 如果我理解正确,那么在rewriteBatchedStatements=true的情况下,JDBC将尽可能多的查询包装到单个networking数据包中,从而降低networking开销。 我对吗? 然后引起我的注意,在MySQL服务器中为max_allowed_packet定义的值可能会导致查询问题(查询不在服务器上执行)。 所以我的第二个问题是,JDBC是否知道分配给max_allowed_packet的值,并因此使数据包小于max_allowed_packet的定义值,或者这是开发人员必须考虑的事情? 如果我了解错误,请让我知道。

“Class.forName(”MY_JDBC_DRIVER“)”的目的是什么?

我知道类加载对于在运行时加载它的类名是很有用的。 但是,在我们的项目中使用JDBC时,我们知道我们要使用哪个驱动程序,而且大多数驱动程序pipe理器string是硬编码的 我的问题是:为什么我们在这里使用Class.forName("JDBC_DRIVER")加载驱动程序? 为什么我们不能在课程path中添加驱动程序? 因为我们知道我们将使用哪个驱动程序jar。 我相信Class.forName(JDBC_DRIVER)将加载驱动程序到DriverManager 。 这是唯一的原因吗? 编辑1: DriverManager API文档指出 作为其(DriverManager)初始化的一部分,DriverManager类将尝试加载“jdbc.drivers”系统属性中引用的驱动程序类。 应用程序不再需要使用Class.forName()来显式加载JDBC驱动程序。 当前使用Class.forName()加载JDBC驱动程序的程序将继续工作而不进行修改。 那么当我使用的不是oracle驱动程序; 我需要更改系统属性中的驱动程序名称string吗?

如何使用JDBC连接到SQL Server 2008数据库?

我在本地PC上安装了MSSQL 2008,我的Java应用程序需要连接到MSSQL数据库。 我是一个MSSQL的新手,我想获得一些帮助,为我的Java应用程序创build用户login,并通过JDBC获得连接。 到目前为止,我试图为我的应用程序创build一个用户login,并使用以下连接string,但我根本不工作。 任何帮助和暗示将不胜感激。 jdbc:jtds:sqlserver://127.0.0.1:1433/dotcms username="shuxer" password="itarator"

如何从最后插入的行中获取值?

有没有办法从最后插入的行获取值? 我在插入一行PK的地方会自动增加,我想得到这个PK。 只有PK保证在表中是唯一的。 我正在使用JDBC和PostgreSQL的Java。

我使用JDBC连接池吗?

我想确定我是否实际使用JDBC连接池。 经过一番研究,实现起来似乎太简单了。 实际上比常规连接更容易,所以我想validation一下。 这是我的连接类: public class DatabaseConnection { Connection conn = null; public Connection getConnection() { BasicDataSource bds = new BasicDataSource(); bds.setDriverClassName("com.mysql.jdbc.Driver"); bds.setUrl("jdbc:mysql://localhost:3306/data"); bds.setUsername("USERNAME"); bds.setPassword("PASSWORD"); try{ System.out.println("Attempting Database Connection"); conn = bds.getConnection(); System.out.println("Connected Successfully"); }catch(SQLException e){ System.out.println("Caught SQL Exception: " + e); } return conn; } public void closeConnection() throws SQLException { conn.close(); } } […]

Oracle JDBC ojdbc6 Jar作为Maven的依赖

我似乎无法让Maven捆绑ojdbc6.jar文件到我的项目的战争文件。 我有它在POM文件中指定直接为Hibernate工具的依赖项。 但是它不会与项目的war文件捆绑在一起,因此我的项目将不能在Tomcat上运行。 我已经尝试了所有可以在networking上find的解决scheme,包括针对此问题指定的解决scheme: 在Maven仓库中查找Oracle JDBC驱动程序 最近,我做了以下几点: 将jar文件下载到我的机器上 运行以下命令将jar安装到我的本地存储库中: mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true (我也尝试过这个命令的各种变种。) 最后,我把依赖项放到我的pom文件中: <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> </dependency> 我运行一个干净的生成,但它失败: mvn -U clean package [INFO] Scanning for projects… [INFO] [INFO] ———————————————————————— [INFO] Building jazztwo 0.0.1 [INFO] ———————————————————————— Downloading: http://repo1.maven.org/maven2/com/oracle/ojdbc6/11.2.0.3/ojdbc6-11.2.0.3.jar [INFO] ———————————————————————— [INFO] BUILD FAILURE [INFO] ———————————————————————— [INFO] Total time: 0.700s […]

当尝试执行PreparedStatement时,MySQLSyntaxErrorException接近“?”

我正在尝试使用Java中的PreparedStatement执行查询。 当我尝试执行我的查询(语法错误)时,我得到错误号1064。 我已经在MySQL查询浏览器中使用替代值进行了testing,工作正常。 我的代码有什么问题? 以下是相关的代码: String query = "select MemberID, MemberName from members where MemberID = ? or MemberName = ?"; Connection conn = DriverManager.getConnection(DATABASE_URL, USERNAME, PASSWORD); PreparedStatement s = conn.prepareStatement(query); s.setInt(1, 2); s.setString(2, "zen"); ResultSet rs = s.executeQuery(query); 这是我得到的exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法错误; 检查与您的MySQL服务器版本相对应的手册,在正确的语法附近使用'? 或者MemberName =? 在第1行

找不到合适的驱动程序'jdbc:mysql:// localhost:3306 / mysql

使用Java,当试图连接到一个mysql数据库时,我得到这个错误: java.sql.SQLException: No suitable driver found for 'jdbc:mysql://localhost:3306/mysql at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at MyTest1.main(MyTest1.java:28) 我正在使用mysql-connector-java-5.1.18-bin.jar驱动程序。 这是在我的build设path。 我已经重新启动MySQL。 我也从根目录没有密码的命令行login,它连接正常。 我目前不在netstat中看到一个端口3306。 以前我得到了一个不同的错误(我没有改变代码)。 错误是“jdbc mysql拒绝用户root'@'localhost password NO” try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { String url = "'jdbc:mysql://localhost:3306/mysql"; Connection con = DriverManager.getConnection(url, "root", ""); } catch […]

JDBC Class.forName和DriverManager.registerDriver

与forName方法和registerDriver加载和注册JDBC驱动程序有什么不同?

我可以使用Java EE webapp中的Windows身份validation连接到SQL Server吗?

我目前正在研究如何使用Windows身份validation而不是SQL Server身份validation从我的Java EE Web应用程序连接到SQL Server数据库。 我正在使用Tomcat 6.0运行这个应用程序,并使用Microsoft JDBC驱动程序。 我的连接属性文件如下所示: dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver dbUser = user dbPass = password dbServer = localhost:1433;databaseName=testDb dbUrl = jdbc:sqlserver://localhost:1433 使用SQL Server身份validation时,以这种方式连接到SQL Server数据库时没有问题。 有什么办法可以检索用户的Windows身份validation的凭据,并使用SQL Server的身份validation? 更新 :我知道在ASP.net有一种方法来设置Windows身份validation访问的Web应用程序,这正是我所期待的,除了我想传递到SQL Server访问数据库的标记。