跳转到主内容
极星编程网:以代码为星,赴技术山海!

select-运行下面的代码为什么这么慢

selectmysqlrandom数据库 import java.awt.*;import javax.swing.*;import java.sql.*;import java.awt.event.*;import java.sql.connection;import java.sql.drivermanager;import java.sql.sqlexception;import java.sql.statement;import java.util.regex.*;import java.util.random;import static java.awt.borderlayout.*;import java.io.file;import java.io.ioexception;public class swingdemo{random r;link lk,lk1;resultset rs,rs1;public void init(){jframe jf=new jframe();final jpanel jp=new jpanel();jp.setpreferredsize(new dimension(300,300));jpanel jp1=new jpanel();final jtextfield jtf=new jtextfield(20);jp1.setlayout(new flowlayout(flowlayout.right));jbutton jb=new jbutton("发送");jscrollpane jsp=new jscrollpane();jp.add(jsp);jf.setlayout(new borderlayout());jf.add(jp,north);jf.add(jp1,south);jp1.add(jtf);jp1.add(jb);jf.pack();jf.setdefaultcloseoperation(jframe.exit_on_close);jf.setvisible(true);jb.addactionlistener(new actionlistener(){public void actionperformed(actionevent e){string out="";string result="";string s=jtf.gettext();if(s.equals("")){joptionpane.showmessagedialog(null, "不能添加空白内容");
} else if(s.length()<4) { result=find(s); } JPanel jp2=new JPanel(); jp2.setPreferredSize(new Dimension(300,50)); JTextArea jta1=new JTextArea(); jta1.setBackground(Color.RED); jp2.setLayout(new FlowLayout(FlowLayout.LEFT)); jp2.add(jta1); JPanel jp3=new JPanel(); jp3.setPreferredSize(new Dimension(300,50)); JTextArea jta2=new JTextArea(); jta2.setBackground(Color.YELLOW); jp3.setLayout(new FlowLayout(FlowLayout.RIGHT)); jp3.add(jta2); jp.setLayout(new BoxLayout(jp,BoxLayout.Y_AXIS)); jp.add(jp2); jp.add(jp3); jta1.setText(s); jta2.setText(result); } });}public String find(String s){ String result=""; try { String sql="select *from chat1"; lk=new Link(sql); rs=lk.sta.executeQuery(sql); while(rs.next()) { String string =new String(rs.getString("question")); if(string.equals(s)||string.contains(s)||s.contains(string)) { try { String sql1="select * from chat where question='"+string+"'"; lk1=new Link(sql1); rs1=lk1.sta.executeQuery(sql1); while(rs1.next()) { result=new String (rs1.getString("answer")); } } catch(Exception e) { e.printStackTrace(); } finally { lk1.closeConn(); } } } } catch(Exception e) { e.printStackTrace(); } finally { lk.closeConn(); } if(result.equals("")) { int i=3; int k=r.nextInt(i); if(k==0) result="asdfsdaf"; else if(k==1) result="rtfdsg"; else if(k==2) result="fgasdd"; } return result;}public static void main(String[] args){ new SwingDemo().init();}
}连接数据库的代码import java.sql.*;public class Link{//ResultSet rs;//声明结果集引用Connection conn;//声明Connection引用Statement sta;public Link(String ml){//有参构造器try{Class.forName("com.mysql.jdbc.Driver");//加载驱动器String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";//url指向要访问的mysql数据库名String name="root";//用户名String pwd="123456";conn=DriverManager.getConnection(url,name,pwd);//连接数据库sta=conn.createStatement();//创建语句//rs=sta.executeQuery(ml);//执行查询得到的结果集}catch(SQLException e){//捕获异常并打印e.printStackTrace();}catch(ClassNotFoundException e){e.printStackTrace();}}public void closeConn(){//关闭数据库连接的方法try{//关闭结果集,语句,连接//if(rs!=null)// rs.close();if(sta!=null)sta.close();if(conn!=null)conn.close();}catch(SQLException e){//捕获异常并打印e.printStackTrace();}}}

相关文章