Java 在mysql表中插入数据时出错
我想将用户在JFrame中输入的数据插入我的sql数据库Java 在mysql表中插入数据时出错,java,mysql,Java,Mysql,我想将用户在JFrame中输入的数据插入我的sql数据库tf1和tf2分别是用户名和电子邮件id的文本字段。当我执行此语句时,会出现一个异常,表示 String pass=new String(pf1.getPassword()); try { Connection myConn=DriverManager.getConnection("jdbc:mysql://localhost:3306/javaproject","root","noor1032"); PreparedSt
tf1
和tf2
分别是用户名和电子邮件id的文本字段。当我执行此语句时,会出现一个异常,表示
String pass=new String(pf1.getPassword());
try {
Connection myConn=DriverManager.getConnection("jdbc:mysql://localhost:3306/javaproject","root","noor1032");
PreparedStatement myStat=myConn.prepareStatement("insert into user_info (username,password,email_id)"+"values(?,?,?)");
myStat.setString(1, tf1.getText());
myStat.setString(2, pass);
myStat.setString(3, tf2.getText());
myStat.execute();
myConn.close();
}
catch(Exception f)
{
System.err.println("Got an exception!");
System.err.println(f.getMessage());
}
id
是我数据库中的一列,表示1、2、3等数字。请帮助我。您必须在mysql中将ID设置为自动增量。它将起作用虽然您没有共享表的结构,但我猜ID
是一个主键
,但是您错过了自动增量
配置。在数据库中,运行以下语句
Field 'id' does not have a default value
你能分享一下你的表格结构,然后先试试这个吗。Connection myConn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/javaproject“根”、“根”、“noor1032”);PreparedStatement myStat=myConn.prepareStatement(“插入用户信息(用户名、密码、电子邮件id)”+“值(?,?)”;myStat.setString(1,“abc”);myStat.setString(2,“def”);myStat.setString(3,“ghi”);execute();myConn.close();
id
是一个作为主键的auto\u incremented
字段吗?显然,您的user\u info
表有一个id
列,没有默认值,因此您不能在不指定id
应该有什么值的情况下向表中添加行。如何自动递增id??“如何自动递增id??”自动增量?正如Giorgos Myrianthous所说,您可以使用mysql命令来实现。
ALTER TABLE user_info MODIFY COLUMN id INT auto_increment