使用Java对数据库进行基本的查询和更新操作

数据库查询

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

【例】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数据库更新

数据库更新操作包括数据表创建、删除、以及数据表记录的增加、删除、修改等操作。如果利用数据 SQL命令实现,则利用Statement对旬的executeUpdate()方法,执行SQL的update语句,实现数据表的修改;执行SQL的insert语句,实现数据表记录的添加。

例如,在前面数据为查询例子基础上,再增加对数据表的修改和插入。限于篇幅,不再给出完整程序,只给出实现修改和插入的方法。程序可再增设插入、,,除保存按钮,通过已有的浏览,定位到数据表的特定位置,对痈疽记录进行编辑修改,或插入,或删除,然后按保存按钮,完成修改后的数据表保存。

下面用代码说明数据表更新的方法。与数据表连接时,需指定获得的ResultSet 对象是可更新的。

stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

以上是 使用Java对数据库进行基本的查询和更新操作 的全部内容, 来源链接: utcz.com/p/208632.html

回到顶部