尝试在Java中将单个行插入到数据库中。它只插入第一列,我不知道为什么。这里是代码:Java sql插入JOptionpane
@Override
public void actionPerformed(ActionEvent e) {
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
int x = 1;
int limit;
//promts the user to enter input
// String InputString = JOptionPane.showInputDialog(null, "Enter the Number of Countries: ",JOptionPane.QUESTION_MESSAGE);
// limit = Integer.parseInt(InputString);
Connection connection;
PreparedStatement ps;
try {
String dbName = "osdesign";
String dbUserName = "root";
String dbPassword = "";
//String u = jtfuser.getText();
//String p =jpfpass.getName();
String connectionString = "jdbc:mysql://localhost/" + dbName + "?user="
+ dbUserName + "&password=" + dbPassword
+ "&useUnicode=true&characterEncoding=UTF-8";
connection = DriverManager.getConnection(connectionString);
JOptionPane.showMessageDialog(null, "Connected!");
//int x = 1;
User List = new User();
//User[] List = new User [limit];
//String query;
//for (x = 0; x < limit; x++)
// {
///List[x] = new User();
//List[x].User_type = null;
List.input(x);
//String sql = "INSERT into `userlist` (`UsrCode`, `UsrName`, `UsrPass`, `UsrPassChgDays`, `UsrPassChgDate`, `Usrtype`) VALUES(?, ?, ?, ?, ?, ?);";
PreparedStatement preparedStmt = connection.prepareStatement("INSERT INTO `userlist`" +
"VALUES(?, ?, ?, ?, ?, ?);");
String ID = List.ID;
String name = List.name;
preparedStmt.setString(1, ID);
preparedStmt.setString(2, name);
preparedStmt.setString(3, List.password);
preparedStmt.setString(4, List.Usr_PassChgDays);
preparedStmt.setString(5, List.data_of_passChg);
preparedStmt.setString(6, List.User_type);
preparedStmt.executeUpdate();
//btnlogin.equals(result);
// panel.add(btnlogin);
// panel.add(jpfpass.getName(),btnlogin);
if (preparedStmt.equals(true)) {
JOptionPane.showMessageDialog(null, "Great sucess!!!");
//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} else {
JOptionPane.showMessageDialog(null, "FUCK!!!");
}
//JOptionPane.showMessageDialog(null, "User sucessfully created");
} catch (SQLException ex) {
Logger.getLogger(RychlikSystemversion0.class.getName()).log(Level.SEVERE, null, ex);
}
}
在互联网上看到无处不在,并尝试每一个伎俩,我老实说,困惑。有人能帮助我吗?
您必须确保Java中的数据类型与数据库中列的数据类型相匹配。例如'preparedStmt.setString(1,ID);'应该是'prepareStmt.setInt(1,ID);'! –
我改变了数据库值为varchar,它仍然给我的问题。该程序发誓,因此它不插入行。 –
我最初和@ Kh.Taheri有同样的想法。在数据库表中,您的ID列是** String数据类型还是Integer数据类型,现在它到底是什么? **列表**实际上是否包含任何内容?测试一下。把它放到控制台:'System.out.println(List.ID);的System.out.println(List.name); System.out.println(List.password);'等 – DevilsHnd