NetBeans数据库笔记

1.创建数据库,数据表

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

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

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

3.创建数据访问层。

1.BaseDAO(父类)代码:

1import java.sql.Connection; 2import java.sql.DriverManager; 3import java.sql.PreparedStatement; 4import java.sql.ResultSet; 5import java.sql.SQLException; 6public class BaseDao { 7 protected Connection conn = null; 8 protected PreparedStatement pst = null; 9 protected ResultSet rs = null; 10 private String Driver = "com.mysql.jdbc.Driver"; 11 private String url = "jdbc:mysql://localhost:3306/apple";// 这里apple是数据库名 12 private String user = "root"; 13 private String password = "root"; 14 15 public void OpenConnection() throws ClassNotFoundException, SQLException { 16 Class.forName(Driver); 17 conn = DriverManager.getConnection(url, user, password); 18 } 19 public void CloseAll() throws SQLException { 20 if (rs != null) { 21 rs.close(); 22 } 23 if (pst != null) { 24 pst.close(); 25 } 26 if (conn != null && conn.isClosed() == false) { 27 conn.close(); 28 } 29 } 30}

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

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

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

1public class LotForDAO extends ConnDAO{ 2 public int insert(LotInfor lot){ 3 int result=0; 4 try { 5 super.openConn(); 6 String sql="insert into LotInfor(lotType,lotNum1,lotNum2,lotNum3,lotNum4,lotNum5,lotNum6,lotNum7,lotTerm) values(?,?,?,?,?,?,?,?,?)"; 7 super.psm = super.conn.prepareStatement(sql); 8 psm.setString(1, lot.getLotType()); 9 psm.setString(2, lot.getLotNum1()); 10 psm.setString(3, lot.getLotNum2()); 11 psm.setString(4, lot.getLotNum3()); 12 psm.setString(5, lot.getLotNum4()); 13 psm.setString(6, lot.getLotNum5()); 14 psm.setString(7, lot.getLotNum6()); 15 psm.setString(8, lot.getLotNum7()); 16 psm.setString(9, lot.getLotTerm()); 17 result=psm.executeUpdate(); 18 } catch (ClassNotFoundException ex) { 19 Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex); 20 } catch (SQLException ex) { 21 Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex); 22 }finally{ 23 try { 24 super.closeConn(); 25 } catch (SQLException ex) { 26 Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex); 27 } 28 } 29 return result; 30 } 31 32 public int delete(String lotTerm){ 33 int result=0; 34 try { 35 super.openConn(); 36 String sql="delete from LotInfor where lotTerm=?"; 37 super.psm=super.conn.prepareStatement(sql); 38 psm.setString(1, lotTerm); 39 result=psm.executeUpdate(); 40 } catch (ClassNotFoundException ex) { 41 Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex); 42 } catch (SQLException ex) { 43 Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex); 44 }finally{ 45 try { 46 super.closeConn(); 47 } catch (SQLException ex) { 48 Logger.getLogger(LotForDAO.class.getName()).log(Level.SEVERE, null, ex); 49 } 50 } 51 return result; 52 } 53 54}

4.业务逻辑(省略)

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

线程的代码:

