数据库录入词汇 一个英文 一个中文 英文叫word 中文叫mean,用Navicat for MySQL怎么会报错啊 急死我,想
import java.sql.*;
import java.io.*;
public class InsertWords {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO 自动生成方法存根
DBtools.connect();
Connection conn = DBtools.conn;
PreparedStatement pstmt = conn.prepareStatement("insert into words values(?,?)");
ClassLoader cl = InsertWords.class.getClassLoader();
BufferedReader br = new BufferedReader(new InputStreamReader(cl.getResourceAsStream("cet4.txt")));
String s,word,mean;
s = br.readLine();
while(s!=null){
int i = s.indexOf(" ");
if(i==-1) {
s = br.readLine();
continue;
}
word = s.substring(0,i );
mean = s.substring(i);
System.out.print(word);
System.out.println(mean);
pstmt.setString(1, word);
pstmt.setString(2,mean);
pstmt.executeUpdate();
s = br.readLine();
}
}
}
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'abandon' for key 'PRIMARY'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
at com.mysql.jdbc.Util.getInstance(Util.java:382)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3603)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3535)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1989)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318)
at InsertWords.main(InsertWords.java:42)
追问:;没有 我都能录入 但是库里显示的本该是中文的地方 却是问号
答案:加qq8293813
其他:该不会是命令里word指词汇,你输入word,和命令冲突吧。 数据库里主键冲突了,相同记录已经存在,例如abandon
上一个:mysql数据库创建带union 的 视图时报错
下一个:有关于XAMPP 的问题-MySQL 数据库 未激活