public static void main(String[] args) { StuMange stuMange = new StuMange(); }
//构造方法 public StuMange() { //窗体上部的组件 userName = new JLabel("学生名:"); textField = new JTextField(10); numField = new JTextField(10); jiguanField = new JTextField(10); select = new JButton("查询"); panel1 = new Panel(); //将组件添加到panel1面板中 panel1.add(new JLabel("学号:")); panel1.add(numField);
在查询的拼接一下SQL语句:
String sql = "select * from student where 1=1 ";
if(!"".equals(学号))
{
sql = sql +" and 学号 like '%"+学号+"%'";
}if(!"".equals(姓名))
{
sql = sql +" and 姓名 like '%"+姓名+"%'";
}
if(!"".equals(姓名))
{
sql = sql +" and 姓名 like '%"+姓名+"%'";
}其他的以此类推
//------------------------------------------------------
//model2模式开发:
//StuMange文件源代码:
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.event.*;
import java.util.Vector;import javax.swing.event.*;
public class StuMange extends JFrame implements ActionListener {
JLabel userName; //学生名
JTextField textField,numField,jiguanField ; //用户输入学生名字的文本框
JButton select, insert, update, delete; //分别代表查询,添加修改,删除的按钮
JTable table; //用于显示数据的表
Panel panel1, panel2;
JScrollPane jscrollPane;
StuModel stuModel = null; //st表的模型
public static void main(String[] args) {
StuMange stuMange = new StuMange();
}
//构造方法
public StuMange()
{
//窗体上部的组件
userName = new JLabel("学生名:");
textField = new JTextField(10);
numField = new JTextField(10);
jiguanField = new JTextField(10);
select = new JButton("查询");
panel1 = new Panel();
//将组件添加到panel1面板中
panel1.add(new JLabel("学号:"));
panel1.add(numField);
panel1.add(userName);
panel1.add(textField);
panel1.add(new JLabel("籍贯:"));
panel1.add(jiguanField);
panel1.add(select);
//窗体的中部组件
stuModel = new StuModel();
stuModel.queryDate("select * from st");
table = new JTable(stuModel);
jscrollPane = new JScrollPane(table);
//船体的下部组件
insert = new JButton("添加");
update = new JButton("修改");
delete = new JButton("删除");
panel2 = new Panel();
//将组件添加到panel2面板中
panel2.add(insert);
panel2.add(update);
panel2.add(delete);
//设置事件监听
select.addActionListener(this);
insert.addActionListener(this);
update.addActionListener(this);
delete.addActionListener(this);
//将各个组件添加到窗体中
this.add(panel1, BorderLayout.NORTH);
this.add(jscrollPane, BorderLayout.CENTER);
this.add(panel2, BorderLayout.SOUTH);
//设置窗体属性
this.setSize(600, 300);
this.setLocation(200, 200);
this.setTitle("mini学生信息管理系统");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体为可见
this.setVisible(true);
}
//响应用户的按键操作
public void actionPerformed(ActionEvent e)
{
//用户点击了查询按钮
if(e.getSource() == select)
{
String name = textField.getText().trim();
String num = numField.getText().trim();
String jiguan = jiguanField.getText().trim();
String sql = "select * from st where 1=1 ";
Vector<String> v = new Vector<String>(); if(!"".equals(name))
{
sql = sql + " and stNname=?";
v.add(name);
}
if(!"".equals(num))
{
sql = sql + " and stId=?";
v.add(num);
}
if(!"".equals(jiguan))
{
sql = sql + " and stBorn=?";
v.add(jiguan);
}
String str[] = new String[v.size()];
for(int i=0;i<str.length;i++)
{
str[i] = v.get(i);
}
stuModel = new StuModel();
stuModel.queryDate(sql, str);
//刷新窗口
table.setModel(stuModel);
}
//用户点击了添加按钮
else if(e.getSource() == insert)
{
AddStu addStu = new AddStu (this, "添加学生", true);
//刷新窗口
stuModel = new StuModel();
stuModel.queryDate("select * from st");
table.setModel(stuModel);
}
//用户点击了修改的按钮
else if(e.getSource() == update)
{
int row = this.table.getSelectedRow();//获得用户选中的行
if(-1 == row)
{
JOptionPane.showMessageDialog(this, "请选择行");
}
else
{
UpdateStu updateStu = new UpdateStu(this, "修改学生", true, stuModel, row);
//刷新窗口
StuModel stModel = new StuModel();
stModel.queryDate("select * from st");
table.setModel(stModel);
}
}
//用户点击了删除按钮
else if(e.getSource() == delete)
{
int row = this.table.getSelectedRow(); //获得用户选中的行
String id = (String)stuModel.getValueAt(row, 0);
String sql = "delete from st where stId=?";
String[]paras = {id};
stuModel.updateDatebase(sql, paras);
//刷新窗口
StuModel stuModel = new StuModel();
stuModel.queryDate("select * from st");
table.setModel(stuModel);
}
}
}
//--------------------------------------------------------
//AddStu文件源代码:
//--------------------------------------------------------
//StuModel文件源代码:
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;import javax.swing.table.AbstractTableModel;
public class StuModel extends AbstractTableModel {
Vector<Vector> rowDate = null; //记录表的记录
Vector<String> columnNames = null; //记录表的字段名
SqlHelper sqlHelper = null;
ResultSet rs = null;
//用户对数据库进行查询的操作
public void queryDate(String sql)
{
columnNames = new Vector<String>();
columnNames.add("学号");
columnNames.add("名字");
columnNames.add("性别");
columnNames.add("年龄");
columnNames.add("籍贯");
columnNames.add("系别");
rowDate = new Vector<Vector>();
sqlHelper = new SqlHelper();
rs = sqlHelper.queryDatabase(sql, new String[]{});
try {
while(rs.next())
{
Vector<String> row = new Vector<String>();
row.add(rs.getString(1));
row.add(rs.getString(2));
row.add(rs.getString(3));
row.add(rs.getString(4));
row.add(rs.getString(5));
row.add(rs.getString(6));
rowDate.add(row); //将row添加到rowDate中。实现了读取数据库的记录
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
//关闭资源
if(null != rs)
{
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
sqlHelper.close();
}
}
public void queryDate(String sql, String paras)
{
columnNames = new Vector<String>();
columnNames.add("学号");
columnNames.add("名字");
columnNames.add("性别");
columnNames.add("年龄");
columnNames.add("籍贯");
columnNames.add("系别");
rowDate = new Vector<Vector>();
sqlHelper = new SqlHelper();
rs = sqlHelper.queryDatabase(sql, paras);
try {
while(rs.next())
{
Vector<String> row = new Vector<String>();
row.add(rs.getString(1));
row.add(rs.getString(2));
row.add(rs.getString(3));
row.add(rs.getString(4));
row.add(rs.getString(5));
row.add(rs.getString(6));
rowDate.add(row); //将row添加到rowDate中。实现了读取数据库的记录
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
//关闭资源
if(null != rs)
{
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
sqlHelper.close();
}
}
//用户对数据库进行查询的操作
public void queryDate(String sql, String paras[])
{
columnNames = new Vector<String>();
columnNames.add("学号");
columnNames.add("名字");
columnNames.add("性别");
columnNames.add("年龄");
columnNames.add("籍贯");
columnNames.add("系别");
rowDate = new Vector<Vector>();
sqlHelper = new SqlHelper();
rs = sqlHelper.queryDatabase(sql, paras);
try {
while(rs.next())
{
Vector<String> row = new Vector<String>();
row.add(rs.getString(1));
row.add(rs.getString(2));
row.add(rs.getString(3));
row.add(rs.getString(4));
row.add(rs.getString(5));
row.add(rs.getString(6));
rowDate.add(row); //将row添加到rowDate中。实现了读取数据库的记录
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
//关闭资源
if(null != rs)
{
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
sqlHelper.close();
}
}
//用户对数据库进行增删查的操作
public boolean updateDatebase(String sql, String[] paras)
{
SqlHelper sqlHelper = new SqlHelper();
return sqlHelper.updateDatabase(sql, paras);
}
//返回表的列数
public int getColumnCount() {
// TODO Auto-generated method stub
return this.columnNames.size();
}
//返回表的行数
public int getRowCount() {
// TODO Auto-generated method stub
return this.rowDate.size();
}
//返回某行某列
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return ((Vector)this.rowDate.get(rowIndex)).get(columnIndex);
}
//设置表的字段名
public String getColumnName(int column)
{
return (String)this.columnNames.get(column);
}
}
//--------------------------------------------------------
//SqlHelper 文件源代码:
import java.sql.*;
//后台数据库的类
public final class SqlHelper {
//数据库
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
private final static String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; //jdbc驱动
private final static String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=test"; //数据源
private final static String user = "dd"; //数据库用户的密码
private final static String password = "123"; //数据库用户sa的密码
//用户对数据库进行数据查询
public ResultSet queryDatabase(String sql, String paras)
{
try
{
//加载jdbc驱动
Class.forName(driver);
//连接数据源
con = DriverManager.getConnection(url, user, password);
//执行sql
ps = con.prepareStatement(sql);
if(null != paras && paras.length()>0)
{
ps.setString(1, paras);
}
rs = ps.executeQuery();
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch(SQLException e)
{
e.printStackTrace();
}
return rs;
}
//用户对数据库进行数据查询
public ResultSet queryDatabase(String sql, String paras[])
{
try
{
//加载jdbc驱动
Class.forName(driver);
//连接数据源
con = DriverManager.getConnection(url, user, password);
//执行sql
ps = con.prepareStatement(sql);
if(null != paras)
{
for(int i=0;i<paras.length;i++)
ps.setString(1, paras[i]);
}
rs = ps.executeQuery();
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch(SQLException e)
{
e.printStackTrace();
}
return rs;
}
//用户对数据库进行增删改的操作
public boolean updateDatabase(String sql, String[] paras)
{
boolean result = true; //记录对数据库的操作是否成功
try
{
//加载jdbc驱动
Class.forName(driver);
//连接数据源
con = DriverManager.getConnection(url, user, password);
//执行sql
ps = con.prepareStatement(sql);
for(int i = 0; i < paras.length; i++)
{
ps.setString(i+1, paras[i]);
}
ps.executeUpdate();
}
catch(ClassNotFoundException e)
{
result = false;
e.printStackTrace();
}
catch(SQLException e)
{
result = false;
e.printStackTrace();
}
finally
{
//关闭资源
this.close();
}
return result;
}
public void close()
{
//关闭资源
try
{
if(null != ps)
{
ps.close();
}
if(null != con)
{
con.close();
}
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}