JAVA问题,谁能告诉我这段代码是设置什么内容的

[复制链接]
查看11 | 回复2 | 2011-5-19 12:49:54 | 显示全部楼层 |阅读模式
packagemobile;

importjava.io.IOException;
importjava.sql.ResultSet;
importjava.sql.SQLException;

importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

importdb.DataBase;

publicclassSendMsgextendsHttpServlet{

        privatestaticfinallongserialVersionUID=1L;

        publicSendMsg(){
                super();
        }

        publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
                        throwsServletException,IOException{
                this.doPost(request,response);
        }

        publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
                        throwsServletException,IOException{
                try{
                        DataBasedb=newDataBase();
                        ResultSetsqlrs=null;
                        ResultSetsqlrst=null;
                        ResultSetsqlrst1=null;
                        StringstrSQL=null;
                        Stringmsg=null;//发送短信内容
                        strSQL=\"SELECT*FROMmessage\";
                        StringstrSQL1=\"SELECT*FROMmsgcon\";
                        intcount=0;//发送人员的个数
                        inti=0;//初始化手机号数组时的位置变量

                        sqlrs=db.executeQuery(strSQL);
                        sqlrs.last();
                        count=sqlrs.getRow();
                        sqlrs.close();
                        System.out.println(count);
                        String[]list1=newString[count];
                        sqlrst=db.executeQuery(strSQL);
                        while(sqlrst.next()){
                                //msgbeandata=newmsgbean();
                                //data.setId(sqlrst.getInt(\"id\"));
                                //data.setName(sqlrst.getString(\"name\"));
                                //data.setPhonenum(sqlrst.getString(\"phoneNum\"));
                                //list.add(data);
                                list1=sqlrst.getString(\"phoneNum\");
                                i;
                        }
                        sqlrst.close();
                       
                        sqlrst1=db.executeQuery(strSQL1);
                        while(sqlrst1.next()){       
                                msg=sqlrst1.getString(\"msgcon\");
}
sqlrst1.close();
Serialserial=newSerial(msg);
serial.sendmessage(list1);
                       
                }catch(SQLExceptione){                       
                        e.printStackTrace();
                }


        }

}
回复

使用道具 举报

千问 | 2011-5-19 12:49:54 | 显示全部楼层
这是谁写的代码,太烂了,不但低效而且逻辑错误!
我只分析下面的代码,其它的代码不用我解释了吧,如果不明白,建议还是好好看看Java相关教程吧!

strSQL=\"SELECT*FROMmessage\";//定义从message表中查询所有记录的SQL语句
StringstrSQL1=\"SELECT*FROMmsgcon\";//定义从msgcon表中查询所有记录的SQL语句
intcount=0;//发送人员的个数
inti=0;//初始化手机号数组时的位置变量

sqlrs=db.executeQuery(strSQL);//执行SQL语句,从message表中查询所有记录到记录集变量sqlrs,
sqlrs.last();//把记录集的记录指针移动到最后一条记录,以便于下面sqlrs.getRow()可以得到总记录数。
count=sqlrs.getRow();//得到总记录数
sqlrs.close();//关闭记录集(晕,即然下面还要用到此记录集,为什么要关闭,后面还要再查一次数据库,效率太低了,这里可以直接用sqlrs.first();指向记录集起始处)
System.out.println(count);//在控制台显示记录数
String[]list1=newString[count];//根据总记录数,定义一个string数组
sqlrst=db.executeQuery(strSQL);//这里又查一遍数据库,可以删除
while(sqlrst.next()){//循环记录集sqlrst中的每一条记录
        //msgbeandata=newmsgbean();
        //data.setId(sqlrst.getInt(\"id\"));
        //data.setName(sqlrst.getString(\"name\"));
        //data.setPhonenum(sqlrst.getString(\"phoneNum\"));
        //list.add(data);
        list1=sqlrst.getString(\"phoneNum\");//取出当前记录的电话号码,存到数组中
        i;//增加数组的索引
}
sqlrst.close();//关闭记录集

sqlrst1=db.executeQuery(strSQL1);//执行SQL语句,从msgcon表中查询所有记录到记录集变量sqlrst1,
while(sqlrst1.next()){//循环记录集sqlrst1中的每一条记录       
msg=sqlrst1.getString(\"msgcon\");//从当前记录中取出\"msgcon\"字段的值,保存到变量msg中。(这里逻辑有问题,因为每次取出的\"msgcon\"字段的值都会替换掉上一次msg变量中的值,所以最终只会取出最后一条记录的值,不明白这里想要干什么)
}
sqlrst1.close();//关闭记录集
Serialserial=newSerial(msg);//定义一个Serial类的对象实例,Serial类可能是用来发送消息的(msg应该是消息内容或连接方式)
serial.sendmessage(list1);//调用serial对象的sendmessage方法发送消息到数组中的所有手机
回复

使用道具 举报

千问 | 2011-5-19 12:49:54 | 显示全部楼层
sqlrs.last();
count=sqlrs.getRow();
这句话上面的部分都是初始化是吗,然后这句再确认有多少个手机号码,是吗
最后一句话是不是就是定义新的手机号码,然后重复上面的过程继续发送
这是不是就是个群发程序?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行