以上为效果图
以下为代码部分
public interface IUserImpl {
// 定义方法
public List<Student> seleAll(String name);
// 查询 通过某些字段进行查询
// Student selectName(String name);
// 添加信息
public int add(Student student);
// 删除方法
public int delete(int id);
public Student selectId(int id);
public int update(Student student);
}
public class UserDao implements IUserImpl {
@Override
public List<Student> seleAll(String name) {
List<Student> list = new ArrayList<Student>();
Connection conn = DBUtil.getConnection();
String sql = "";
try {
if (name != null) {
sql = "select * from student where name like '%" + name + "%'";
} else {
sql = "select * from student";
}
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Student s = new Student();
s.setId(rs.getInt("id"));
s.setName(rs.getString("name"));
s.setAge(rs.getInt("age"));
s.setPhone(rs.getString("phone"));
s.setSchool(rs.getString("school"));
s.setClassName(rs.getString("classname"));
list.add(s);
}
} catch (Exception e) {
// TODO: handle exception
}
return list; // 返回值 切记
}
@Override
public int add(Student student) {
Connection conn = DBUtil.getConnection();
int n = 0;
try {
// 对应数据库五个值
String sql = "insert into student values(?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, student.getId());
ps.setString(2, student.getName());
ps.setInt(3, student.getAge());
ps.setString(4, student.getPhone());
ps.setString(5, student.getSchool());
ps.setString(6, student.getClassName());
n = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
DBUtil.close(conn);
return n;
}
@Override
public int delete(int id) {
Connection conn = DBUtil.getConnection();
String sql = "delete from student where id=?";
int n = 0;
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
n = ps.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
}
return n;
}
@Override
public Student selectId(int id) {
// TODO Auto-generated method stub
Student s= new Student();
Connection conn = DBUtil.getConnection();
String sql = "select * from student where id=?";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
s.setId(rs.getInt("id"));
s.setName(rs.getString("name"));
s.setAge(rs.getInt("age"));
s.setPhone(rs.getString("phone"));
s.setSchool(rs.getString("school"));
s.setClassName(rs.getString("classname"));
}
} catch (Exception e) {
// TODO: handle exception
}
return s;
}
@Override
public int update(Student student) {
Connection conn = DBUtil.getConnection();
String sql="update student set name=?,age=?,phone=?,school=?,classname=? where id=?";
int n=0;
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, student.getName());
ps.setInt(2, student.getAge());
ps.setString(3, student.getPhone());
ps.setString(4, student.getSchool());
ps.setString(5, student.getClassName());
ps.setInt(6, student.getId());
n=ps.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
}
return n;
}
}
package com.lsx;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import com.Dao.IUserImpl;
import com.Dao.UserDao;
import com.entity.Student;
public class AddStudent extends JFrame{
JPanel jPanel = new JPanel();
JLabel jLabel = new JLabel("id: ");
JTextField field = new JTextField(15);
JLabel jLabel2 = new JLabel("姓名: ");
JTextField field2 = new JTextField(15);
JLabel jLabel3 = new JLabel("年龄: ");
JTextField field3 = new JTextField(15);
JLabel jLabel4 = new JLabel("电话: ");
JTextField field4 = new JTextField(15);
JLabel jLabel5 = new JLabel("学校: ");
JTextField field5 = new JTextField(15);
JLabel jLabel6 = new JLabel("班级: ");
JTextField field6 = new JTextField(15);
JButton button = new JButton("添加");
public Frame06 frame06;
public AddStudent(final Frame06 frame06){
this.frame06=frame06;
this.setTitle("添加");
this.setSize(400, 300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jPanel.add(jLabel);
jPanel.add(field);
jPanel.add(jLabel2);
jPanel.add(field2);
jPanel.add(jLabel3);
jPanel.add(field3);
jPanel.add(jLabel4);
jPanel.add(field4);
jPanel.add(jLabel5);
jPanel.add(field5);
jPanel.add(jLabel6);
jPanel.add(field6);
jPanel.add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Student student =new Student();
String id=field.getText();
String name=field2.getText();
String age=field3.getText();
String phone=field4.getText();
String school=field5.getText();
String classname=field6.getText();
student.setId(Integer.parseInt(id));
student.setName(name);
student.setAge(Integer.parseInt(age));
student.setPhone(phone);
student.setSchool(school);
student.setClassName(classname);
IUserImpl impl = new UserDao();
int n=impl.add(student);
if(n>0){
JOptionPane.showMessageDialog(null, "添加成功");
//关闭窗口
AddStudent.this.dispose();
frame06.showTime("");
}else{
JOptionPane.showMessageDialog(null, "添加失败");
}
}
});
this.add(jPanel);
this.setVisible(true);
}
public static void main(String[] args) {
// new AddStudent();
}
}
package com.lsx;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import com.Dao.IUserImpl;
import com.Dao.UserDao;
import com.entity.Student;
public class Update extends JFrame{
JPanel jPanel=new JPanel();
JLabel jLabel=new JLabel("id:");
JTextField field=new JTextField(15);
JLabel jLabel1=new JLabel("姓名:");
JTextField field1=new JTextField(15);
JLabel jLabel2=new JLabel("年龄:");
JTextField field2=new JTextField(15);
JLabel jLabel3=new JLabel("电话:");
JTextField field3=new JTextField(15);
JLabel jLabel4=new JLabel("学校:");
JTextField field4=new JTextField(15);
JLabel jLabel5=new JLabel("班级:");
JTextField field5=new JTextField(15);
JButton button=new JButton("修改");
IUserImpl impl=new UserDao();
public Update(String id,final Frame06 frame06) {
this.setTitle("修改");
this.setSize(300, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//加载数据
Student student=impl.selectId(Integer.parseInt(id));
field.setText(student.getId()+"");
field1.setText(student.getName());
field2.setText(student.getAge()+"");
field3.setText(student.getPhone());
field4.setText(student.getSchool());
field5.setText(student.getClassName());
jPanel.add(jLabel);
jPanel.add(field);
jPanel.add(jLabel1);
jPanel.add(field1);
jPanel.add(jLabel2);
jPanel.add(field2);
jPanel.add(jLabel3);
jPanel.add(jLabel4);
jPanel.add(field4);
jPanel.add(jLabel5);
jPanel.add(field5);
jPanel.add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//获取数据
Student student =new Student();
String id=field.getText();
String name=field1.getText();
String age=field2.getText();
String phone=field3.getText();
String school=field4.getText();
String classname=field5.getText();
//输出id sysout(id)
student.setId(Integer.parseInt(id));
student.setName(name);
student.setAge(Integer.parseInt(age));
student.setPhone(phone);
student.setSchool(school);
student.setClassName(classname);
//sysout(student)
int n=impl.update(student);
//sysout(n)
if(n>0){
JOptionPane.showMessageDialog(null, "修改成功");
Update.this.dispose();
frame06.showTime("");
}else{
JOptionPane.showMessageDialog(null, "修改失败");
}
}
});
this.add(jPanel);
this.setVisible(true);
}
}
package com.lsx;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import com.Dao.IUserImpl;
import com.Dao.UserDao;
import com.entity.Student;
//ok了
public class Frame06 extends JFrame{
//最上面的查询
JPanel jPanel = new JPanel();
JLabel jLabel = new JLabel("姓名:");
JTextField field = new JTextField(15);
JButton button = new JButton("查询");
//表单
JTable jTable = new JTable();
//设置表单样式
DefaultTableModel dtModel = new DefaultTableModel();
//设置滚动 分页
JScrollPane pane = new JScrollPane(jTable); //把表单放在滚动中间
//三部分 按钮 add delete flush update
JPanel jPanel2 = new JPanel();
JButton button2 = new JButton("增加");
JButton button3 = new JButton("删除");
JButton button4 = new JButton("修改");
JButton button5 = new JButton("刷新");
IUserImpl impl = new UserDao();
//显示所有数据的一个方法
public void showTime(String name){
List<Student> students = impl.seleAll(name);
int n=dtModel.getRowCount();
// System.out.println("122:"+n);
for (int i = 0; i < n; i++) {
dtModel.removeRow(0); //相当于刷新
}
for(Student student:students){
Vector<Object> vector = new Vector<Object>();
vector.add(student.getId());
vector.add(student.getName());
vector.add(student.getAge());
vector.add(student.getPhone());
vector.add(student.getSchool());
vector.add(student.getClassName());
dtModel.addRow(vector);
System.out.println(student);
}
}
public Frame06(){
this.setTitle("表单");
this.setSize(400, 300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jPanel.add(jLabel);
jPanel.add(field);
jPanel.add(button);
dtModel.addColumn("id");
dtModel.addColumn("姓名");
dtModel.addColumn("年龄");
dtModel.addColumn("电话");
dtModel.addColumn("学校");
dtModel.addColumn("班级");
jTable.setModel(dtModel);
showTime("");
//查询
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
String name = field.getText();
showTime(name);
}
});
jPanel2.add(button2);
jPanel2.add(button3);
jPanel2.add(button4);
jPanel2.add(button5);
//增加
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//先到增加页面 new Frame06()
//调用showTime方法
new AddStudent(Frame06.this);
}
});
//删除
button3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int c = jTable.getSelectedRow();
System.out.println("第几行"+c);
String id=jTable.getValueAt(c, 0).toString();
int n=impl.delete(Integer.parseInt(id));
if(n>0){
JOptionPane.showMessageDialog(null, "删除成功");
showTime("");
}else{
JOptionPane.showMessageDialog(null, "删除失败");
}
}
});
//修改
button4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int c = jTable.getSelectedRow();
System.out.println(c);
String id=jTable.getValueAt(c, 0).toString();
new Update(id,Frame06.this);
}
});
//刷新 就是把文本框内容清空,再把信息都显示出来
button5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//查询文本框是不是为空
field.setText("");
//再调显示方法
showTime("");
}
});
this.getContentPane().add(jPanel,"North");
this.getContentPane().add(pane,"Center");
this.getContentPane().add(jPanel2,"South");
this.setVisible(true);
}
public static void main(String[] args) {
new Frame06();
}
}
package com.entity;
public class Student {
private int id;
private String name;
private int age;
private String phone;
private String school;
private String ClassName;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public String getClassName() {
return ClassName;
}
public void setClassName(String className) {
ClassName = className;
}
public Student(int id, String name, int age, String phone, String school, String className) {
super();
this.id = id;
this.name = name;
this.age = age;
this.phone = phone;
this.school = school;
ClassName = className;
}
public Student() {
super();
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + ", phone=" + phone + ", school=" + school
+ ", ClassName=" + ClassName + "]";
}
}