只有空值被插入到MYSQL数据库中

时间:2013-12-13 19:31:48

标签: java mysql jsp

我在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页面来处理来自“表单”的请求

3 个答案:

答案 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方法。当您执行(添加)此类代码时,请确保初始化参数,以便它具有您希望添加到数据库的值。