文档库 最新最全的文档下载
当前位置:文档库 › StuModel

StuModel

StuModel
StuModel

package com.student;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.util.*;

import java.sql.*;

public class StuManage extends JFrame implements ActionListener{

/**

* @param args

*/

JFrame jf = new JFrame();

//定义一些控件

JPanel jp1, jp2;

JLabel jl1;

JButton jb1,jb2,jb3,jb4;

JTable jt;

JScrollPane jsp;

JTextField jtf;

Font ft = new Font("Serif",Font.BOLD,28);

public StuManage() throws Exception

{

jp1 = new JPanel();

jl1 = new JLabel();

jl1 = new JLabel("请输入名字");

jtf = new JTextField(10);

jb1 = new JButton("查询");

jb1.addActionListener(this);

//jb1.setActionCommand(arg0);

jp1.add(jl1);

jp1.add(jtf);

jp1.add(jb1);

jf.add("North",jp1);

jp2 = new JPanel();

jb2 = new JButton("添加");

jb3 = new JButton("修改");

jb4 = new JButton("删除");

jp2.add(jb2);

StuModel sm = new StuModel();

jt = new JTable(sm);

jsp = new JScrollPane(jt);

jf.add(jsp);

jf.setVisible(true);

jf.setSize(400,400);

jp2.add(jb3);

jp2.add(jb4);

jf.add("South",jp2);

}

public static void main(String[] args) throws Exception

{

// TODO Auto-generated method stub

StuManage sm = new StuManage();

}

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

//判断是哪个按钮被选中

if(arg0.getSource() == jb1)//按钮按下

//此方法要求按钮与响应方法在同一个类

{

String Name = jtf.getText().trim();

String sql = "select* from user where name = '"+ Name+"'";

StuModel sml = null;

try {

sml = new StuModel(sql);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

jt.setModel(sml);

}

}

}

package com.student;

import javax.swing.table.*;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.util.*;

import java.sql.*;

public class StuModel extends AbstractTableModel{

/**

* @param args

*/

// 定义MySQL的数据库驱动程序;

public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;

// 定义MySQL数据库的连接地址

public static final String DBURL = "jdbc:mysql://localhost:3306/myData" ;

// MySQL数据库的连接用户名

public static final String DBUSER = "root" ;

// MySQL数据库的连接密码

public static final String DBPASS = "mysqladmin" ;

Vector rowData,columnName;

public StuModel() throws Exception

{

Connection conn = null ; // 数据库连接

ResultSet rs = null ; // 保存查询结果

PreparedStatement ps;

Class.forName(DBDRIVER) ; // 加载驱动程序

conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

ps = conn.prepareStatement("select *from user");

rs = ps.executeQuery() ;

//表格操作

//将数据导入界面

columnName = new Vector();

rowData = new Vector();

columnName.add("学号");

columnName.add("姓名");

columnName.add("年龄");

columnName.add("性别");

columnName.add("成绩");

rowData = new Vector();

while(rs.next())

{

//错误笔记:把hang定义放在while外头不对

//原因是那样只创建了一个行对象,只能存放第一行,所以每次执行都输出第一行的数据

Vector hang = new Vector();

hang.add(rs.getString(1));

hang.add(rs.getString(2));

hang.add(rs.getInt(4));

hang.add(rs.getString(5));

hang.add(rs.getInt(3));

rowData.add(hang);

}

//关闭数据库

if(rs!=null)

{

rs.close() ;

}

if(ps!=null)

{

ps.close() ;

}

if(conn!=null)

{

conn.close() ;

}

}

public StuModel(String sql) throws Exception

{

//数据库操作

Connection conn = null ; // 数据库连接

Statement stmt = null ; // 数据库的操作对象

ResultSet rs = null ; // 保存查询结果

Class.forName(DBDRIVER) ; // 加载驱动程序

conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

stmt = conn.createStatement() ;

rs = stmt.executeQuery(sql) ;

//表格操作

//将数据导入界面

columnName = new Vector();

rowData = new Vector();

columnName.add("学号");

columnName.add("姓名");

columnName.add("年龄");

columnName.add("性别");

columnName.add("成绩");

rowData = new Vector();

while(rs.next())

{

//错误笔记:把hang定义放在while外头不对

//原因是那样只创建了一个行对象,只能存放第一行,所以每次执行都输出第一行的数据

Vector hang = new Vector();

hang.add(rs.getString("id"));

hang.add(rs.getString("name"));

hang.add(rs.getInt("age"));

hang.add(rs.getString("sex"));

hang.add(rs.getInt("Grade"));

rowData.add(hang);

}

//关闭数据库

if(rs!=null)

{

rs.close() ;

}

if(stmt!=null)

{

stmt.close() ;

}

if(conn!=null)

{

conn.close() ;

}

}

@Override

public String getColumnName(int arg0) {

// TODO Auto-generated method stub

return (String)this.columnName.get(arg0);

}

//得到列的数目

@Override

public int getColumnCount() {

// TODO Auto-generated method stub

return this.columnName.size();

}

//得到行的数目

@Override

public int getRowCount() {

// TODO Auto-generated method stub

return this.rowData.size();

}

//得到某行某列的数据

@Override

public Object getValueAt(int row, int column) {

// TODO Auto-generated method stub

return ((Vector)this.rowData.get(row)).get(column);

}

}

相关文档