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);
        }
    }
    

      

  • 相关阅读:
    理解Fragment生命周期
    嵌入式操作系统内存管理有哪几种,各有何特性
    laravel的auth用户认证的例子
    laravel验证器例子
    laravel加载js和css等资源
    laravel的blade模板的布局嵌套
    laravel的phpstorm插件laravel-ide-helper
    laravel开启调试模式
    laravel的中间件demo
    laravel路由定义
  • 原文地址:https://www.cnblogs.com/ComputerVip/p/9426873.html
Copyright © 2011-2022 走看看