我的 java 项目中有 2 个文件: MysqlConnect 和 Main 。 我想从主类运行查询。可以吗?
这是 MysqlConnect 文件:
public class MysqlConnect {
public Connection conn = null;
public String url = "jdbc:mysql://localhost:3306/";
public String dbName = "jdbctutorial";
public String driver = "com.mysql.jdbc.Driver";
public String userName = "birthday";
public String password = "123456";
public Statement stmt;
public String query = "";
public int rs;
public void crearedatabase() {
try {
Class.forName(driver).newInstance();
conn = DriverManager
.getConnection(url + dbName, userName, password);
// System.out.println("Connected to the database");
Statement stmt = conn.createStatement();
} catch (Exception e) {
System.out.println("Baza de date nu a fost creata");
}
}
public void executeSql() {
try {
rs = stmt.executeUpdate(query);
} catch (Exception e) {
System.out.println("Mysql Error");
}
}
}
这是主文件:
public class Main {
public static void main(String[] args) throws SQLException
{
MysqlConnect sqlconnect = new MysqlConnect();
sqlconnect.crearedatabase();
sqlconnect.query="INSERT INTO `jdbctutorial`.`persons` (`id`, `nume`, `prenume`, `data`) VALUES (NULL, 'xxxx', 'xxxx', '1990-12-12');";
sqlconnect.executeSql();
}
}
错误(异常)发生在 MysqConnection 的 try/catch 处
rs = stmt.executeUpdate(query);
最佳答案
您将语句对象分配给名为 stmt
的局部变量,而不是同名的对象字段。
替换这个
Statement stmt = conn.createStatement();
这样:
this.stmt = conn.createStatement();
this
在这里不是必需的,但在那里放置它是一个很好的做法。
关于java - 如何从主文件向数据库插入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20615009/