A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lixing123456 中级黑马   /  2014-12-18 08:57  /  697 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Test {

        public static void main(String[] args) {
                try {
                        Class.forName("com.mysql.jdbc.Driver");
                        String url="jdbc:MySQL://127.0.0.1:3306/test";
                        String sql="insert into student values(?,?,?)";
                        Connection con=DriverManager.getConnection(url, "root", "root");
                        PreparedStatement ps=con.prepareStatement(sql);
                        ps.setInt(1, 103);
                        ps.setString(2, "b");
                        ps.setInt(3, 15);
                        int i=ps.executeUpdate();
                        System.out.println(i);
                } catch (ClassNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
        }
错误信息:
java.sql.SQLException: Duplicate entry '103' for key 1
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2901)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1584)
        at com.mysql.jdbc.Connection.serverExecute(Connection.java:4742)
        at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1251)
        at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:993)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1930)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1855)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1693)
        at a1.Test.main(Test.java:20)

1 个回复

正序浏览
估计是你的数据库student表的第一个字段是id,然后你当初创建时是primary key  auto_increment,这样的话第一个字段id MySQL是自动生成的。现在你又往id插值,就报错了。Duplicate entry '103' for key 1意思是第一个字段多值了。你把这一句删了估计就好了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马