Tag: jdbc

ClassNotFoundException:com.mysql.jdbc.Driver。 用于Web应用程序的JDBC MySQL驱动程序

所以我有一个MySQL JDBC驱动程序的.jar文件,它位于我的库源文件夹下,我有以下代码: public static Connection getConnection() throws SQLException { Connection conn = null; try{ Class.forName(“com.mysql.jdbc.Driver”).newInstance(); String url = “jdbc:mysql://50.56.81.42:3306/GUEST_BOOK”; String user = “user”; String password = “pass”; conn = (Connection) DriverManager.getConnection(url, user, password); }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(InstantiationException e){ e.printStackTrace(); }catch(IllegalAccessException e){ e.printStackTrace(); } return conn; } 但是,它总是给我这个错误: INFO: Server startup in 645 ms java.lang.ClassNotFoundException: com.mysql.jdbc.Driver […]

不再需要Class.forName(JDBC_DRIVER)?

我已经在这里阅读了自从java 6以来你不再需要使用以下命令注册JDBC Driver: Class.forName(JDBC_DRIVER); 因为DriverManager使用位于系统属性“jdbc.drivers”中的路径来检索正确的驱动程序。 但是当我做以下时: System.out.print(System.getProperty(“jdbc.drivers”)); null被打印。 你有什么线索为什么我的应用程序正常工作? ;)

尝试执行PreparedStatement时重复MySQLSyntaxErrorException

我尝试使用JDBC使用以下方法使用PreparedStatement插入userId(int)和userName(String): public boolean saveUser(int userId, String userName){ boolean saveStatus = false; try { connection.setAutoCommit(true); String sql = “insert into testtable values(?,?)”; PreparedStatement statement = connection.prepareStatement(sql); statement.setInt(1, userId); statement.setString(2, userName); saveStatus = statement.execute(sql); } catch (SQLException e) { e.printStackTrace(); }finally{ Connector.closeConnections(); } return saveStatus; } 我得到以下stacktrace: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check […]

在PostgreSQL JDBC中设置模式似乎不起作用

我用表“user”创建了模式“customer1”,我正在尝试使用Connection.setSchema()从JDBC连接它: String url = “jdbc:postgresql://localhost/project”; Properties props = new Properties(); props.setProperty(“user”, “postgres”); props.setProperty(“password”, “postgres”); try (Connection conn = DriverManager.getConnection(url, props)) { conn.setSchema(“customer1”); try (Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(“SHOW search_path”)) { rs.next(); System.out.println(“search_path: ” + rs.getString(1)); } try (Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(“SELECT name FROM user LIMIT 1”)) { if […]

如何用java连接远程mysql数据库?

我正在尝试使用Eclipse IDE创建一个JSF应用程序。 我使用远程mySQL服务器作为我的数据库。 如何连接到此远程数据库以创建表并访问它们?

间隔运行Java线程

我有一个需要每10秒执行一次的线程。 该线程包含对另一台服务器上的数据库的多次调用(12-15)。 此外,它还可以访问大约3个文件。 因此,将会有相当多的IO和网络开销。 执行上述操作的最佳策略是什么? 一种方法是使用sleep方法和while循环,但这将是一个糟糕的设计。 在这种情况下,类似于Timer的类会有用吗? 另外,最好是创建几个线程(一个用于IO,一个用于JDBC),而不是让它们在一个线程中运行?

用户’root’@’localhost’拒绝访问

我试图从数据库中获取记录。 但我面临这个访问被拒绝的问题。 我尝试了Stack Overflow上提到的其他解决方案,比如向用户授予权限..但没有一个工作。 访问数据库的代码: public void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{ response.setContentType(“text/html”); PrintWriter out = response.getWriter(); out.println(“”); out.println(“Servlet JDBC”); out.println(“”); out.println(“Servlet JDBC”); out.println(“”); // connecting to database Connection con = null; Statement stmt = null; ResultSet rs = null; try { Class.forName(“com.mysql.jdbc.Driver”); con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/employees”,”root”,”root”); stmt = con.createStatement(); rs = stmt.executeQuery(“SELECT * FROM […]

是否可以在Prepared Statements或QueryRunner.update()中提供表名或列名的参数?

删除? 在哪里? =? 是否可以为所有这些参数提供参数? 似乎如果我不提供字符串,我会收到错误。 例如,它似乎只有我有类似的东西: 从非营利组织WHERE nonpid =? 它只需要这样的参数。

无法检索使用存储过程选择的值

我正在努力寻找记录。 这让我选择使用存储过程在我的数据库中查找现有记录。 当我试图搜索现有数据时,它没有给我我想要的价值。 当我点击搜索按钮时,它不会将值打印到文本字段。 码 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { String searchSection = Section_SearchSection_Textfield.getText(); String searchSection_Name = Section_SectionName_TextField.getText(); int sectionID = 0; if (searchSection.isEmpty()) { JOptionPane.showMessageDialog(null, “Please fill up this fields”); } else try (Connection myConn = DBUtil.connect()) { try (CallableStatement myFirstCs = myConn.prepareCall(“{call getSECTION_NAME(?,?)}”)) { myFirstCs.setInt(1, sectionID);// I set the ID for Primary Key […]

错误:客户端不支持服务器请求的身份validation协议; 考虑升级MySQL客户端

执行JDBC程序时,连接到数据库时出现以下错误: Exception in thread “main” com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:921) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:885) at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3421) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1247) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2775) at com.mysql.jdbc.Connection.(Connection.java:1555) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:270) at main.java.MyFirstJdbcProgram.readDataBase(MyFirstJdbcProgram.java:23) at main.java.Main.main(Main.java:6) 当我研究这个时,我知道下面的错误是因为我需要向用户授予权限,所以请遵循 mysql -u root -p 然后输入密码 然后我跑了 GRANT ALL PRIVILEGES ON *.* […]