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();
}
}
}