2016-06-21 69 views
-1

这里是连接类在输入数据到mysql得到连接空错误

public class ConnectionManager { 

    Connection cn = null; 

    public Connection getConnection() throws ClassNotFoundException, SQLException { 
     String dbPath = "jdbc:mysql://localhost:3306/postjob"; 
     String username = "root"; 
     String password = "root"; 
     Class.forName("com.mysql.jdbc.Driver"); 

     cn = DriverManager.getConnection(dbPath, username, password); 
     return cn; 
    } 

    public void closeConnection() throws SQLException{ 
     cn.close(); 


    } 
} 

这里是我的服务类

public class UserdetailsServices { 

    public Connection connection; 
    public ResultSet resultset; 
// private Object resultSet; 

    public UserdetailsServices() { 
     try { 
      connection = new ConnectionManager().getConnection(); 
//here I am getting connection=null. 
     } catch (ClassNotFoundException ex) { 
      Logger.getLogger(UserdetailsServices.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (SQLException ex) { 
      Logger.getLogger(UserdetailsServices.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

    /** 
    * 
    * @param user 
    * @return 
    */ 
    public boolean registerUser(UserModal user) { 
     try { 
      java.sql.PreparedStatement psmt = connection.prepareStatement("insert into userdetails(role,name,gender,email,password,cpassword,contact) values(?,?,?,?,?,?,?)"); 
      psmt.setString(1, user.getRole()); 
      psmt.setString(2, user.getName()); 
      psmt.setString(3, user.getGender()); 
      psmt.setString(4, user.getEmail()); 
      psmt.setString(5, user.getPassword()); 
      psmt.setString(6, user.getCpassword()); 
      psmt.setString(6, user.getContact()); 
      int flag = psmt.executeUpdate(); 
      if (flag > 0) { 
       return true; 
      } else { 
       return false; 
      } 
     } catch (SQLException ex) { 

      return false; 
     } 
    } 
+3

能否请您提供有关您所遇到的问题的详细信息? (例外,堆栈跟踪等)? –

+1

从我记得'DriverManager.getConnection(dbPath,username,password);'不能返回'null'。你确定你没有得到异常吗?考虑使用[编辑]选项并在您的问题中提供更多信息(如错误/例外描述)。 – Pshemo

+0

请澄清您的具体问题或添加其他详细信息,以确切地突出显示您的需求。正如目前所写,很难确切地说出你在问什么。 – abarisone

回答

0

插入有7场,但preparaedstatement是设置只有6场。缺少设置联系人值。这就是为什么它给出空错误。

取而代之的是

psmt.setString(6, user.getCpassword()); 
psmt.setString(6, user.getContact()); 

使用本

psmt.setString(6, user.getCpassword()); 
psmt.setString(7, user.getContact());