qq_27368885 2015-04-27 09:19 采纳率: 25%
浏览 2721
已采纳

jdbc查询时间优化,判断主键是否重复的方法体简化怎么写

菜鸟写了个对主键是否重复进行一个判断的方法。
mysql现在存有45万行数据,,就调用这方法判断就花了三四秒,但是直接mysql里直接查询cid主键列只需要0.00几秒不知道这里为什么这么慢,求解
后面大约还有一百多万行数据要录入。查询速度不久几何翻倍咯。求代码优化给点建议或者重写,,

 public  static boolean getcid(int cid){
        Conn conn=null;    //Conn是封装好了对mysql数据库进行数据增删查改的方法的封装类
        boolean gg=true;  //存取主键是否重复的变量。默认true
        PreparedStatement st = null;
        String sqll="SELECT cid FROM b";
        ResultSet rs;
        try {
            conn=new Conn();
                st=conn.prepareStatement(sqll);
                rs=st.executeQuery();
                while(rs.next())          //遍历结果集,,如果查询到cid已存在,方法返回false
                    if(rs.getInt("cid")==cid)
                    {
                    gg=false;
                    break;
                    }

        } catch (SQLException e) {

            e.printStackTrace();

        } catch (Exception e) {

            e.printStackTrace();
        } 
        return gg;
    }
  • 写回答

3条回答 默认 最新

  • danielinbiti 2015-04-27 09:23
    关注
     为什么String sqll="SELECT count(cid) FROM b where cid"=cid;这里拼上where呢
     客户端取全部结果集影响速度因素
     1、网络因素
     2、java获取后创建对象
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?