有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

只在MYSQL数据库中插入java空值

我有一个简单的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值”[username=null password=null和usertype=null]

####记住,我还有一个类要“设置”和“获取”数据。和一个JSP页面来处理来自“表单”的请求


共 (3) 个答案

  1. # 1 楼答案

    这里有两件事是可能的:

    变量的数据类型不匹配。(您试图通过sql查询插入的内容应与列的数据类型对应)

    或者变量“username、password、usertype”的名称找不到与数据库列的映射

  2. # 2 楼答案

    您似乎从未在代码中调用saveAcc方法。在执行(添加)此类代码时,请确保初始化参数,使其具有希望添加到数据库中的值

  3. # 3 楼答案

    我不能评论,所以我只能这样回答

    你在跑步前试过了吗

    int result=stmt.executeUpdate(sql);
    

    试一试

    System.out.printl(createacc.getusername());
    System.out.printl(createacc.getpassword());
    System.out.printl(createacc.getusertype());
    

    看看你在这里得到了什么。。。可能没有字符串值

    我很确定get方法返回空值。。或者可能是不同的数据类型。你可能也需要这样做。toString()