1/* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5package apputil; 6 7import appframe.JFrameMain; 8import java.util.logging.Level; 9import java.util.logging.Logger; 10import javax.swing.ImageIcon; 11import javax.swing.JButton; 12import javax.swing.JLabel; 13import javax.swing.JOptionPane; 14 15/** 16 * 17 * @author wjw 18 */ 19public class MyThread implements Runnable { 20 21 JLabel[] arr; 22 JButton jbu; 23 JFrameMain jf; 24 ImageIcon shan = new ImageIcon(this.getClass().getResource("../appimg/red2.gif")); 25 ImageIcon jing = new ImageIcon(this.getClass().getResource("../appimg/red1.gif")); 26 27 public MyThread(JLabel[] arr, JButton jbu,JFrameMain jf) { 28 this.arr = arr; 29 this.jbu = jbu; 30 this.jf=jf; 31 } 32 33 public void run() { 34 this.jbu.setEnabled(false); 35 int random = (int) (Math.random() * 200) + 40; 36 int sleep = 550; 37 for (int i = 0; i <= random; i++) { 38 arr[JFrameMain.index].setIcon(jing); 39 if (JFrameMain.index >= 23) { 40 JFrameMain.index = -1; 41 } 42 arr[JFrameMain.index + 1].setIcon(shan); 43 JFrameMain.index = JFrameMain.index + 1; 44 if (i < 10) { 45 sleep = sleep - 50; 46 } 47 if (i + 10 > random) { 48 sleep = sleep + 50; 49 } 50 try { 51 Thread.sleep(sleep); 52 } catch (InterruptedException ex) { 53 Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex); 54 } 55 } 56 57 int fenshu = Integer.parseInt(jf.jguageNum.getText()); 58 int num1 = Integer.parseInt(jf.jLabel36.getText()); 59 int num2 = Integer.parseInt(jf.jLabel37.getText()); 60 int num3 = Integer.parseInt(jf.jLabel38.getText()); 61 int num4 = Integer.parseInt(jf.jLabel39.getText()); 62 int num5 = Integer.parseInt(jf.jLabel48.getText()); 63 int num6 = Integer.parseInt(jf.jLabel49.getText()); 64 int num7 = Integer.parseInt(jf.jLabel50.getText()); 65 int num8 = Integer.parseInt(jf.jLabel51.getText()); 66 67 switch (JFrameMain.index) { 68 case 5: 69 case 10: 70 case 16: 71 case 22: 72 if(num8>0){ 73 jf.jguageNum.setText(Integer.toString(fenshu + 5 * num8)); 74 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 75 }else{ 76 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 77 } 78 break; 79 case 0: 80 case 11: 81 case 12: 82 if(num7>0){ 83 jf.jguageNum.setText(Integer.toString(fenshu + 10 * num7)); 84 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 85 }else{ 86 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 87 } 88 break; 89 case 6: 90 case 17: 91 case 18: 92 if(num6>0){ 93 jf.jguageNum.setText(Integer.toString(fenshu + 10 * num6)); 94 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 95 } else{ 96 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 97 } 98 break; 99 case 1: 100 case 13: 101 case 23: 102 if(num5>0){ 103 jf.jguageNum.setText(Integer.toString(fenshu + 10 * num5)); 104 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 105 } else{ 106 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 107 } 108 break; 109 case 7: 110 case 8: 111 if(num4>0){ 112 jf.jguageNum.setText(Integer.toString(fenshu + 20 * num4)); 113 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 114 }else{ 115 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 116 } 117 break; 118 case 19: 119 case 20: 120 if(num3>0){ 121 jf.jguageNum.setText(Integer.toString(fenshu + 20 * num3)); 122 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 123 }else{ 124 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 125 } 126 break; 127 case 14: 128 if(num2>0){ 129 jf.jguageNum.setText(Integer.toString(fenshu + 20 * num2)); 130 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 131 }else{ 132 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 133 } 134 break; 135 case 15: 136 if(num2>0){ 137 jf.jguageNum.setText(Integer.toString(fenshu + 40 * num2)); 138 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 139 }else{ 140 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 141 } 142 break; 143 case 2: 144 if(num1>0){ 145 jf.jguageNum.setText(Integer.toString(fenshu + 50 * num1)); 146 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 147 }else{ 148 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 149 } 150 break; 151 case 3: 152 if(num1>0){ 153 jf.jguageNum.setText(Integer.toString(fenshu+100*num1)); 154 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 155 }else{ 156 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 157 } 158 break; 159 case 4: 160 if(num1>0){ 161 jf.jguageNum.setText(Integer.toString(fenshu+25*num1)); 162 JOptionPane.showMessageDialog(null, "恭喜,您运气真好!", "提示", JOptionPane.INFORMATION_MESSAGE); 163 }else{ 164 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 165 } 166 break; 167 default: 168 JOptionPane.showMessageDialog(null, "继续努力,谢谢", "提示", JOptionPane.INFORMATION_MESSAGE); 169 170 } 171 this.jf.jLabel36.setText("0"); 172 this.jf.jLabel37.setText("0"); 173 this.jf.jLabel38.setText("0"); 174 this.jf.jLabel39.setText("0"); 175 this.jf.jLabel48.setText("0"); 176 this.jf.jLabel49.setText("0"); 177 this.jf.jLabel50.setText("0"); 178 this.jf.jLabel51.setText("0"); 179 this.jbu.setEnabled(true); 180 } 181}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

sql注入

反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o

Java修道之路,问鼎巅峰,我辈代码修仙法力齐天

<center<fontcolor00FF7Fsize5face"黑体"代码尽头谁为峰,一见秃头道成空。</font<center<fontcolor00FF00size5face"黑体"编程修真路破折,一步一劫渡飞升。</font众所周知,编程修真有八大境界:1.Javase练气筑基2.数据库结丹3.web前端元婴4.Jav