免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1843 | 回复: 9
打印 上一主题 下一主题

向MySql插入数据出问题了(帮看看),谢谢了! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-06 14:34 |只看该作者 |倒序浏览
public static void main(String[] args) throws Exception {
                Connection conn = null;
                Class.forName("org.gjt.mm.mysql.Driver").newInstance();
                    String url ="jdbc:mysql://localhost/leung?user=leung&password=leung";
                    conn= DriverManager.getConnection(url);
                Statement stmt= conn.createStatement();
                StringBuffer sb1 = new StringBuffer();
                StringBuffer sb2 = new StringBuffer();      
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("insert.txt"));
//如果数据库里没有 从1340000到1350000中的编号,那么自动补齐。
                for(int i = 1340000; i < 1350001; i++) {
                    sb1 = new StringBuffer();
                    sb2 = new StringBuffer();
                    sb1.append("select * from mobile_area where mobile_segment=");  
                    sb1.append(i);
                    //问题在这里
                    if(!stmt.execute(sb1.toString())) {//判断数据库中有没有相应的数据(问题是为什么执行到这里Mysql的系统进程会占用CPU百分百呢。而且下面的代码也得不到执行)。
                        sb2.append("insert into mobile_area values('");
                        sb2.append(i);
                        sb2.append("','9999");
                        sb2.append("','','','','','')");
                        stmt.executeUpdate(sb2.toString()); //执行插入数据库中没有的数据
                        //System.out.println(sb2.toString());
                        //bos.write(sb2.toString().getBytes());
                    }
                    sb1 = null;
                    sb2 = null;
                }
                bos.close();
                stmt.close();
                conn.close();
    }

[ 本帖最后由 Kete_Leung 于 2006-3-6 14:36 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-03-06 15:24 |只看该作者
问题解决了,谢谢各位了。

论坛徽章:
0
3 [报告]
发表于 2006-03-06 16:35 |只看该作者
能不能共享一下你是怎么解决的呢?

论坛徽章:
0
4 [报告]
发表于 2006-03-06 18:05 |只看该作者
stmt.execute(sb1.toString()) 有数据返回true,10000次无console输出的查询,cpu肯定晕了

论坛徽章:
0
5 [报告]
发表于 2006-03-26 12:28 |只看该作者
for (int i = 1340000; i < 1390001; i++) {

                                sb1.append("SELECT * FROM mobile_area where mobile_segment = ")
                                                .append("'").append(i).append("'");
                                // 问题在这里
                                rs = stmt.executeQuery(sb1.toString()); // 判断数据库中有没有相应的数据
                                rs.next();
                                int count = rs.getRow();
                                if (count == 0) {
                                        sb2.append("insert into mobile_area values('").append(i)
                                                        .append("','9999").append("','','','','','')");
                                        stmt.executeUpdate(sb2.toString()); // 执行插入数据库中没有的数据
                                        sb2.delete(0, sb2.length());
                                }
                                sb1.delete(0, sb1.length());
                        }


我换成这样写法了.................

[ 本帖最后由 Kete_Leung 于 2006-3-27 15:36 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2006-03-26 12:38 |只看该作者
原帖由 kakasi 于 2006-3-6 18:05 发表
stmt.execute(sb1.toString()) 有数据返回true,10000次无console输出的查询,cpu肯定晕了



不是几万次的事...是逻辑就不对...方法用错了...

论坛徽章:
0
7 [报告]
发表于 2006-03-26 15:36 |只看该作者
rs.getRow()返回的是当前游标所指的记录数吧?

论坛徽章:
0
8 [报告]
发表于 2006-03-26 21:07 |只看该作者
对啊....

论坛徽章:
0
9 [报告]
发表于 2006-03-27 10:01 |只看该作者
原帖由 Kete_Leung 于 2006-3-26 13:38 发表



不是几万次的事...是逻辑就不对...方法用错了...

                    if(!stmt.execute(sb1.toString())) {//判断数据库中有没有相应的数据(问题是为什么执行到这里Mysql的系统进程会占用CPU百分百呢。而且下面的代码也得不到执行)。


业务逻辑问题外人怎么给你解释?我只是就这句回答,understand?

论坛徽章:
0
10 [报告]
发表于 2006-03-27 15:28 |只看该作者
原帖由 kakasi 于 2006-3-27 10:01 发表
if(!stmt.execute(sb1.toString())) {//判断数据库中有没有相应的数据(问题是为什么执行到这里Mysql的系统进程会占用CPU百分百呢。而且下面的代码也得不到执行)
业务逻辑问题外人怎么给你解释?我只是就这句回答,understand?


我的问题中有"业务"这两个字么.....???

谢谢kakasi帮助我.......如果有失礼的地方请多包涵....我还小.....

[ 本帖最后由 Kete_Leung 于 2006-3-27 15:57 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP