package dbutil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SQLHelper {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/XXX", user = "", pwd = ""; //XXX的地方修改成需要的数据库名以及补充用户名和密码
private static Connection conn=null;
static {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static ResultSet executeQuery(String sql) {
ResultSet rs=null;
try {
conn = DriverManager.getConnection(url, user, pwd);
Statement cmd=conn.createStatement();
rs=cmd.executeQuery(sql);
} catch (Exception ex) {
ex.printStackTrace();
}
return rs;
}
public static void closeConnection() {
try {
if(conn!=null && !conn.isClosed())
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void executeUpdate(String sql) {
try {
conn = DriverManager.getConnection(url, user, pwd);
Statement cmd = conn.createStatement();
cmd.executeUpdate(sql);
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
package dao;
import java.sql.*;
import java.util.*;
import dbutil.SQLHelper;
import pojo.Person;
public class PersonDao {
private int queryPersonNums(){
String sql = "select count(*) from person";
Object rs = SQLHelper.executeSingleQuery(sql);
return Integer.parseInt(rs.toString());
}
public String[][] queryAllPerson() throws SQLException{
String[][] rows = new String[queryPersonNums()][6];
String sql = "select * from person";
ResultSet rs = SQLHelper.executeQuery(sql);
int row = 0;
try {
while (rs.next()) {
for (int i = 0; i < 6; i++){
rows[row][i] = rs.getString(i + 1);
}
row++;
}
SQLHelper.closeConnection();
} catch (Exception ex) {
ex.printStackTrace();
}
return rows;
}
public int addPerson(String pno,String pname,String sex,String phone,String addr,String email) {
String sql = "insert into person values('" +pno+ "','" +pname+ "','" +sex+ "','"+phone+"','"+addr+"','"+email+"')";
return SQLHelper.executeUpdate(sql);
}
public ArrayList<Person> queryPersonByName1(String name){
ArrayList<Person> list = new ArrayList<Person>();
String sql = "select * from person where name='"+name+"';";
ResultSet rs = SQLHelper.executeQuery(sql);
try{
while (rs.next()) {
Person p = new Person();
p.setPid(rs.getInt(1));
p.setName(rs.getString(2));
p.setSex(rs.getString(3));
p.setTel(rs.getString(4));
p.setAddress(rs.getString(5));
p.setEmail(rs.getString(6));
list.add(p);
}
} catch (Exception ex) {
ex.printStackTrace();
}
SQLHelper.closeConnection();
return list;
}
public int DeleteEmpById(String id){ //通过人的编号来删除通讯录
String sql = "delete from person where id='"+id+"'";
int s = SQLHelper.executeUpdate(sql);
return s;
}
}
package pojo;
public class Person {
private int pid; //编号
private String name,sex,tel,address,email;//姓名,性别,电话,地址,email
public Person(){
this.pid=pid;
this.name=name;
this.sex=sex;
this.tel=tel;
this.address=address;
this.email=email;
}
public int getPid(){
return pid;
}
public void setPid(int pid){
this.pid=pid;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getSex(){
return sex;
}
public void setSex(String sex){
this.sex=sex;
}
public String getTel(){
return tel;
}
public void setTel(String tel){
this.tel=tel;
}
public String getAddress(){
return address;
}
public void setAddress(String address){
this.address=address;
}
public String getEmail(){
return email;
}
public void setEmail(String email){
this.email=email;
}
public String toString(){
return "Person [ pid= "+pid+" ,name= "+name+" ,sex= "+sex+" ,tel= "+tel+
" ,address= "+address+" ,email= "+email+" ]";
}
}
package frm;
import java.awt.*;
import java.awt.List;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import pojo.Person;
import dao.PersonDao;
import dbutil.SQLHelper;
public class PersonFrm extends JFrame{
private static final long serialVersionUID = 1L;
PersonDao persondao=new PersonDao();
private JTable table;
private JLabel lblno=new JLabel("编号");
private JLabel lblname=new JLabel("姓名");
private JLabel lblsex=new JLabel("性别");
private JLabel lblphone=new JLabel("电话");
private JLabel lbladdr=new JLabel("地址");
private JLabel lblemail=new JLabel("email");
private JTextField txtno=new JTextField();
private JTextField txtname=new JTextField();
private JTextField txtsex=new JTextField();
private JTextField txtphone=new JTextField();
private JTextField txtaddr=new JTextField();
private JTextField txtemail=new JTextField();
private JButton btnquery=new JButton("查询");
private JButton btnadd=new JButton("增加");
private JButton btndelete=new JButton("删除");
private JButton btnall=new JButton("显示所有");
private void initTable(){
try{
String[] cols={"编号","姓名","性别","电话","地址","email"};
String[][] rows = persondao.queryAllPerson();
table=new JTable(rows,cols);
}catch (Exception ex){
ex.printStackTrace();
}
}
private void queryTable(){
try{
String[] cols={"编号","姓名","性别","电话","地址","email"};
String[][] rows = persondao.queryPersonByName(txtname.getText().toString());
table.setModel(new DefaultTableModel(rows,cols));
}catch (Exception e){
e.printStackTrace();
}
}
private void updateTable(){
try{
String[] cols={"编号","姓名","性别","电话","地址","email"};
String[][] rows=persondao.queryAllPerson();
table.setModel(new DefaultTableModel(rows,cols));
}catch (Exception ex){
ex.printStackTrace();
}
}
public void initpersonTable(){
String name=txtname.getText();
ArrayList<Person> plist=persondao.queryPersonByName1(name);
DefaultTableModel dtm = (DefaultTableModel)table.getModel();
String[] cols=new String[]{"编号","姓名","性别","电话","地址","Email"};
dtm.setColumnIdentifiers(cols);
for(int i=0;i< plist.size();i++){
Vector v = new Vector();
v.add(plist.get(i).getPid());
v.add(plist.get(i).getName());
v.add(plist.get(i).getSex());
v.add(plist.get(i).getTel());
v.add(plist.get(i).getAddress());
v.add(plist.get(i).getEmail());
dtm.addRow(v);
}
}
public PersonFrm(){
JPanel jp=(JPanel)this.getContentPane();
JPanel jpup = new JPanel();
jpup.setLayout(new GridLayout(4, 4));
jpup.add(lblno); jpup.add(txtno); jpup.add(lblname); jpup.add(txtname);
jpup.add(lblsex); jpup.add(txtsex); jpup.add(lblphone); jpup.add(txtphone);
jpup.add(lbladdr); jpup.add(txtaddr); jpup.add(lblemail); jpup.add(txtemail);
jpup.add(btnquery); jpup.add(btnadd); jpup.add(btndelete); jpup.add(btnall);
jp.add(jpup,BorderLayout.NORTH);
jpup.setBackground(Color.white);
jp.setBackground(Color.white);
initTable();
JScrollPane jsp = new JScrollPane(table);
jsp.setBackground(Color.white);
jp.add(jsp);
this.setSize(800, 400);
this.setTitle("我的通讯录");
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btnquery.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
btnquery_Clicked();
}
});
btnadd.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
btnadd_Clicked();
}
});
btnall.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
btnall_Clicked();
}
});
btndelete.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
btndelete_Clicked();
}
});
}
private void btnquery_Clicked(){
table.setModel(new DefaultTableModel());
initpersonTable();
}
private void btnadd_Clicked(){
String no = txtno.getText().trim();
String name = txtname.getText().trim();
String sex = txtsex.getText().trim();
String phone = txtphone.getText().trim();
String addr = txtaddr.getText().trim();
String email = txtemail.getText().trim();
try{
String sql = "insert into person(id,name,sex,phone,address,email) values('"+no+"','"+name+"','"+sex+"','"+phone+"','"+addr+"','"+email+"')";
int a = SQLHelper.executeUpdate(sql);
}catch (Exception e){
e.printStackTrace();
}
}
private void btnall_Clicked(){
updateTable();
}
private void btndelete_Clicked(){
int rowIndex = table.getSelectedRow();
if(rowIndex>=-1){
int d = JOptionPane.showConfirmDialog(this, "确认删除?","删除通讯录",JOptionPane.OK_CANCEL_OPTION);
if(d==JOptionPane.OK_OPTION){
String id = table.getValueAt(rowIndex, 0).toString();
if(persondao.DeleteEmpById(id)>0){
JOptionPane.showMessageDialog(this, "删除成功!");
updateTable();
}
}
}
}
public static void main(String[] args){
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
PersonFrm frm = new PersonFrm();
frm.setLocationRelativeTo(null); //显示在屏幕居中位置
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
结果截图: