【数据库系统】嵌入式SQL语言查询编程

时间:2024-10-30 07:22:33
在这里插入代码片 import java.sql.*; import java.util.Scanner; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class test1207 { static String JDriver = "";// SQL数据库引擎 static String connectDB = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=嵌入式SQL语言实验";// 数据源 static String user = "sa";//用户名 static String password = "your password";//用户密码 /*初始化数据函数*/ public static void insert(Statement stmt) throws SQLException { try { System.out.println("开始初始化数据"); String a1 = "INSERT INTO S VALUES('180400001','金小兵','男',21,'威海')" +"INSERT INTO S VALUES('180400002','李旺旺','男',21,'杭州')" +"INSERT INTO S VALUES('180400003','刘潇','女',20,'威海')" +"INSERT INTO S VALUES('180400003','王波','男',18,'洛阳')" +"INSERT INTO S VALUES('180400004','陈吉吉','女',20,'海门')";// 初始化数据SQL语句 stmt.executeUpdate(a1);// 执行SQL命令对象 System.out.println("初始化数据成功"); }catch(SQLException e) { e.printStackTrace(); System.out.println("初始化错误"); } } /*执行查询操作函数*/ final public static String select(String input) throws SQLException{ String output="SNO SNAME SSEX SAGE SADDR \n";//输出表头 try { /*连接数据库*/ Statement stmt;//命令对象 Connection con = DriverManager.getConnection(connectDB, user, password);// 连接数据库对象 stmt = con.createStatement(); System.out.println("select-连接数据库成功"); /*查询语句,包含模糊查询*/ String sel="SELECT * FROM S WHERE SADDR LIKE '%"+input+"%'";//数据查询语句 ResultSet rst=stmt.executeQuery(sel); /*获取resultset中的数据,按照指定格式输出*/ int i=0; String[] arr=new String[10]; while(rst.next()) {//依次获取结果中每个元组的属性,以元组为单位存储 String sno=rst.getString(1); String sname=rst.getString(2); String ssex=rst.getString(3); String sage=rst.getString(4); String saddr=rst.getString(5); arr[i]=sno+" "+sname+" "+ssex+" "+sage+" "+saddr+"\n"; i++; } for(int j=0;j<i;j++) {//输出字符串 output=output+arr[j]; } }catch(SQLException e) { e.printStackTrace(); System.out.println("查询错误"); } return output; } /*用户界面,点击button时执行select函数*/ static void frame(final Statement stmt) throws SQLException { JFrame frame=new JFrame("学生信息系统"); JButton search=new JButton("查询"); JPanel left=new JPanel();//左部面板 JPanel right=new JPanel();//右部面板 final TextArea show_rst=new TextArea(); JLabel result=new JLabel(" 结果显示列表 "); JLabel input=new JLabel(" 输入家庭地址 "); final TextField show_input=new TextField(); frame.setLayout(new GridLayout()); frame.add(left); frame.add(right);//左右面板 JPanel p1=new JPanel(); JPanel p2=new JPanel(); right.setLayout(new BorderLayout()); left.setLayout(new BorderLayout()); result.setFont(new Font("宋体",Font.BOLD,15)); p1.add(result); left.add(p1,BorderLayout.NORTH);//"结果显示列表" left.add(show_rst,BorderLayout.CENTER);//结果文本框 show_rst.setForeground(new Color(17,85,204)); show_rst.setFont(new Font("宋体",Font.BOLD,17)); input.setFont(new Font("宋体",Font.BOLD,15)); p2.add(input); right.add(p2,BorderLayout.NORTH);//"输入家庭地址" right.add(show_input,BorderLayout.CENTER);//输入文本框 show_input.setFont(new Font("宋体",Font.BOLD,17)); show_input.setForeground(new Color(17,85,204)); JPanel p=new JPanel(); p.add(search); right.add(p,BorderLayout.SOUTH); frame.setVisible(true); frame.setLocation(280, 40);//设置窗口出现的位置 frame.setSize(800,400);//窗口大小 /*鼠标点击事件*/ search.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { System.out.println("事件开始响应"); String in=show_input.getText();//获取用户的输入 String out=select(in);//执行查询操作 System.out.println("out:"+out); show_rst.setText(out);//结果在界面中输出 } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); } public static void main(String[] args) { /*加载数据库引擎*/ try { Class.forName(JDriver);// 加载数据库引擎,返回给定字符串名的类 } catch (ClassNotFoundException e) { System.out.println("加载数据库引擎失败"); System.exit(0); } System.out.println("数据库驱动成功"); /*创建表*/ try { Connection con = DriverManager.getConnection(connectDB, user, password);// 连接数据库对象 System.out.println("连接数据库成功"); Statement stmt = con.createStatement();// 创建SQL命令对象 stmt = con.createStatement(); System.out.println("开始创建表"); String query = "create table S(SNO CHAR(9),SNAME CHAR(10),SSEX CHAR(2),SAGE smallint,SADDR CHAR(20))";// 创建表SQL语句 stmt.executeUpdate(query);// 执行SQL命令对象 System.out.println("表创建成功"); /*调用插入和查询操作函数*/ insert(stmt);//插入学生数据 frame(stmt);//含用户界面的查询操作,点击button的时候调用select进行查询 /*关闭连接*/ stmt.close();// 关闭命令对象连接 con.close();// 关闭数据库连接 System.out.println("关闭数据库连接"); } catch (SQLException e) { e.printStackTrace(); System.out.println("数据库连接错误"); System.exit(0); } } }