Java知多少(108)数据库查询简介
2015-06-30 19:58
447 查看
利用Connection对象的createStatement方法建立Statement对象,利用Statement对象的executeQuery()方法执行SQL查询语句进行查询,返回结果集,再形如getXXX()的方法从结果集中读取数据。经过这样的一系列步骤就能实现对数据库的查询。
【例 13-9】Java应用程序访问数据库。应用程序打开考生信息表ksInfo,从中取出考生的各项信息。设考生信息数据库的结构如下:
系列文章:
Java知多少(上)
Java知多少(中)
Java知多少(78)Java向量(Vector)及其应用
Java知多少(79)哈希表及其应用
Java知多少(80)图形界面设计基础
Java知多少(81)框架窗口基础
Java知多少(82)标签、按钮和按钮事件简介
Java知多少(83)面板基础:JPanel和JScrollPane
Java知多少(84)图形界面之布局设计
Java知多少(85)文本框和文本区
Java知多少(86)文本框和文本区的输入输出
Java知多少(87)选择框和单选按钮
Java知多少(88)列表和组合框
Java知多少(89)列表和组合框
Java知多少(90)菜单
Java知多少(91)对话框
Java知多少(92)滚动条
Java知多少(93)鼠标事件
Java知多少(94)键盘事件
Java知多少(95)绘图基础
Java知多少(96)绘图之设置字型和颜色
Java知多少(97)绘图模式概述
Java知多少(98)Graphics类的绘图方法
Java知多少(99)Graphics2D类的绘图方法
Java知多少(100)图像处理基础
Java知多少(101)图像缓冲技术
Java知多少(102)多媒体基础
Java知多少(103)网络编程之IP地址和InetAddress类
Java知多少(104)网络编程之统一资源定位符URL
Java知多少(105)套接字(Socket)
Java知多少(106)程序与数据库连接
Java知多少(107)几个重要的java数据库访问类和接口
【例 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); //创建对象 } }
系列文章:
Java知多少(上)
Java知多少(中)
Java知多少(78)Java向量(Vector)及其应用
Java知多少(79)哈希表及其应用
Java知多少(80)图形界面设计基础
Java知多少(81)框架窗口基础
Java知多少(82)标签、按钮和按钮事件简介
Java知多少(83)面板基础:JPanel和JScrollPane
Java知多少(84)图形界面之布局设计
Java知多少(85)文本框和文本区
Java知多少(86)文本框和文本区的输入输出
Java知多少(87)选择框和单选按钮
Java知多少(88)列表和组合框
Java知多少(89)列表和组合框
Java知多少(90)菜单
Java知多少(91)对话框
Java知多少(92)滚动条
Java知多少(93)鼠标事件
Java知多少(94)键盘事件
Java知多少(95)绘图基础
Java知多少(96)绘图之设置字型和颜色
Java知多少(97)绘图模式概述
Java知多少(98)Graphics类的绘图方法
Java知多少(99)Graphics2D类的绘图方法
Java知多少(100)图像处理基础
Java知多少(101)图像缓冲技术
Java知多少(102)多媒体基础
Java知多少(103)网络编程之IP地址和InetAddress类
Java知多少(104)网络编程之统一资源定位符URL
Java知多少(105)套接字(Socket)
Java知多少(106)程序与数据库连接
Java知多少(107)几个重要的java数据库访问类和接口
相关文章推荐
- (1)java设计模式之简单工厂模式
- java内存分配和String类型的深度解析
- Spring Task 定时任务
- Java实现几种常见排序方法
- java_JDBC字段对应
- java 序列化 Serializable
- java_JDBC(2)
- java_JDBC(3)
- Java反射应用案例
- Java文件选择对话框(文件选择器JFileChooser)的使用:以一个文件加密器为例
- Spring MVC-RequestToViewNameTranslator
- springmvc学习笔记---idea创建springmvc项目
- java_JDBC(1)
- Spring整合Junit测试,并且配置事务
- java设计模式之单例模式
- Java新技术---线程学习之常用同步工具类
- 【java0010】一张图看懂java集合
- 4、javaweb listener 应用场景
- 利用Java编写简单的WebService实例
- Java操作PDF之iText超入门