Mysql 實作 DBMS (使用JDBC)
VIDEO
Main Systems :
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class Date2 extends javax.swing.JFrame {
String com = "com.mysql.jdbc.Driver" ;
String URL = "jdbc:mysql://127.0.0.1/xin_data?user=koer3740&password=er3p5eak97&useUnicode=true&characterEncoding=utf-8" ;
String SetInterface = "null" , SetInter2 = "China" ;
Deta4 obj = new Deta4();
String ImagePath ;
public Date2() {
initComponents();
ReadSET();
Read();
obj.jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
SALE();
}
});
obj.jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Date4OK();
}
});
obj.jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Date4Canel();
}
private void Date4Canel() {
obj.dispose();
}
});
}
public String CheckInput( boolean is) throws Exception{
String id = jTextField3.getText();
if (is == true ){
for (User u : users){
if (id.equals(u.id)||jTextField1.getText().isEmpty()||jTextField2.getText().isEmpty()||jTextField3.getText().isEmpty()||jTextField4.getText().isEmpty()||jTextField5.getText().isEmpty()||jTextField6.getText().isEmpty()||jTextField7.getText().isEmpty()){
JOptionPane.showMessageDialog(null , "欄位不可以為空" + "和ID不能相同" );
throw new Exception();
}
}
}else {
if (jTextField1.getText().isEmpty()||jTextField2.getText().isEmpty()||jTextField3.getText().isEmpty()||jTextField4.getText().isEmpty()||jTextField5.getText().isEmpty()||jTextField6.getText().isEmpty()||jTextField7.getText().isEmpty()){
JOptionPane.showMessageDialog(null , "欄位不可以為空" );
throw new Exception();
}
}
return id ;
}
public void FieldEmpty(){
jLabel1.setText(null );
jTextField1.setText(null );jTextField2.setText( null );jTextField3.setText( null );
jTextField4.setText(null );jTextField5.setText( null );jTextField6.setText( null );
jTextField7.setText(null );
}
public void ReadSET(){
File n = new File( "SET" );
String Str = null ;
try {
if (n.exists()){
FileReader fis = new FileReader( "SET/設定.txt" );
BufferedReader fis2 = new BufferedReader(fis);
while ((Str = fis2.readLine()) != null ){
Scanner sc = new Scanner(Str).useDelimiter( "\t" );
String ssc = sc.next();
if (ssc.equals( "SETBLUE" )) SetBlue();
else if (ssc.equals( "SETNULL" )) SetNull();
else SetGreen();
String ssc2 = sc.next();
if (ssc2.equals( "China" )) SetChina();
else SetEnglish();
}
fis.close();
fis2.close();
}else n.mkdirs();
} catch (Exception ex) {
Logger.getLogger(Date2.class .getName()).log(Level.SEVERE, null , ex);
}
}
@SuppressWarnings ( "unchecked" )
private void initComponents() {
jMenuItem6 = new javax.swing.JMenuItem();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
Brow = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jTextField3 = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jTextField4 = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jTextField5 = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
jTextField6 = new javax.swing.JTextField();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jLabel8 = new javax.swing.JLabel();
jButton8 = new javax.swing.JButton();
Sale = new javax.swing.JButton();
jTextField7 = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
DELETEALL = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem7 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenu3 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenuItem2 = new javax.swing.JMenuItem();
jMenu4 = new javax.swing.JMenu();
jMenuItem3 = new javax.swing.JMenuItem();
jMenuItem4 = new javax.swing.JMenuItem();
jMenuItem5 = new javax.swing.JMenuItem();
jMenu5 = new javax.swing.JMenu();
jMenuItem6.setText("jMenuItem6" );
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
setBounds(new java.awt.Rectangle( 160 , 0 , 0 , 0 ));
setMaximumSize(new java.awt.Dimension( 935 , 608 ));
setMinimumSize(new java.awt.Dimension( 935 , 608 ));
setPreferredSize(new java.awt.Dimension( 935 , 608 ));
setResizable(false );
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
getContentPane().setLayout(null );
jTable1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color( 153 , 0 , 0 ), 2 ));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"商品名 " , "ID" , "電話" , "價格" , "地址" , "發行商" , "e-mail"
}
));
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);
getContentPane().add(jScrollPane1);
jScrollPane1.setBounds(0 , 0 , 450 , 450 );
jPanel1.setBackground(new java.awt.Color( 153 , 255 , 51 ));
jPanel1.setForeground(new java.awt.Color( 255 , 255 , 255 ));
jPanel1.setMaximumSize(new java.awt.Dimension( 430 , 520 ));
jPanel1.setLayout(null );
jLabel1.setBackground(new java.awt.Color( 255 , 255 , 255 ));
jLabel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color( 153 , 153 , 0 ), 5 ));
jLabel1.setOpaque(true );
jPanel1.add(jLabel1);
jLabel1.setBounds(80 , 10 , 310 , 223 );
Brow.setText("上傳圖片" );
Brow.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
Brow.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
BrowActionPerformed(evt);
}
});
jPanel1.add(Brow);
Brow.setBounds(360 , 240 , 90 , 21 );
jLabel2.setForeground(new java.awt.Color( 51 , 51 , 0 ));
jLabel2.setText("商品名 :" );
jPanel1.add(jLabel2);
jLabel2.setBounds(70 , 250 , 90 , 20 );
jPanel1.add(jTextField1);
jTextField1.setBounds(140 , 240 , 120 , 30 );
jLabel3.setForeground(new java.awt.Color( 51 , 51 , 0 ));
jLabel3.setText("電話 :" );
jPanel1.add(jLabel3);
jLabel3.setBounds(80 , 300 , 60 , 15 );
jPanel1.add(jTextField2);
jTextField2.setBounds(140 , 288 , 150 , 30 );
jLabel4.setForeground(new java.awt.Color( 51 , 51 , 0 ));
jLabel4.setText("ID :" );
jPanel1.add(jLabel4);
jLabel4.setBounds(90 , 340 , 18 , 15 );
jPanel1.add(jTextField3);
jTextField3.setBounds(140 , 328 , 40 , 30 );
jLabel5.setForeground(new java.awt.Color( 51 , 51 , 0 ));
jLabel5.setText("地址 :" );
jPanel1.add(jLabel5);
jLabel5.setBounds(80 , 380 , 60 , 15 );
jPanel1.add(jTextField4);
jTextField4.setBounds(140 , 368 , 250 , 30 );
jLabel6.setForeground(new java.awt.Color( 51 , 51 , 0 ));
jLabel6.setText("發行商 :" );
jPanel1.add(jLabel6);
jLabel6.setBounds(190 , 340 , 60 , 21 );
jPanel1.add(jTextField5);
jTextField5.setBounds(250 , 328 , 140 , 30 );
jLabel7.setForeground(new java.awt.Color( 51 , 51 , 0 ));
jLabel7.setText("e-mail :" );
jPanel1.add(jLabel7);
jLabel7.setBounds(85 , 420 , 60 , 15 );
jPanel1.add(jTextField6);
jTextField6.setBounds(140 , 408 , 250 , 30 );
jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource( "/delete.png" )));
jButton2.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jPanel1.add(jButton2);
jButton2.setBounds(130 , 470 , 70 , 30 );
jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource( "/edit-icon.png" )));
jButton3.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jPanel1.add(jButton3);
jButton3.setBounds(40 , 470 , 70 , 30 );
jPanel1.add(jLabel8);
jLabel8.setBounds(300 , 500 , 150 , 30 );
jButton8.setText("最近銷售" );
jButton8.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
jButton8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton8ActionPerformed(evt);
}
});
jPanel1.add(jButton8);
jButton8.setBounds(360 , 300 , 90 , 21 );
Sale.setText("售出" );
Sale.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
Sale.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
SaleActionPerformed(evt);
}
});
jPanel1.add(Sale);
Sale.setBounds(360 , 270 , 90 , 21 );
jTextField7.setFont(new java.awt.Font( "新細明體" , 0 , 14 ));
jPanel1.add(jTextField7);
jTextField7.setBounds(320 , 448 , 59 , 30 );
jLabel9.setText("價格 :" );
jPanel1.add(jLabel9);
jLabel9.setBounds(270 , 460 , 50 , 18 );
getContentPane().add(jPanel1);
jPanel1.setBounds(450 , 0 , 490 , 540 );
jPanel2.setBackground(new java.awt.Color( 153 , 255 , 51 ));
jPanel2.setForeground(new java.awt.Color( 255 , 255 , 255 ));
jPanel2.setMaximumSize(new java.awt.Dimension( 450 , 70 ));
jPanel2.setLayout(null );
jButton4.setIcon(new javax.swing.ImageIcon(getClass().getResource( "/ADD.png" )));
jButton4.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jPanel2.add(jButton4);
jButton4.setBounds(370 , 20 , 73 , 30 );
jButton5.setIcon(new javax.swing.ImageIcon(getClass().getResource( "/Help-Support-icon.png" )));
jButton5.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
jPanel2.add(jButton5);
jButton5.setBounds(260 , 20 , 70 , 30 );
DELETEALL.setIcon(new javax.swing.ImageIcon(getClass().getResource( "/database-delete-icon.png" )));
DELETEALL.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
DELETEALL.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
DELETEALLActionPerformed(evt);
}
});
jPanel2.add(DELETEALL);
DELETEALL.setBounds(130 , 20 , 80 , 30 );
jButton6.setIcon(new javax.swing.ImageIcon(getClass().getResource( "/排行.png" )));
jButton6.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton6ActionPerformed(evt);
}
});
jPanel2.add(jButton6);
jButton6.setBounds(20 , 20 , 80 , 30 );
getContentPane().add(jPanel2);
jPanel2.setBounds(0 , 450 , 460 , 90 );
jMenuBar1.setBackground(new java.awt.Color( 204 , 153 , 0 ));
jMenuBar1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color( 153 , 204 , 0 ), 4 ));
jMenu1.setIcon(new javax.swing.ImageIcon(getClass().getResource( "/Save-as-icon.png" )));
jMenuItem7.setText("印出" );
jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem7ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem7);
jMenuBar1.add(jMenu1);
jMenu2.setIcon(new javax.swing.ImageIcon(getClass().getResource( "/捨定.png" )));
jMenu3.setText("語言" );
jMenuItem1.setText("繁體" );
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu3.add(jMenuItem1);
jMenuItem2.setText("英文" );
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
jMenu3.add(jMenuItem2);
jMenu2.add(jMenu3);
jMenu4.setText("版面顏色" );
jMenuItem3.setText("白色" );
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem3ActionPerformed(evt);
}
});
jMenu4.add(jMenuItem3);
jMenuItem4.setBackground(new java.awt.Color( 255 , 255 , 255 ));
jMenuItem4.setForeground(new java.awt.Color( 51 , 204 , 0 ));
jMenuItem4.setText("綠色" );
jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem4ActionPerformed(evt);
}
});
jMenu4.add(jMenuItem4);
jMenuItem5.setForeground(new java.awt.Color( 51 , 51 , 255 ));
jMenuItem5.setText("藍色" );
jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem5ActionPerformed(evt);
}
});
jMenu4.add(jMenuItem5);
jMenu2.add(jMenu4);
jMenuBar1.add(jMenu2);
jMenu5.setIcon(new javax.swing.ImageIcon(getClass().getResource( "/User-Interface-Exit-icon.png" )));
jMenu5.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jMenu5MouseClicked(evt);
}
});
jMenuBar1.add(jMenu5);
setJMenuBar(jMenuBar1);
pack();
}
public void Sale(){
obj.setVisible(true );
}
Double Sales_volume ;
Double Settlement_costs;
Double profit ;
public void SALE(){
try {
Sales_volume = Double.parseDouble( obj.jTextField1.getText())*Double.parseDouble( obj.jTextField2.getText());
obj.jLabel12.setText(Sales_volume.toString());
Settlement_costs = (Double.parseDouble( obj.jTextField1.getText())*Double.parseDouble( obj.jTextField3.getText()))+Double.parseDouble( obj.jTextField5.getText())+Double.parseDouble( obj.jTextField6.getText());
obj.jLabel7.setText(Settlement_costs.toString());
Double Unit_profit = Double.parseDouble( obj.jTextField2.getText()) - Double.parseDouble( obj.jTextField3.getText()) ;
obj.jLabel13.setText(Unit_profit.toString());
profit = (Sales_volume)-(Settlement_costs);
obj.jLabel8.setText(profit.toString());
}catch (Exception e){
JOptionPane.showMessageDialog(null , "欄位不得有特殊字元與空白" , "錯誤" , JOptionPane.ERROR_MESSAGE);
}
}
public void Date4OK(){
PreparedStatement ps = null ;
PreparedStatement ps2 = null ;
Connection conn = null ;
String qriey = "UPDATE `mydatabase` SET `SUMP`= ?,`SUMC`= ? ,`SUMPR`= ? WHERE `id` = ?" ;
String Addqriey = "INSERT INTO `mydatabaaseTimeList`(`Name`, `count`, `SUMP`, `SUMC`, `SUMPR`, `Unit Price`, `Unit cost`, `Unit profit`, `Freight`, `other`, `TIME`) VALUES (?,?,?,?,?,?,?,?,?,?,?)" ;
try {
if (jTextField3.getText().isEmpty()) throw new Exception();
conn = getConnection();
ps = conn.prepareStatement(qriey);
ps2 = conn.prepareStatement(Addqriey);
for (User u : users){
if (jTextField3.getText().equals(u.id)){
ps.setDouble(1 , u.SUMP+Sales_volume);
ps.setDouble(2 , u.SUMC+Settlement_costs);
ps.setDouble(3 , u.SUMPR+profit);
ps.setString(4 , u.id);
Date date = new Date();
ps2.setString(1 , jTextField1.getText()); ps2.setInt( 2 , Integer.parseInt(obj.jTextField1.getText()));
ps2.setDouble(3 , Double.parseDouble(obj.jLabel12.getText()));ps2.setDouble( 4 , Double.parseDouble(obj.jLabel7.getText()));ps2.setDouble( 5 , Double.parseDouble(obj.jLabel8.getText()));
ps2.setDouble(6 , Double.parseDouble(obj.jTextField2.getText()));ps2.setDouble( 7 , Double.parseDouble(obj.jTextField3.getText()));
ps2.setDouble(8 , Double.parseDouble(obj.jLabel13.getText())); ps2.setDouble( 9 , Double.parseDouble(obj.jTextField5.getText())); ps2.setDouble( 10 , Double.parseDouble(obj.jTextField6.getText()));
ps2.setString(11 , String.format( "%tF %<tT" , date));
if (ps.executeUpdate() == 1 ){
JOptionPane.showMessageDialog(null , "賣出 !" , "消息" , JOptionPane.QUESTION_MESSAGE);
ps2.executeUpdate() ;
}
break ;
}
}
} catch (Exception e){
JOptionPane.showMessageDialog(null , "ERROR" , "消息" , JOptionPane.ERROR_MESSAGE);
}
}
public void Top(){
NO1 nod = new NO1();
try {
nod.setVisible(true );
Read();
DefaultTableModel n = (DefaultTableModel) nod.jTable1.getModel();
n.setRowCount(0 );
Object[] o = new Object[ 4 ];
for (User u : users){
o[0 ] = u.name ;
o[1 ] = u.SUMPR ;
o[2 ] = u.SUMP ;
o[3 ] = u.SUMC ;
n.addRow(o);
}
}catch (Exception e){
e.printStackTrace();
}
}
Deta3 date3 = new Deta3();
public void NowSale(){
Statement st = null ;
Connection conn = null ;
try {
date3.setVisible(true );
conn = getConnection();
DefaultTableModel mod = (DefaultTableModel) date3.jTable1.getModel();
mod.setRowCount(0 );
st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM `mydatabaasetimelist`" );
Object[] o = new Object[ 11 ];
while (rs.next()){
o[0 ] = rs.getString( "Name" );
o[1 ] = rs.getInt( "count" ) ;
o[2 ] = rs.getDouble( "SUMP" );
o[3 ] = rs.getDouble( "SUMC" );
o[4 ] = rs.getDouble( "SUMPR" );
o[5 ] = rs.getDouble( "Unit Price" );
o[6 ] = rs.getDouble( "Unit cost" );
o[7 ] = rs.getDouble( "Unit profit" );
o[8 ] = rs.getDouble( "Freight" ) ;
o[9 ] = rs.getDouble( "Other" ) ;
o[10 ] = rs.getString( "TIME" ) ;
mod.addRow(o);
}
}catch (Exception e ){
e.printStackTrace();
}
}
public ImageIcon ReImage(String imagepath , byte [] p){
ImageIcon myprc = null ;
if (imagepath != null ){
myprc = new ImageIcon(imagepath);
}else {
if (p != null )
{myprc = new ImageIcon(p);}
else
{return null ;}
}
Image img = myprc.getImage();
img.getScaledInstance(jLabel1.getWidth(), jLabel1.HEIGHT, Image.SCALE_AREA_AVERAGING);
ImageIcon Image = new ImageIcon(img);
return Image;
}
public Connection getConnection() throws ClassNotFoundException, SQLException{
Connection conn = null ;
Class.forName(com);
conn = DriverManager.getConnection(URL);
return conn ;
}
public void Update(){
String SQL = "UPDATE `mydatabase` SET `name`= ? ,`price`= ? ,`adress`= ? ,`number`= ? ,`Company`= ? ,`E-MAIL`= ? ,`Image`= ? WHERE `id` = ?" ;
String SQLNotImage = "UPDATE `mydatabase` SET `name`=?,`price`=?,`adress`=?,`number`=?,`Company`=?,`E-MAIL`=? WHERE `id` = ?" ;
PreparedStatement ps = null ;
Connection conn = null ;
try {
conn = getConnection();
CheckInput(false );
if (ImagePath != null ){
ps = conn.prepareStatement(SQL);
InputStream Ip = new FileInputStream( new File(ImagePath));
ps.setString(1 , jTextField1.getText());
ps.setDouble(2 , Double.parseDouble(jTextField7.getText())); ps.setString( 3 , jTextField4.getText());
ps.setString(4 , jTextField2.getText()); ps.setString( 5 , jTextField5.getText());
ps.setString(6 , jTextField6.getText());
ps.setBlob(7 , Ip); ps.setString( 8 , jTextField3.getText());
}else {
ps = conn.prepareStatement(SQLNotImage);
ps.setString(1 , jTextField1.getText());
ps.setDouble(2 , Double.parseDouble(jTextField7.getText())); ps.setString( 3 , jTextField4.getText());
ps.setString(4 , jTextField2.getText()); ps.setString( 5 , jTextField5.getText());
ps.setString(6 , jTextField6.getText()); ps.setString( 7 , jTextField3.getText());
}
if (ps.executeUpdate() == 1 ){
JOptionPane.showMessageDialog(rootPane,"ID :" +jTextField3.getText()+ " 更新成功 " );
}else {
JOptionPane.showMessageDialog(rootPane,"ID :" +jTextField3.getText()+ " 未找到 ! " );}
Read();
}catch (Exception e ){
JOptionPane.showMessageDialog(null , "MySql 更新錯誤" , "錯誤" , JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
public void Delete(){
Connection conn = null ;
PreparedStatement ps = null ;
try {
conn = getConnection();
ps = conn.prepareStatement("DELETE FROM `mydatabase` WHERE `id` = ?" );
ps.setString(1 , jTextField3.getText());
if (ps.executeUpdate() != 0 ){
Read();
JOptionPane.showMessageDialog(rootPane,"ID :" +jTextField3.getText()+ " 刪除成功 " );
}else {
JOptionPane.showMessageDialog(rootPane,"ID :" +jTextField3.getText()+ " 未找到 ! " );}
}catch (Exception e){
JOptionPane.showMessageDialog(null , "MySql 刪除錯誤" , "錯誤" , JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
public void Insert(){
String quiry = "INSERT INTO `mydatabase`(`name`, `id`, `price`, `adress`, `number`, `Company`, `E-MAIL`, `Time`, `Image`, `SUMP`, `SUMC`, `SUMPR`) VALUES (?,?,?,?,?,?,?,?,?,0,0,0)" ;
String quiryNotImage = "INSERT INTO `mydatabase`(`name`, `id`, `price`, `adress`, `number`, `Company`, `E-MAIL`, `Time`, `SUMP`, `SUMC`, `SUMPR`) VALUES (?,?,?,?,?,?,?,?,0,0,0)" ;
PreparedStatement ps = null ;
Connection conn = null ;
try {
CheckInput(true );
Date date = new Date();
conn = getConnection();
if (ImagePath != null ){
InputStream Ip = new FileInputStream( new File(ImagePath));
ps = conn.prepareStatement(quiry);
ps.setString(1 , jTextField1.getText()); ps.setString( 2 , jTextField3.getText());
ps.setDouble(3 , Double.parseDouble(jTextField7.getText())); ps.setString( 4 , jTextField4.getText());
ps.setString(5 , jTextField2.getText()); ps.setString( 6 , jTextField5.getText());
ps.setString(7 , jTextField6.getText()); ps.setString( 8 , String.format( "%tF %<tT" ,date));
ps.setBlob(9 , Ip);
}else {
ps = conn.prepareStatement(quiryNotImage);
ps.setString(1 , jTextField1.getText()); ps.setString( 2 , jTextField3.getText());
ps.setDouble(3 , Double.parseDouble(jTextField7.getText())); ps.setString( 4 , jTextField4.getText());
ps.setString(5 , jTextField2.getText()); ps.setString( 6 , jTextField5.getText());
ps.setString(7 , jTextField6.getText()); ps.setString( 8 , String.format( "%tF %<tT" ,date));
}
ps.executeUpdate() ;
Read();
JOptionPane.showMessageDialog(null , "MYSQL : Insert 成功" );
}catch (Exception e){
JOptionPane.showMessageDialog(null , "MySql 新增錯誤" , "錯誤" , JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
LinkedList<User> users ;
public void Read() {
DefaultTableModel mod = (DefaultTableModel) jTable1.getModel();
mod.setRowCount(0 );
users = new LinkedList<User>();
Connection conn = null ;
Statement st = null ;
try {
conn = getConnection() ;
st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM `mydatabase`" );
while (rs.next()){
users.add(new User(rs.getString( "name" ) ,rs.getString( "id" ),rs.getDouble( "price" ) , rs.getString( "adress" ) , rs.getInt( "number" ),rs.getString( "Company" ),rs.getString( "E-MAIL" ),ReImage( null ,rs.getBytes( "Image" )), rs.getString( "Time" ) , rs.getDouble( "SUMP" ) ,rs.getDouble( "SUMC" ) ,rs.getDouble( "SUMPR" )));
}
JTableRead();
}catch (Exception e){
JOptionPane.showMessageDialog(null , "MySql連接錯誤" , "錯誤" , JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}finally {
ImagePath = null ;
FieldEmpty();
}
}
public void JTableRead(){
DefaultTableModel Mod = (DefaultTableModel) jTable1.getModel();
Object[] Tableobj = new Object[ 7 ];
for (User user : users){
Tableobj[0 ] = user.name ;
Tableobj[1 ] = user.id ;
Tableobj[2 ] = user.number ;
Tableobj[3 ] = user.price ;
Tableobj[4 ] = user.address ;
Tableobj[5 ] = user.Company ;
Tableobj[6 ] = user.MAIL ;
Mod.addRow(Tableobj);
}
}
private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
SetGreen();
}
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
SetNull();
}
private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {
SetBlue();
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
SetChina();
}
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
SetEnglish();
}
private void SaleActionPerformed(java.awt.event.ActionEvent evt) {
Sale();
}
private void formWindowClosing(java.awt.event.WindowEvent evt) {
WinClose();
}
public void WinClose(){
int close = JOptionPane.showConfirmDialog( null , "離開??" , "關閉" , JOptionPane.YES_NO_OPTION,JOptionPane.ERROR_MESSAGE, new ImageIcon( this .getClass().getResource( "User-Interface-Exit-icon.png" )));
if (close == JOptionPane.YES_OPTION){
try {
FileWriter fis = new FileWriter( "SET/設定.txt" );
fis.write(SetInterface+"\t" );
fis.write(SetInter2);
fis.close();
System.exit(0 );
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
private void BrowActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser chooser2 = new JFileChooser();
chooser2.setDialogTitle("圖片開啟: " );
chooser2.setFileFilter(new FileTypeFilter( ".gif" , "GIF File" ));
chooser2.setFileFilter(new FileTypeFilter( ".png" , "PNG File" ));
chooser2.setFileFilter(new FileTypeFilter( ".jpg" , "JPEG File" ));
int openresult = chooser2.showOpenDialog( null );
if (openresult == JFileChooser.APPROVE_OPTION){
File file = chooser2.getSelectedFile();
ImagePath = file.getAbsolutePath();
jLabel1.setIcon(ReImage(ImagePath, null ));
}
}
private void jMenu5MouseClicked(java.awt.event.MouseEvent evt) {
WinClose();
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
Insert();
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
TableModel mod = jTable1.getModel();
int index = jTable1.getSelectedRow();
jTextField1.setText((String) mod.getValueAt(index, 0 ));
jTextField3.setText((String) mod.getValueAt(index, 1 ));
jTextField2.setText(mod.getValueAt(index, 2 ).toString());
jTextField7.setText(mod.getValueAt(index, 3 ).toString());
jTextField4.setText((String) mod.getValueAt(index, 4 ));
jTextField5.setText((String) mod.getValueAt(index, 5 ));
jTextField6.setText((String) mod.getValueAt(index, 6 ));
jLabel1.setIcon(users.get(index).Image);
jLabel8.setText(users.get(index).Time);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Delete();
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
Update();
}
private void DELETEALLActionPerformed(java.awt.event.ActionEvent evt) {
Connection conn = null ;
PreparedStatement ps = null ;
try {
conn = getConnection();
ps = conn.prepareStatement("DELETE FROM `mydatabase` WHERE `id` = ?" );
for (User u : users){
ps.setString(1 , u.id);
ps.executeUpdate();
}
Read();
JOptionPane.showMessageDialog(rootPane," 全部刪除成功 " );
}catch (Exception e){
JOptionPane.showMessageDialog(null , "MySql 刪除錯誤" , "錯誤" , JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
Top();
}
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {
NowSale();
}
private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("匯出" );
chooser.setFileFilter(new FileTypeFilter( "txt" , "文件" ));
int is = chooser.showSaveDialog( null ) ;
if (is == JFileChooser.APPROVE_OPTION){
try {
BufferedWriter fos = new BufferedWriter( new FileWriter(chooser.getSelectedFile()));
for (User u : users){
fos.write(u.name+" " +u.price+ " " +u.id+ " " +u.number+ " " +u.Company+ " " +u.MAIL+ " " +u.address+ " " +u.SUMP+ " " +u.SUMC+ " " +u.SUMPR+ "\r\n" );
}
fos.close();
} catch (IOException ex) {
Logger.getLogger(Date2.class .getName()).log(Level.SEVERE, null , ex);
}
}
}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
help he = new help();
he.setVisible(true );
}
public void SetBlue(){
jPanel1.setBackground(new Color( 153 , 153 , 255 ));
jPanel2.setBackground(new Color( 153 , 153 , 255 ));
jLabel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color( 51 , 0 , 102 ), 5 ));
jMenuBar1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color( 0 , 0 , 153 ), 4 ));
SetInterface = "SETBLUE" ;
}
public void SetGreen(){
jPanel1.setBackground(new Color( 153 , 255 , 51 ));
jPanel2.setBackground(new Color( 153 , 255 , 51 ));
jLabel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color( 153 , 153 , 0 ), 5 ));
jMenuBar1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color( 153 , 204 , 0 ), 4 ));
SetInterface = "SETGREEN" ;
}
public void SetNull(){
jPanel1.setBackground(null );
jPanel2.setBackground(null );
jLabel1.setBorder(null );
jMenuBar1.setBorder(null );
SetInterface = "SETNULL" ;
}
public void SetChina()
{
jLabel2.setText("商品名 :" );
jLabel3.setText("電話 :" );
jLabel4.setText("ID :" );
jLabel5.setText("地址 :" );
jLabel6.setText("發行商 :" );jLabel9.setText( "價格 :" );
Brow.setText("上傳圖片" );
Sale.setText("售出" );
jButton8.setText("銷售量" );
jTable1.setModel(new DefaultTableModel(
new Object [][] {},
new String [] {
"商品名 " , "ID" , "電話" , "價格" , "地址" , "發行商" , "e-mail"
}
));
obj.jLabel1.setText("銷售數量 :" );
obj.jLabel2.setText("單價成本 :" );
obj.jLabel5.setText("單價定價 :" );
obj.jLabel6.setText("單價利潤 :" );
obj.jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("總結 :" ));
obj.jLabel3.setText("結算成本 :" );
obj.jLabel4.setText("利潤 :" );
obj.jLabel11.setText("銷售值 :" );
obj.jButton1.setText("取消" );
obj.jButton3.setText("確定" );
obj.jLabel9.setText("運費 :" );
obj.jLabel10.setText("額外成本 :" );
SetInter2 = "China" ;
}
public void SetEnglish()
{
jLabel2.setText("Name :" );
jLabel3.setText("Number :" );
jLabel4.setText("ID :" );
jLabel5.setText("Address :" );
jLabel6.setText("Company :" );jLabel9.setText( "Price :" );
Brow.setText("Upload image" );
Sale.setText("Sold out" );
jButton8.setText("Sales" );
jTable1.setModel(new DefaultTableModel(
new Object [][] {},
new String [] {
"Name " , "ID" , "Number" , "Price" , "Address" , "Company" , "e-mail"
}
));
obj.jLabel1.setText("Sales volume :" );
obj.jLabel2.setText("Unit cost :" );
obj.jLabel5.setText("Unit Price :" );
obj.jLabel6.setText("Unit profit :" );
obj.jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Sum up :" ));
obj.jLabel3.setText("Settlement costs :" );
obj.jLabel4.setText("Profit :" );
obj.jLabel11.setText("Sales :" );
obj.jButton1.setText("Cancel" );
obj.jButton3.setText("Yes" );
obj.jLabel9.setText("Freight :" );
obj.jLabel10.setText("Other :" );
SetInter2 = "ENG" ;
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ( "Nimbus" .equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break ;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Date2.class .getName()).log(java.util.logging.Level.SEVERE, null , ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Date2.class .getName()).log(java.util.logging.Level.SEVERE, null , ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Date2.class .getName()).log(java.util.logging.Level.SEVERE, null , ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Date2.class .getName()).log(java.util.logging.Level.SEVERE, null , ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Date2().setVisible( true );
}
});
}
private javax.swing.JButton Brow;
private javax.swing.JButton DELETEALL;
private javax.swing.JButton Sale;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton8;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenu jMenu4;
private javax.swing.JMenu jMenu5;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
private javax.swing.JMenuItem jMenuItem4;
private javax.swing.JMenuItem jMenuItem5;
private javax.swing.JMenuItem jMenuItem6;
private javax.swing.JMenuItem jMenuItem7;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
public javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JTextField jTextField7;
private help help() {
throw new UnsupportedOperationException( "Not supported yet." );
}
}
class User {
String name ;
String id ;
double price ;
String address;
int number ;
String Company ;
String MAIL ;
ImageIcon Image ;
String Time;
double SUMP , SUMC , SUMPR ;
public User(String name ,String id, double price , String address , int number,String Company,String MAIL,ImageIcon Image
, String Time , double SUMP , double SUMC , double SUMPR){
this .name = name ; this .id = id ;
this .price = price ; this .address = address ;
this .number = number ; this .Company = Company ;
this .MAIL = MAIL ; this .Time = Time ;
this .Image = Image ; this . SUMP = SUMP ;
this . SUMC = SUMC ; this . SUMPR = SUMPR ;
}
}
FileTypeFilter.class
public class FileTypeFilter extends FileFilter{
private final String extension ;
private final String description;
public FileTypeFilter( String extension,String description){
this .extension = extension ;
this .description= description ;
}
@Override
public boolean accept(File f) {
if (f.isDirectory()){
return true ;
}
return f.getName().endsWith(extension);
}
@Override
public String getDescription() {
return description+String.format( " (*%s)" , extension);
}
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。