我在jsp中有简单的程序。我尝试使用java类与mysql数据库建立连接并且连接良好。问题是当我试图将数据插入数据库时,只有“NULL”值被包含在内。
package DataAccessObject;
import java.sql.*;
/**
*
* @author user
*/
public class DBConnection {
private static Connection conn=null;
private static String url = "jdbc:mysql://localhost:3306/selftest";
//private static String dbName = "selftest";
private static String driver = "com.mysql.jdbc.Driver";
private static String userName = "root";
private static String password = "123456";
public static Connection getConnection(){
try{
if(conn != null){//
return conn;//if the object already exist use it
}
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,userName,password);
return conn;
}catch(Exception ex){
System.out.println("meche connect hone");
return null;
}
}
}
和其他类别
/////////////////////////////////////////////// ///////
public class selftestDB {
public static void main (String args[])
{
selftestDB sd=new selftestDB();
}
private Statement stmt = null;
private Connection conn = null;
public selftestDB()
{
try {
conn = DBConnection.getConnection();//conection lemefter since its possible to create frm any where
stmt = conn.createStatement();
System.out.println("hay connection create honual.....enkuan des yaleh");
} catch (Exception ex) {
System.out.println("bra izi newu chigiru");
}
}
public boolean saveacc(accountDO createacc){
{
if(stmt==null)
return false;
}
try
{
System.out.println("datah save honual");
String sql="insert into account(username,password,usertype) values('"
+ createacc.getusername() + "','"
+ createacc.getpassword() + "','"
+ createacc.getusertype() + "')";
/*String sql="insert into account values(?,?,?)";
PreparedStatement ps=conn.prepareStatement(sql);
accountDO acd=new accountDO();
String username=acd.getusername();
String password=acd.getpassword();
String usertype=acd.getusertype();
ps.setString(1, username);
ps.setString(2, password);
ps.setString(3, usertype);
ps.executeUpdate();
ps.close();
* int result=ps.executeUpdate();
*/
int result=stmt.executeUpdate(sql);
if(result>0)
{
return true;
}
else
{
return false;
}
}
catch(Exception e)
{
System.out.println(e);
return false;
}
}
}
请帮我解释为什么插入“null value”[username = null password = null and usertype = null]
###记住,我有另一个类来“设置”和“获取”数据。和一个JSP页面来处理来自“表单”的请求
答案 0 :(得分:1)
这里有几件事可能:
变量的数据类型不匹配。 (您尝试通过SQL查询插入的内容应该与列的数据类型相对应)
或变量名称“username,password,usertype”无法找到数据库列的映射。
答案 1 :(得分:0)
我不能评论所以我得这样回答,
您在运行
之前是否尝试过int result=stmt.executeUpdate(sql);
尝试
System.out.printl(createacc.getusername());
System.out.printl(createacc.getpassword());
System.out.printl(createacc.getusertype());
看看你在这里得到的......也许没有字符串值
我很确定你的get方法返回NULLS ..或者可能是不同的数据类型。您可能还需要.toString()
答案 2 :(得分:0)
您似乎永远不会在代码中调用saveAcc方法。当您执行(添加)此类代码时,请确保初始化参数,以便它具有您希望添加到数据库的值。