zoukankan      html  css  js  c++  java
  • NetBeans数据库笔记---三层架构

    1.创建数据库,数据表

    MySQL数据库和Navicat for MySQL工具创建表

    2.创建实体类——反应表结构(列——变量)

               也就是对应表建立的getssets方法,实体类的名字一般都与数据库表的名字相同

    3.创建数据访问层。

    1.BaseDAO(父类)代码:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    public class BaseDao {
    	protected Connection conn = null;
    	protected PreparedStatement pst = null;
    	protected ResultSet rs = null;
    	private String Driver = "com.mysql.jdbc.Driver";
    	private String url = "jdbc:mysql://localhost:3306/apple";// 这里apple是数据库名
    	private String user = "root";
    	private String password = "root";
    
    	public void OpenConnection() throws ClassNotFoundException, SQLException {
    		Class.forName(Driver);
    		conn = DriverManager.getConnection(url, user, password);
    	}
    	public void CloseAll() throws SQLException {
    		if (rs != null) {
    			rs.close();
    		}
    		if (pst != null) {
    			pst.close();
    		}
    		if (conn != null && conn.isClosed() == false) {
    			conn.close();
    		}
    	}
    }
    

    2.XXXDAO(子类)(一个表一个dao类)

    1.如果返回多条数据,对应ArrayList集合类型

    2.方法的参数,是sql执行的条件where 有条件,传参;where没有条件,不用传参

    public class LotForDAO extends ConnDAO{
        public int insert(LotInfor lot){
            int result=0;
         try {
            super.openConn();
            String sql="insert into LotInfor(lotType,lotNum1,lotNum2,lotNum3,lotNum4,lotNum5,lotNum6,lotNum7,lotTerm) values(?,?,?,?,?,?,?,?,?)";
            super.psm = super.conn.prepareStatement(sql);
            psm.setString(1, lot.getLotType());
            psm.setString(2, lot.getLotNum1());
            psm.setString(3, lot.getLotNum2());
            psm.setString(4, lot.getLotNum3());
            psm.setString(5, lot.getLotNum4());
            psm.setString(6, lot.getLotNum5());
            psm.setString(7, lot.getLotNum6());
            psm.setString(8, lot.getLotNum7());
            psm.setString(9, lot.getLotTerm());
            result=psm.executeUpdate();
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SQLException ex) {
                Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex);
            }finally{
                try {
                    super.closeConn();
                } catch (SQLException ex) {
                    Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            return result;
        }
    
        public int delete(String lotTerm){
            int result=0;
            try {
                super.openConn();
                String sql="delete from LotInfor where lotTerm=?";
                super.psm=super.conn.prepareStatement(sql);
                psm.setString(1, lotTerm);
                result=psm.executeUpdate();
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SQLException ex) {
                Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex);
            }finally{
                try {
                    super.closeConn();
                } catch (SQLException ex) {
                    Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            return result;
        }
    
    }
    

    4.业务逻辑(省略)

    5.表示层(前端页面swing/jsp

    线程的代码:

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package apputil;
    
    import appframe.JFrameMain;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    
    /**
     *
     * @author wjw
     */
    public class MyThread implements Runnable {
    
        JLabel[] arr;
        JButton jbu;
        JFrameMain jf;
        ImageIcon shan = new ImageIcon(this.getClass().getResource("../appimg/red2.gif"));
        ImageIcon jing = new ImageIcon(this.getClass().getResource("../appimg/red1.gif"));
    
        public MyThread(JLabel[] arr, JButton jbu,JFrameMain jf) {
            this.arr = arr;
            this.jbu = jbu;
            this.jf=jf;
        }
    
        public void run() {
            this.jbu.setEnabled(false);
            int random = (int) (Math.random() * 200) + 40;
            int sleep = 550;
            for (int i = 0; i <= random; i++) {
                arr[JFrameMain.index].setIcon(jing);
                if (JFrameMain.index >= 23) {
                    JFrameMain.index = -1;
                }
                arr[JFrameMain.index + 1].setIcon(shan);
                JFrameMain.index = JFrameMain.index + 1;
                if (i < 10) {
                    sleep = sleep - 50;
                }
                if (i + 10 > random) {
                    sleep = sleep + 50;
                }
                try {
                    Thread.sleep(sleep);
                } catch (InterruptedException ex) {
                    Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            
            int fenshu = Integer.parseInt(jf.jguageNum.getText());
            int num1 = Integer.parseInt(jf.jLabel36.getText());
            int num2 = Integer.parseInt(jf.jLabel37.getText());
            int num3 = Integer.parseInt(jf.jLabel38.getText());
            int num4 = Integer.parseInt(jf.jLabel39.getText());
            int num5 = Integer.parseInt(jf.jLabel48.getText());
            int num6 = Integer.parseInt(jf.jLabel49.getText());
            int num7 = Integer.parseInt(jf.jLabel50.getText());
            int num8 = Integer.parseInt(jf.jLabel51.getText());
    
            switch (JFrameMain.index) {
                case 5:
                case 10:
                case 16:
                case 22:
                    if(num8>0){
                    jf.jguageNum.setText(Integer.toString(fenshu + 5 * num8));
                    JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;
                case 0:
                case 11:
                case 12:
                    if(num7>0){
                    jf.jguageNum.setText(Integer.toString(fenshu + 10 * num7));
                    JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;
                case 6:
                case 17:
                case 18:
                    if(num6>0){
                    jf.jguageNum.setText(Integer.toString(fenshu + 10 * num6));
                    JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                   } else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;
                case 1:
                case 13:
                case 23:
                    if(num5>0){
                    jf.jguageNum.setText(Integer.toString(fenshu + 10 * num5));
                    JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                   } else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break; 
                case 7:
                case 8:
                    if(num4>0){
                    jf.jguageNum.setText(Integer.toString(fenshu + 20 * num4));
                    JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;  
                case 19:
                case 20:
                    if(num3>0){
                    jf.jguageNum.setText(Integer.toString(fenshu + 20 * num3));
                    JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;
                case 14:
                    if(num2>0){
                    jf.jguageNum.setText(Integer.toString(fenshu + 20 * num2));
                    JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;
                case 15:
                    if(num2>0){
                    jf.jguageNum.setText(Integer.toString(fenshu + 40 * num2));
                    JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;
                case 2:
                    if(num1>0){
                    jf.jguageNum.setText(Integer.toString(fenshu + 50 * num1));
                    JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break; 
                case 3:
                    if(num1>0){
                     jf.jguageNum.setText(Integer.toString(fenshu+100*num1));
                     JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                     }else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;
                case 4:
                    if(num1>0){
                     jf.jguageNum.setText(Integer.toString(fenshu+25*num1));
                     JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }else{
                        JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;
                default:
                    JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE);
    
            }
            this.jf.jLabel36.setText("0");
            this.jf.jLabel37.setText("0");
            this.jf.jLabel38.setText("0");
            this.jf.jLabel39.setText("0");
            this.jf.jLabel48.setText("0");
            this.jf.jLabel49.setText("0");
            this.jf.jLabel50.setText("0");
            this.jf.jLabel51.setText("0");
            this.jbu.setEnabled(true);
        }
    }
    

      

  • 相关阅读:
    CodeForces Gym 100935G Board Game DFS
    CodeForces 493D Vasya and Chess 简单博弈
    CodeForces Gym 100935D Enormous Carpet 快速幂取模
    CodeForces Gym 100935E Pairs
    CodeForces Gym 100935C OCR (水
    CodeForces Gym 100935B Weird Cryptography
    HDU-敌兵布阵
    HDU-Minimum Inversion Number(最小逆序数)
    七月馒头
    非常可乐
  • 原文地址:https://www.cnblogs.com/ComputerVip/p/9426873.html
Copyright © 2011-2022 走看看