发布网友 发布时间:2022-04-15 05:45
共8个回答
懂视网 时间:2022-04-15 10:06
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();
}
}
}
热心网友 时间:2022-04-15 07:14
放在两个表中,建立主键、索引可能是数据太大,传输速度跟不上,所以才慢可考虑用多线程播放第某一个图片时下载另外几副热心网友 时间:2022-04-15 08:32
up,使用select时把blob字段排除在外,当需要调用blob时候再根据关键字单个调用blob记录就不会很慢了热心网友 时间:2022-04-15 10:07
我认为最好的办法是将该数据表中的BLOB字段分离出来,因为一般查询生成树状结构等时用不到这个字段的。热心网友 时间:2022-04-15 11:58
能不能讲的稍微具体一点!我觉得没有必要拆开,因为dbms在处理blob字段的时候本身就和一般字段不同,是把blob字段存放在另外的文件中的热心网友 时间:2022-04-15 14:06
如果是大型数据库可以利用存储过程,返回的只是你想要的数据!!热心网友 时间:2022-04-15 16:31
同意sharklee(苯贼) 把表拆分;BLOB字段放到另一张表里;用主键对应;热心网友 时间:2022-04-15 19:12
我的表没有主键,另外我是要播放图片,速度很快!