【发布时间】:2015-01-21 17:21:01
【问题描述】:
我正在尝试连接到 mySQL DB 并在我的 Java 应用程序中的 3 列 osName、version、notes 上执行插入操作。我下面的教程是http://alvinalexander.com/java/java-mysql-insert-example-preparedstatement。任何输入或 cmets 都有帮助。这是我的数据库信息 -
创建表oslog.entry (
osName VARCHAR(10) 非空,
version VARCHAR( 10 ) NOT NULL ,
notes VARCHAR( 20 ) NOT NULL ,
主键 (osName)
) 引擎 = InnoDB;
package com.tutorialspoint.struts2;
import java.sql.*;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport{
private String osName;
private String version;
private String notes;
public String execute() throws Exception {
return "success";
}
{
try
{
// created a datbase connection
String myDriver = "org.gjt.mm.mysql.Driver";
String myURL = "jdbc:mysql://localhost/HelloWorld";
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(myURL, "root", "");
//insert statement
String query = "INSERT INTO oslog.entry (osName,version,notes " +
"values osName, version, notes";
//mysql insert preparedstatement
PreparedStatement preparedStmt = conn.prepareStatement(query);
preparedStmt.setString(1, osName);
preparedStmt.setString(2, version);
preparedStmt.setString(3, notes);
//excute the preparedstatement
preparedStmt.execute();
conn.close();
}
catch(Exception e)
{
System.err.println("Got an Exception!");
System.err.println(e.getMessage());
}
}
public String getOsName() {
return osName;
}
public void setOsName(String osName) {
this.osName = osName;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getNotes() {
return notes;
}
public void setNotes(String notes) {
this.notes = notes;
}
public void validate()
{
if (osName == null || osName.trim().equals(""))
{
addFieldError("osName","The OS name is required");
}
if (version == null || version.trim().equals(""))
{
addFieldError("version","The OS version is required");
}
}
}
【问题讨论】:
-
我相信您在查询中的值周围需要圆括号;您还没有关闭第一个圆括号(围绕列名)。
-
不返回错误。无论发生什么,我都有我的 jsp 和行动要成功。
-
您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“values null, null, null”附近使用正确的语法