gpt4 book ai didi

java - Servlet 连接到数据库

转载 作者:行者123 更新时间:2023-11-29 05:21:47 25 4
gpt4 key购买 nike

我正在尝试从 servlet 连接到 jdbc 数据库。我有单独的类 dbconnect 用于连接和向数据库插入数据。

这是我的 dbconnect 类:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class dbconnect {
Connection conn;
Statement stm;

dbconnect(){
try{
Class.forName("org.apache.derby.jdbc.ClientDriver");
conn = DriverManager.getConnection
("jdbc:derby://localhost:1527/type","nika",
"mypass");
stm = conn.createStatement();
System.out.println("success");
String sql = "INSERT INTO USERS " + "VALUES (\"tsogiaidze@yahoo.com\", \"nika\", \"nika\", \"kaci\")";
stm.executeUpdate(sql);
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
}
}

在 servlet 中,我创建了新的 dbconnect 对象,它必须将数据插入数据库,但它没有发生。

谁能告诉我为什么它不起作用?我想我犯了根本错误。

谢谢。

有关更多详细信息,我有 jsp 文件,该文件将 html 表单数据发送到此 servlet,然后我尝试使用 dbconnect 类将这些数据写入数据库。

我已经像这样更改了dbconnect类,现在我使用preparedstatement写文件但仍然不起作用。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;

public class dbconnect {
Connection conn;
Statement stm;

dbconnect(){
try{
Class.forName("org.apache.derby.jdbc.ClientDriver");
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/type","nika","nika");
stm = conn.createStatement();
System.out.println("success");
String sql = "INSERT INTO NIKA.USERS (mail, pass, gender, saxeli) VALUES (?, ?, ?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, "tsogiaidze");
statement.setString(2, "nika");
statement.setString(2, "nika");
statement.setString(2, "kaci");
int rowsInserted = statement.executeUpdate();
if (rowsInserted > 0) {
System.out.println("A new user was inserted successfully!");
}
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
}

最佳答案

使用单引号将您的文本括起来。

String sql = "INSERT INTO USERS VALUES ("
+ "'tsogiaidze@yahoo.com', 'nika', 'nika', 'kaci')";

或者更好的是,使用 PreparedStatement:

    String sql = "INSERT INTO USERS VALUES (?, ?, ?, ?)");
PreparedStatement stm = conn.prepareStatement(sql);
System.out.println("success");
stm.setString(1, "tsogiaidze@yahoo.com");
stm.setString(2, "nika");
stm.setString(3, "nika");
stm.setString(4, "kaci");
stm.executeUpdate();

关于java - Servlet 连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24372359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com