基于java+mysql的swing+mysql火车票售票管理系统(java+swing+mysql+gui)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
管理员管理车票和用户、用户购买车票等
技术框架
Java Swing MySQL
基于java+mysql的Swing+MySQL火车票售票管理系统(java+swing+mysql+gui)
}
}
});
}
public void loadData() throws SQLException {
// 清除旧的数据
model.getDataVector().clear();
ticketDao = new TicketImpl();
Inqurie_sg iqs = new Inqurie_sg();
List<Ticket> list = ticketDao.quetida(iqs.getStation_arrival00(), iqs.getStation_depart00(), iqs.getDepart_date00());
// 遍历每一条数据,添加到model中
for (Ticket ticket : list) {
// 添加 行数据
// cob.setSelectedItem(new Tickettype(ticket.getTicketid()));
model.addRow(new Object[]{ticket.getTicketid(), ticket.getStation_arrival(), ticket.getStation_depart(),
ticket.getDepart_date(), ticket.getDepart_time(), ticket.getTicket_number(), ticket.getSeattypeid(),
ticket.getTickettypeid(), ticket.getTickets_left(), ticket.getFares(),
ticket.getTicket_office()
});
}
}
/**
* 购票方法
*
* @throws Exception
*/
public void buy() throws Exception {
if (table.getSelectedRowCount() <= 0) {
JOptionPane.showMessageDialog(null, "请选择要购买的车票");
return;
}
System.out.println(table.getSelectedColumn());
int result = JOptionPane.showConfirmDialog(null, "是否确定要购买该车票");
// 判断用户是否点击
if (result == JOptionPane.OK_OPTION) {
int ticketidd = Integer.valueOf(table.getValueAt(
table.getSelectedRow(), 0).toString());
Userlogin_db dg = new Userlogin_db();
int usd = dg.getUseridDl();
System.out.println(usd + "");
System.out.println(ticketidd + "()()()()(" + usd);
userticketdao = new UserTicketImpl();
userdao = new UserDaoImpl();
ticketim = new TicketImpl();
int blance = userdao.selectbl(usd);
int yuan = ticketim.fares(ticketidd);
int ticketid = ticket.getTicketid();
String station_arrival = txtstation_arrival.getText();
String station_depart = txtstation_depart.getText();
String depart_date = txtdepart_date.getText();
String depart_time = txtdepart_time.getText();
String ticket_number0 = txtticket_number.getText();
int ticket_number = Integer.parseInt(ticket_number0);
Seattype seattype = (Seattype) cmbseattype.getSelectedItem();
String seattypeid = String.valueOf(seattype.getSeattypename()).toString();
Tickettype tickettype = (Tickettype) cmbtickettype.getSelectedItem();
String tickettypeid = String.valueOf(tickettype);
String tickets_left0 = txttickets_left.getText();
int tickets_left = Integer.parseInt(tickets_left0);
String fares = txtfares.getText();
String ticket_office = txtticket_office.getText();
Ticket ticket = new Ticket(ticketid, station_arrival, station_depart,
depart_date, depart_time, ticket_number, seattypeid,
tickettypeid, tickets_left, fares, ticket_office);
boolean flag;
try {
flag = ticketDao.update(ticket);
if (flag) {
JOptionPane.showMessageDialog(null, "修改成功");
dispose();
} else {
JOptionPane.showMessageDialog(null, "修改失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
btnNewButton.setBounds(320, 480, 146, 23);
add(btnNewButton);
}
}
int ticketid0 = rs.getInt(1);
String station_arrival = rs.getString(2);
String station_depart = rs.getString(3);
String depart_date = rs.getString(4);
String depart_time = rs.getString(5);
int ticket_number = (rs.getInt(6));
String seattypeid = rs.getString(7);
String tickettypeid = rs.getString(8);
int tickets_left = rs.getInt(9);
String fares = rs.getString(10);
String ticket_office = rs.getString(11);
Ticket ticket2 = new Ticket(ticketid0, station_arrival,
station_depart, depart_date, depart_time, ticket_number,
seattypeid, tickettypeid, tickets_left, fares, ticket_office);
ticket.add(ticket2);
}
Util.closeAll(con, stmt, rs);
return ticket;
}
@Override
public List<Ticket> queryAll() throws SQLException {
Connection con = Util.getConnection();
String sqladd = "select * from ticket ";
PreparedStatement stmt = con.prepareStatement(sqladd);
ResultSet rs = stmt.executeQuery();
List<Ticket> ticket = new ArrayList<>();
while (rs.next()) {
int ticketid0 = rs.getInt(1);
String station_arrival = rs.getString(2);
String station_depart = rs.getString(3);
String depart_date = rs.getString(4);
String depart_time = rs.getString(5);
int ticket_number = (rs.getInt(6));
String seattypeid = rs.getString(7);
String tickettypeid = rs.getString(8);
int tickets_left = rs.getInt(9);
String fares = rs.getString(10);
String ticket_office = rs.getString(11);
Ticket ticket2 = new Ticket(ticketid0, station_arrival,
station_depart, depart_date, depart_time, ticket_number,
seattypeid, tickettypeid, tickets_left, fares, ticket_office);
ticket.add(ticket2);
}
Util.closeAll(con, stmt, rs);
return ticket;
}
@Override
System.out.println(blance + "***" + yuan);
if (blance >= yuan) {
boolean falll = userdao.reduBlance(usd, yuan);
boolean fal = userticketdao.SelectUidTid(ticketidd, usd);
boolean fall = userticketdao.Left(ticketidd);
System.out.println(fal + "23421434234" + fall);
if (falll) {
if (fall) {
if (fal) {
boolean falg = userticketdao.buyTicket(ticketidd, usd);
boolean flag1 = userticketdao.buyTicketb(ticketidd, usd);
JOptionPane.showMessageDialog(null, "购买成功!");
System.out.println(falg + "1" + flag1);
System.out.println(usd);
System.out.println(ticketidd);
System.out.println();
} else {
JOptionPane.showMessageDialog(null, "您不能重复购买该票!");
}
} else {
JOptionPane.showMessageDialog(null, "该票已经售罄!");
}
} else {
JOptionPane.showMessageDialog(null, "购买失败!");
}
} else {
JOptionPane.showMessageDialog(null, "余额不足!");
}
try {
loadData();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
package dao.Impl;
public class TicketImpl implements TickeDao {
JOptionPane.showMessageDialog(null, "请选择要退的票");
return;
}
int result = JOptionPane.showConfirmDialog(null, "是否确定退掉该票");
// 判断用户是否点击
if (result == JOptionPane.OK_OPTION) {
int userticketid = Integer.valueOf(table.getValueAt(
table.getSelectedRow(), 0).toString());
int userticketuserid = Integer.valueOf(table.getValueAt(
table.getSelectedRow(), 2).toString());
int userticketticketid = Integer.valueOf(table.getValueAt(
table.getSelectedRow(), 1).toString());
usertickrtdao = new UserTicketImpl();
userdao = new UserDaoImpl();
ticketdao = new TicketImpl();
usertickrtdao.fundTicket(userticketid, userticketticketid);
int yuan = ticketdao.fares(userticketticketid);
System.out.println("票价" + yuan);
userdao.addBlance(userticketuserid, yuan);
try {
loadData();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package auth;
/**
* 用户注册
*/
public class Userregister_db extends JFrame implements ActionListener {
JTextField textacc, textpass, textname, textidentity_number;
String fares = table.getValueAt(e.getLastRow(), 9).toString();
String ticket_office = table.getValueAt(e.getLastRow(), 10).toString();
Ticket ticket = new Ticket(ticketid, station_arrival, station_depart,
depart_date, depart_time, ticket_number, seattype, tickettype,
tickets_left, fares, ticket_office);
try {
ticketDao.update(ticket);
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
try {
loadData();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
});
}
public void loadData() throws SQLException {
// 清除旧的数据
model.getDataVector().clear();
ticketDao = new TicketImpl();
Inqurie_sg iqs = new Inqurie_sg();
List<Ticket> list = ticketDao.quetida(iqs.getStation_arrival00(), iqs.getStation_depart00(), iqs.getDepart_date00());
// 遍历每一条数据,添加到model中
for (Ticket ticket : list) {
// 添加 行数据
// cob.setSelectedItem(new Tickettype(ticket.getTicketid()));
model.addRow(new Object[]{ticket.getTicketid(), ticket.getStation_arrival(), ticket.getStation_depart(),
ticket.getDepart_date(), ticket.getDepart_time(), ticket.getTicket_number(), ticket.getSeattypeid(),
ticket.getTickettypeid(), ticket.getTickets_left(), ticket.getFares(),
ticket.getTicket_office()
});
}
}
/**
* 购票方法
*
* @throws Exception
*/
public void buy() throws Exception {
Ticket ticket = new Ticket(ticketid, station_arrival, station_depart,
depart_date, depart_time, ticket_number, seattypeid,
tickettypeid, tickets_left, fares, ticket_office);
boolean flag;
try {
flag = ticketDao.update(ticket);
if (flag) {
JOptionPane.showMessageDialog(null, "修改成功");
dispose();
} else {
JOptionPane.showMessageDialog(null, "修改失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
btnNewButton.setBounds(320, 480, 146, 23);
add(btnNewButton);
}
}
package ui;
/**
* 添加车票
*/
* 添加用户
*/
public class AddUser extends JPanel {
private JTextField txtname;
private JTextField txtidentity_number;
private JTextField txtaccout;
private JTextField txtPassword;
private UserDaoImpl userDao;
/**
* Create the panel.
*/
public AddUser() {
setLayout(null);
JLabel label = new JLabel("用户姓名:");
label.setBounds(250, 100, 70, 23);
add(label);
txtname = new JTextField();
txtname.setBounds(350, 100, 180, 23);
add(txtname);
txtname.setColumns(10);
JLabel label_1 = new JLabel("证件号码");
label_1.setBounds(250, 170, 70, 23);
add(label_1);
txtidentity_number = new JTextField();
txtidentity_number.setBounds(350, 170, 180, 23);
add(txtidentity_number);
txtidentity_number.setColumns(10);
JLabel label_2 = new JLabel("账号");
label_2.setBounds(250, 240, 70, 23);
stmt.setString(7, tickettypeid);
stmt.setInt(8, tickets_left);
stmt.setString(9, fares);
stmt.setString(10, ticket_office);
ResultSet rs = null;
stmt.executeUpdate();
Util.closeAll(con, stmt, rs);
return true;
}
@Override
public boolean update(Ticket ticket) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "update ticket set station_arrival=?,station_depart=?,depart_date=?,"
+ "depart_time=?,ticket_number=?,seattypeid=?,tickettypeid=?,tickets_left=?,fares=?,"
+ "ticket_office=? where ticketid=?";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setString(1, ticket.getStation_arrival());
stmt.setString(2, ticket.getStation_depart());
stmt.setString(3, ticket.getDepart_date());
stmt.setString(4, ticket.getDepart_time());
stmt.setInt(5, ticket.getTicket_number());
stmt.setString(6, ticket.getSeattypeid());
stmt.setString(7, ticket.getTickettypeid());
stmt.setInt(8, ticket.getTickets_left());
stmt.setString(9, ticket.getFares());
stmt.setString(10, ticket.getTicket_office());
stmt.setInt(11, ticket.getTicketid());
ResultSet rs = null;
stmt.executeUpdate();
Util.closeAll(con, stmt, rs);
return true;
}
@Override
public void delete(int ticketid) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "delete from ticket where ticketid=?";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setInt(1, ticketid);
ResultSet rs = null;
stmt.executeUpdate();
Util.closeAll(con, stmt, rs);
}
@Override
public List<Ticket> QueryById(int ticketid) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "select * from ticket where ticketid=?";
PreparedStatement stmt = con.prepareStatement(sqladd);
ResultSet rs = stmt.executeQuery();
List<Ticket> ticket = new ArrayList<>();
while (rs.next()) {
}
} else {
JOptionPane.showMessageDialog(null, "该票已经售罄!");
}
} else {
JOptionPane.showMessageDialog(null, "购买失败!");
}
} else {
JOptionPane.showMessageDialog(null, "余额不足!");
}
try {
loadData();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
package dao.Impl;
public class TicketImpl implements TickeDao {
@Override
public boolean add(String station_arrival, String station_depart, String depart_date, String depart_time,
int ticket_number, String seattypeid, String tickettypeid, int tickets_left, String fares,
String ticket_office) throws Exception {
Connection con = Util.getConnection();
*/
public class AddTicket extends JPanel {
private JTextField txtstation_arrival;
private JTextField txtstation_depart;
private JTextField txtdepart_date;
private JTextField txtdepart_time;
private JTextField txtticket_number;
private JTextField txttickets_left;
private JTextField txtfares;
private JTextField txtticket_office;
private JComboBox cmbtickettype;
private JComboBox cmbseattype;
private TickeDao ticketDao;
private TickeDao seatidDao;
private TicketImpl ticketimpl;
private TickettypeImpl tickettypeDao;
private SeattypeImpl seattypeDao;
private QueryUser query;
/**
* Create the panel.
*
* @param tickettypeDao
* @throws SQLException
*/
public AddTicket() throws SQLException {
setLayout(null);
JLabel label = new JLabel("到达站:");
public int getUserticketid() {
return userticketid;
}
public void setUserticketid(int userticketid) {
this.userticketid = userticketid;
}
public int getUserticketuserid() {
return userticketuserid;
}
public void setUserticketuserid(int userticketuserid) {
this.userticketuserid = userticketuserid;
}
public int getUserticketticketid() {
return userticketticketid;
}
public void setUserticketticketid(int userticketticketid) {
this.userticketticketid = userticketticketid;
}
public String getUserticketname() {
return userticketname;
}
public String getUserticketidentity_number() {
return userticketidentity_number;
}
public void setUserticketidentity_number(String userticketidentity_number) {
this.userticketidentity_number = userticketidentity_number;
}
public void setUserticketname(String userticketname) {
this.userticketname = userticketname;
}
public String getUserticketstation_arrival() {
return userticketstation_arrival;
}
public void setUserticketstation_arrival(String userticketstation_arrival) {
this.userticketstation_arrival = userticketstation_arrival;
}
public String getUserticketstation_depart() {
return userticketstation_depart;
}
}
public void setpassField(JTextField b) {
textpass = b;
}
public void setnameField(JTextField c) {
textname = c;
}
public void setidentity_numberField(JTextField f) {
textidentity_number = f;
}
public void setokButton(JButton b1) {
okButton = b1;
}
public void setresetButton(JButton b2) {
resetButton = b2;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == okButton) {
if (textacc.getText().equals("")) //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入账号", "警告对话框", JOptionPane.WARNING_MESSAGE);
else if (textpass.getText().equals(""))
JOptionPane.showMessageDialog(null, "请输入密码", "警告对话框", JOptionPane.WARNING_MESSAGE);
else if (textname.getText().equals(""))
JOptionPane.showMessageDialog(null, "请输入姓名", "警告对话框", JOptionPane.WARNING_MESSAGE);
else if (textidentity_number.getText().equals(""))
JOptionPane.showMessageDialog(null, "请输入身份证号", "警告对话框", JOptionPane.WARNING_MESSAGE);
else {
String acc = textacc.getText();
String pass = textpass.getText();
String name = textname.getText();
String identity_number = textidentity_number.getText();
if (acc.trim().length() < 1) {
JOptionPane.showMessageDialog(null, "账号必须大于0位!");
JLabel label_3 = new JLabel("密码");
label_3.setBounds(250, 310, 70, 23);
add(label_3);
txtPassword = new JTextField();
txtPassword.setBounds(350, 310, 180, 23);
add(txtPassword);
txtPassword.setColumns(10);
userDao = new UserDaoImpl();
JButton btnNewButton = new JButton("添加用户");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (txtname.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入姓名", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
if (txtidentity_number.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入身份证号", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
if (txtaccout.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入账号", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
if (txtPassword.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入密码", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
String name = txtname.getText();
String identity_number = txtidentity_number.getText();
String account = txtaccout.getText();
String password = txtPassword.getText();
if (account.length() < 1) {
JOptionPane.showMessageDialog(null, "账号必须大于0位!");
txtname.setText("");
JTextField textacc, textpass, textname, textidentity_number;
JButton okButton, resetButton;
Statement stmt;
ResultSet rs;
UserDao userdao;
// double acc;
// String name;
// Connection con = null;
public void setaccountField(JTextField a) {
textacc = a;
}
public void setpassField(JTextField b) {
textpass = b;
}
public void setnameField(JTextField c) {
textname = c;
}
public void setidentity_numberField(JTextField f) {
textidentity_number = f;
}
public void setokButton(JButton b1) {
okButton = b1;
}
public void setresetButton(JButton b2) {
resetButton = b2;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == okButton) {
if (textacc.getText().equals("")) //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入账号", "警告对话框", JOptionPane.WARNING_MESSAGE);
else if (textpass.getText().equals(""))
JOptionPane.showMessageDialog(null, "请输入密码", "警告对话框", JOptionPane.WARNING_MESSAGE);
else if (textname.getText().equals(""))
JOptionPane.showMessageDialog(null, "请输入姓名", "警告对话框", JOptionPane.WARNING_MESSAGE);
else if (textidentity_number.getText().equals(""))
JOptionPane.showMessageDialog(null, "请输入身份证号", "警告对话框", JOptionPane.WARNING_MESSAGE);
else {
String acc = textacc.getText();
String pass = textpass.getText();
String name = textname.getText();
String identity_number = textidentity_number.getText();
if (acc.trim().length() < 1) {
JOptionPane.showMessageDialog(null, "账号必须大于0位!");
return;
}
public UpdataTicket(Ticket ticket) throws SQLException {
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(500, 100, 800, 800);
contentPane = new JPanel();
JLabel label = new JLabel("到达站:");
label.setBounds(280, 65, 146, 23);
add(label);
txtstation_arrival = new JTextField();
txtstation_arrival.setBounds(350, 65, 146, 23);
add(txtstation_arrival);
txtstation_arrival.setColumns(10);
txtstation_arrival.setText(ticket.getStation_arrival());
JLabel label1 = new JLabel("乘车站:");
label1.setBounds(280, 97, 146, 23);
add(label1);
txtstation_depart = new JTextField();
txtstation_depart.setBounds(350, 97, 146, 23);
add(txtstation_depart);
txtstation_depart.setColumns(10);
txtstation_depart.setText(ticket.getStation_depart());
JLabel label_20 = new JLabel("发车日期:");
label_20.setBounds(280, 130, 146, 23);
add(label_20);
txtdepart_date = new JTextField();
txtdepart_date.setBounds(350, 130, 146, 23);
add(txtdepart_date);
txtdepart_date.setColumns(10);
txtdepart_date.setText(ticket.getDepart_date());
JLabel label_2 = new JLabel("发车时间:");
label_2.setBounds(280, 162, 146, 23);
add(label_2);
txtdepart_time = new JTextField();
txtdepart_time.setBounds(350, 162, 146, 23);
add(txtdepart_time);
txtdepart_time.setColumns(10);
txtdepart_time.setText(ticket.getDepart_time());
JLabel label_3 = new JLabel("车次(整数):");
label_3.setBounds(280, 195, 146, 23);
add(label_3);
txtticket_number = new JTextField();
int ticket_number = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 5).toString());
String seattypeid = table.getValueAt(table.getSelectedRow(), 6).toString();
String tickettypeid = table.getValueAt(table.getSelectedRow(), 7).toString();
int tickets_left = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 8).toString());
String fares = table.getValueAt(table.getSelectedRow(), 9).toString();
String ticket_office = table.getValueAt(table.getSelectedRow(), 10).toString();
Ticket ticket = new Ticket(ticketid, station_arrival, station_depart, depart_date, depart_time,
ticket_number, seattypeid, tickettypeid, tickets_left, fares, ticket_office);
UpdataTicket updataticket = new UpdataTicket(ticket);
updataticket.setVisible(true);
}
}
}
package ui;
/**
* 车票信息修改
*/
public class UpdataTicket extends JFrame {
JPanel contentPane;
private JTextField txtstation_arrival;
private JTextField txtstation_depart;
private JTextField txtdepart_date;
private JTextField txtdepart_time;
private JTextField txtticket_number;
table.setModel(model);
table.setRowHeight(30);
scrollPane.setViewportView(table);
tickettypeDao = new TickettypeImpl();
ticketDao = new TicketImpl();
loadData();
// 为表格绑定修改值后的事件
model.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
if (e.getColumn() < 0)
return;
String nVal = table.getValueAt(e.getLastRow(), e.getColumn())
.toString();
// 如果旧的值 和新的值一样,直接 返回
if (nVal.equals(oldValue)) {
return;
}
// 判断当前编辑的单元格是否是主键列
if (e.getColumn() == 0) {
// 还原旧的值
table.setValueAt(oldValue, e.getLastRow(), e.getColumn());
return;
}
// 更新数据
int ticketid = Integer.valueOf(table.getValueAt(e.getLastRow(), 0).toString());
String station_arrival = table.getValueAt(e.getLastRow(), 1).toString();
String station_depart = table.getValueAt(e.getLastRow(), 2).toString();
String depart_date = table.getValueAt(e.getLastRow(), 3).toString();
String depart_time = table.getValueAt(e.getLastRow(), 4).toString();
int ticket_number = Integer.valueOf(table.getValueAt(e.getLastRow(), 5).toString());
String seattype = table.getValueAt(e.getLastRow(), 6).toString();
String tickettype = table.getValueAt(e.getLastRow(), 7).toString();
int tickets_left = Integer.valueOf(table.getValueAt(e.getLastRow(), 8).toString());
String fares = table.getValueAt(e.getLastRow(), 9).toString();
String ticket_office = table.getValueAt(e.getLastRow(), 10).toString();
Ticket ticket = new Ticket(ticketid, station_arrival, station_depart, depart_date, depart_time, ticket_number
, seattype, tickettype, tickets_left, fares, ticket_office);
try {
private JTextField txtdepart_date;
private JTextField txtdepart_time;
private JTextField txtticket_number;
private JTextField txttickets_left;
private JTextField txtfares;
private JTextField txtticket_office;
private JComboBox cmbtickettype;
private JComboBox cmbseattype;
private TickeDao ticketDao;
private TickeDao seatidDao;
private TicketImpl ticketimpl;
private TickettypeImpl tickettypeDao;
private SeattypeImpl seattypeDao;
private QueryUser query;
/**
* Create the panel.
*
* @param tickettypeDao
* @throws SQLException
*/
public AddTicket() throws SQLException {
setLayout(null);
JLabel label = new JLabel("到达站:");
label.setBounds(280, 65, 146, 23);
add(label);
txtstation_arrival = new JTextField();
txtstation_arrival.setBounds(350, 65, 146, 23);
add(txtstation_arrival);
txtstation_arrival.setColumns(10);
JLabel label1 = new JLabel("乘车站:");
label1.setBounds(280, 97, 146, 23);
add(label1);
txtstation_depart = new JTextField();
txtstation_depart.setBounds(350, 97, 146, 23);
add(txtstation_depart);
txtstation_arrival.setColumns(10);
JLabel label_20 = new JLabel("发车日期:");
label_20.setBounds(280, 130, 146, 23);
add(label_20);
txtdepart_date = new JTextField();
txtdepart_date.setBounds(350, 130, 146, 23);
add(txtdepart_date);
txtdepart_date.setColumns(10);
public void setUserticketuserid(int userticketuserid) {
this.userticketuserid = userticketuserid;
}
public int getUserticketticketid() {
return userticketticketid;
}
public void setUserticketticketid(int userticketticketid) {
this.userticketticketid = userticketticketid;
}
public String getUserticketname() {
return userticketname;
}
public String getUserticketidentity_number() {
return userticketidentity_number;
}
public void setUserticketidentity_number(String userticketidentity_number) {
this.userticketidentity_number = userticketidentity_number;
}
public void setUserticketname(String userticketname) {
this.userticketname = userticketname;
}
public String getUserticketstation_arrival() {
return userticketstation_arrival;
}
public void setUserticketstation_arrival(String userticketstation_arrival) {
this.userticketstation_arrival = userticketstation_arrival;
}
public String getUserticketstation_depart() {
return userticketstation_depart;
}
public void setUserticketstation_depart(String userticketstation_depart) {
this.userticketstation_depart = userticketstation_depart;
String name = rs.getString(2);
String identity_number = rs.getString(3);
String account = rs.getString(4);
String password = rs.getString(5);
User user0 = new User(userid0, name, identity_number, account, password);
user.add(user0);
}
Util.closeAll(con, stmt, rs);
return user;
}
public List<User> queryAll() throws SQLException {
Connection con = Util.getConnection();
String sqladd = "select * from user";
PreparedStatement stmt = con.prepareStatement(sqladd);
ResultSet rs = stmt.executeQuery();
List<User> user = new ArrayList<>();
while (rs.next()) {
int userid0 = rs.getInt(1);
String name = rs.getString(2);
String identity_number = rs.getString(3);
String account = rs.getString(4);
String password = rs.getString(5);
User user0 = new User(userid0, name, identity_number, account, password);
user.add(user0);
}
Util.closeAll(con, stmt, rs);
return user;
}
@Override
public boolean SlectAcPs(String account, String password) throws SQLException {
boolean flag = false;
String sql = "select account,password from user";
Connection con = Util.getConnection();
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rr = stmt.executeQuery();
while (rr.next()) {
String account1 = rr.getString(1);
String password1 = rr.getString(2);
if (account.equals(account1) && password.equals(password1)) {
flag = true;
break;
}
}
Util.closeAll(con, stmt, rr);
return flag;
}
@Override
public List<AcPs> getAC(String account, String password) throws SQLException {
model.addRow(new Object[]{ticket.getTicketid(), ticket.getStation_arrival(), ticket.getStation_depart(),
ticket.getDepart_date(), ticket.getDepart_time(), ticket.getTicket_number(), ticket.getSeattypeid(),
ticket.getTickettypeid(), ticket.getTickets_left(), ticket.getFares(),
ticket.getTicket_office()
});
}
}
public void del() throws SQLException {
if (table.getSelectedRowCount() <= 0) {
JOptionPane.showMessageDialog(null, "请选择要删除的数据行");
return;
}
int result = JOptionPane.showConfirmDialog(null, "是否确定要删除");
// 判断用户是否点击
if (result == JOptionPane.OK_OPTION) {
int ticketid = Integer.valueOf(table.getValueAt(
table.getSelectedRow(), 0).toString());
ticketDao.delete(ticketid);
loadData();
}
}
public void updata() throws SQLException {
if (table.getSelectedRowCount() <= 0) {
JOptionPane.showMessageDialog(null, "请选择要修改的数据行");
return;
}
int result = JOptionPane.showConfirmDialog(null, "是否确定要修改");
// 判断用户是否点击
if (result == JOptionPane.OK_OPTION) {
int ticketid = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 0).toString());
String station_arrival = table.getValueAt(table.getSelectedRow(), 1).toString();
String station_depart = table.getValueAt(table.getSelectedRow(), 2).toString();
String depart_date = table.getValueAt(table.getSelectedRow(), 3).toString();
String depart_time = table.getValueAt(table.getSelectedRow(), 4).toString();
int ticket_number = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 5).toString());
String seattypeid = table.getValueAt(table.getSelectedRow(), 6).toString();
String tickettypeid = table.getValueAt(table.getSelectedRow(), 7).toString();
int tickets_left = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 8).toString());
String fares = table.getValueAt(table.getSelectedRow(), 9).toString();
String ticket_office = table.getValueAt(table.getSelectedRow(), 10).toString();
Ticket ticket = new Ticket(ticketid, station_arrival, station_depart, depart_date, depart_time,
ticket_number, seattypeid, tickettypeid, tickets_left, fares, ticket_office);
UpdataTicket updataticket = new UpdataTicket(ticket);
public boolean fundTicket(int userticketid, int userticketticketid) throws SQLException, Exception {
Connection con = Util.getConnection();
String sqlll = "update ticket set tickets_left=tickets_left+1 where ticketid = ?";
PreparedStatement stmttt = con.prepareStatement(sqlll);
stmttt.setInt(1, userticketticketid);
stmttt.executeUpdate();
String sql = "delete from userticket where userticketid=?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setInt(1, userticketid);
stmt.executeUpdate();
return true;
}
@Override
public boolean SelectUidTid(int ticketid, int userid) throws SQLException {
boolean flag = true;
String sql = "select userticketuserid,userticketticketid from userticket";
Connection con = Util.getConnection();
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rr = stmt.executeQuery();
while (rr.next()) {
int useridd = rr.getInt(1);
int ticketidd = rr.getInt(2);
if (useridd == userid && ticketidd == ticketid) {
flag = false;
break;
}
}
Util.closeAll(con, stmt, rr);
return flag;
/*String sql = "select userticketuserid,userticketticketid";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setInt(1, ticketid);
stmt.executeUpdate();
ResultSet rs = null;
DBcon.closeAll(stmt, rs);
return true;*/
}
public class QueryUser extends JPanel {
private JTable table;
private DefaultTableModel model;// 用于存储表格数据
private UserDao userDao;
private String oldValue = "";// 保存单元格编辑 前的值
/**
* Create the panel.
*/
public QueryUser() {
setLayout(new BorderLayout(0, 0));
JScrollPane scrollPane = new JScrollPane();
add(scrollPane, BorderLayout.CENTER);
table = new JTable();
scrollPane.setColumnHeaderView(table);
// 初始化存储表格数据的对象
model = new DefaultTableModel(new Object[][]{}, new String[]{"User Id",
"user name", "ID", "User", "Password"});
// 将数据绑定到对象中
table.setModel(model);
table.setRowHeight(30);
scrollPane.setViewportView(table);
userDao = new UserDaoImpl();
loadData();
// 为表格绑定修改值后的事件
model.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
if (e.getColumn() < 0)
return;
String nVal = table.getValueAt(e.getLastRow(), e.getColumn())
.toString();
// 如果旧的值 和新的值一样,直接 返回
if (nVal.equals(oldValue)) {
return;
}
}
public void setUserticketuserid(int userticketuserid) {
this.userticketuserid = userticketuserid;
}
public int getUserticketticketid() {
return userticketticketid;
}
public void setUserticketticketid(int userticketticketid) {
this.userticketticketid = userticketticketid;
}
public String getUserticketname() {
return userticketname;
}
public String getUserticketidentity_number() {
return userticketidentity_number;
}
public void setUserticketidentity_number(String userticketidentity_number) {
this.userticketidentity_number = userticketidentity_number;
}
public void setUserticketname(String userticketname) {
this.userticketname = userticketname;
}
public String getUserticketstation_arrival() {
return userticketstation_arrival;
}
public void setUserticketstation_arrival(String userticketstation_arrival) {
this.userticketstation_arrival = userticketstation_arrival;
}
public String getUserticketstation_depart() {
return userticketstation_depart;
}
public void setUserticketstation_depart(String userticketstation_depart) {
this.userticketstation_depart = userticketstation_depart;
public AddUser() {
setLayout(null);
JLabel label = new JLabel("用户姓名:");
label.setBounds(250, 100, 70, 23);
add(label);
txtname = new JTextField();
txtname.setBounds(350, 100, 180, 23);
add(txtname);
txtname.setColumns(10);
JLabel label_1 = new JLabel("证件号码");
label_1.setBounds(250, 170, 70, 23);
add(label_1);
txtidentity_number = new JTextField();
txtidentity_number.setBounds(350, 170, 180, 23);
add(txtidentity_number);
txtidentity_number.setColumns(10);
JLabel label_2 = new JLabel("账号");
label_2.setBounds(250, 240, 70, 23);
add(label_2);
txtaccout = new JTextField();
txtaccout.setBounds(350, 240, 180, 23);
add(txtaccout);
txtaccout.setColumns(10);
JLabel label_3 = new JLabel("密码");
label_3.setBounds(250, 310, 70, 23);
add(label_3);
txtPassword = new JTextField();
txtPassword.setBounds(350, 310, 180, 23);
add(txtPassword);
txtPassword.setColumns(10);
userDao = new UserDaoImpl();
JButton btnNewButton = new JButton("添加用户");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (txtname.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入姓名", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
if (txtidentity_number.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入身份证号", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}