2025年4月14日 星期一 乙巳(蛇)年 正月十五 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Java

Java数据库查询简介

时间:10-11来源:作者:点击数:60

利用Connection对象的createStatement方法建立Statement对象,利用Statement对象的executeQuery()方法执行SQL查询语句进行查询,返回结果集,再形如getXXX()的方法从结果集中读取数据。经过这样的一系列步骤就能实现对数据库的查询。

【例 13-9】Java应用程序访问数据库。应用程序打开考生信息表ksInfo,从中取出考生的各项信息。设考生信息数据库的结构如下:

类型 字符串 字符串 整数 字符串 字符串
字段名 考号 姓名 成绩 地址 简历

代码如下:

  • import java.awt.*;
  • import java.awt.event.*;
  • import javax.swing.*;
  • import java.util.*;
  • import java.sql.*;
  • public class Example10_9 extends JFrame implements ActionListener{
  • public static Connection connectByJdbcodbc(String url, String username,String password){
  • Connection con = null;
  • try{
  • Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载ODBC驱动程序
  • }
  • catch (Exception e){
  • e.printStackTrace();
  • return null; //加载失败,连接不成功
  • }
  • try{
  • con = DriverManager.getConnection(url, username, password);
  • }
  • catch (SQLException e){
  • e.printStackTrace();
  • return null; //连接失败
  • }
  • return con; //连接成功
  • }
  • String title[] ={"考号", "姓名", "成绩", "地址", "简历"};
  • JTextField txtNo = new JTextField(8);
  • JTextField txtName = new JTextField(10);
  • JTextField txtScore = new JTextField(3);
  • JTextField txtAddr = new JTextField(30);
  • JTextArea txtresume = new JTextArea();
  • JButton prev = new JButton("前一个");
  • JButton next = new JButton("后一个");
  • JButton first = new JButton("第一个");
  • JButton last = new JButton("最后一个");
  • Statement sql; //SQL语句对象
  • ResultSet rs; //存放查询结果对象
  • Example10_9(Connection connect){
  • super("考生信息查看窗口");
  • setSize(450, 350);
  • try{
  • sql = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
  • rs = sql.executeQuery("SELECT * FROM ksInfo");
  • Container con = getContentPane();
  • con.setLayout(new BorderLayout(0, 6); JPanel p[] = new JPanel[4];
  • for (int i = 0; i < 4; i++){
  • p[i] = new JPane(new FlowLayout(FlowLayout.LEFT, 8, 0));
  • p[i].add(new JLabel(title[i]));
  • }
  • p[0].add(txtNo);
  • p[1].add(txtName);
  • p[2].add(txtScore);
  • p[3].add(txtAddr);
  • JPanel p1 = new JPane(new GridLayout94, 1, 0, 8));
  • JScrollPane jsp = new JScrollPane(txtResume,
  • JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
  • JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  • jsp.setPreforredSize(new Dimension(300, 60);
  • for (int i = 0; i < 4; i++){
  • p1.add(p[i]);
  • }
  • JPanel p2 = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 0);
  • p2.add(new JLabel(title[4]));
  • p2.add(jsp);
  • Jpanel p3 = new Jpanel();
  • p3.add(prev);
  • p3.add(next);
  • p3.add(first);
  • p3.add(last);
  • prev.addActionListener(this);
  • next.addActionListener(this);
  • first.addActionListener(this);
  • last.addActionlistener(this);
  • rs.first();
  • readRecord();
  • }
  • catch (Exception e){
  • e.printStackTrace():
  • }
  • setVisible(ture);
  • }
  • public void modifyRecord(Connection connect){
  • String stuNo = (String)JOptionPane.showInputDialog(null,
  • "请输入考生考号", "输入考号对话框", JOptionPane.PLAIN_MESSAGE, null,
  • null, "");
  • try {
  • sql = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
  • rs = sql.executeQuery("SELECT * FROM ksInfo");
  • Container con = getContentPane();
  • con.setLayout(new Boarderlayout(0, 6));
  • Jpanel p[] = new JPanel[4];
  • for (int i = 0; i < ; i++){
  • p[i] = new JPane(new FlowLayout(flowLayout.LEFT, 8, 0));
  • p[i].add(new JLabel(title[i]));
  • }
  • p[0].add(txtNo);
  • p[1].add(txtName);
  • p[2].add(txtScore);
  • p[3].add(txtAddr);
  • Jpanel p1 = new Jpane(new GridLayout(4, 1, 0, 8));
  • JScrollPane jsp = new JScrollPane(txtResume,
  • JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
  • JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  • jsp.setPreferredSize (new dimension(300, 60));
  • for (int i = 0; i < 4; i++){
  • p1.add(p[i]);
  • }
  • Jpanel p2 = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 0));
  • p2.add(new JLableI(title[4]));
  • p2.add(jsp);
  • JPanel p3 = new JPanel();
  • p3.add(prev);
  • p3.add(next);
  • p3.add(first);
  • p3.add(last);
  • prev.addActionListener(this);
  • next.addActionListener(this);
  • first.addActionListenerIthis);
  • last.addActionListener(this);
  • rs.first();
  • readRecord();
  • }
  • catch (Exception e){
  • e.printStackTrace();
  • }
  • setVisible(true);
  • }
  • boolean readRecord(){
  • try{
  • txtNo.setText(rs.getString("考号")); txtName.setText(rs.getString("姓名")); txtScore.setText(rs.getString("成绩"));
  • txtAddr.setText(rs.getString("地址")); txtResume.setText(rs.getString("简历"));
  • }
  • catch (SQLException e){
  • e.printStackTrace(); return false;
  • }
  • return true;
  • }
  • public void actionPerformed(ActionEvent e){
  • try{
  • if (e.getSource() == prev)rs.previous();
  • else if (e.getSource() == next)rs.next();
  • else if (e.getSource() == first)rs.first();
  • else if (e.getSource() == last)rs.last(); readRecord();
  • }
  • catch (Exception e2){}
  • }
  • public static void main(String args[]){
  • connection connect = null;
  • JFrame .setDefaultLookAndFeeDecorated(true);
  • Font font = new Font("JFrame", Font.PLAIN, 14);
  • if ((connect =connectByJdbcOdbc("jdbc:odbc:redsun", "xia", "1234")) == null){
  • JOptionPane.showMessageDialog(null, "数据库连接失败!");
  • System.exit ( - 1);
  • }
  • new Example10_9(connect); //创建对象
  • }
  • }

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门