2011年2月21日第一堂课(新来的老师哦!!!)

今天是我们开课的第一天,又要换讲师了,上半年换讲师已经换了3、4个,每当熟悉这个老师的代码要求一旦换老师又得按他的风格去写,很是麻烦,不过这样虽然很烦细想起来还是挺好的,至少这样可以找到适合自己的风格。今天来的这个老师和我是同姓都是陈,也许我们学生真的是井底之蛙,当老师讲起一套套框架,一套套知识,自己竟然……(不说了!)

今天老师讲的是单态模式,所谓的单态模式就是: 1、必须有私有静态的成员变量 2、有私有的构造器 3、有公有返回私有的静态的成员变量方法   我的理解呢就是使用单态模式可避免 Java类被多次实例化,让相同类的全部实例共享。

代码如下:

Code:
  1. package db.util;   
  2.   
  3. import java.sql.*;   
  4.   
  5. /**  
  6.  * 单态模式: 1、必须有私有静态的成员变量 2、私有的构造器 3、公有返回私有的静态的成员变量方法  
  7.  *   
  8.  */  
  9.   
  10. public class DBConn {   
  11.   
  12.     //创建私有静态的成员变量   
  13.     private static Connection conn;   
  14.   
  15.        
  16.     //创建一个私有的构造器   
  17.     private DBConn() {   
  18.   
  19.     }   
  20.   
  21.     //创建一个静态的公有的返回静态的成员变量的一个实例的方法   
  22.     public static Connection getDBconn() {   
  23.         if (conn == null) {   
  24.             try {   
  25.                 System.out.println("-----------------数据库加载驱动并创建连接开始"+System.currentTimeMillis());   
  26.                 Class.forName("com.mysql.jdbc.Driver");   
  27.                 conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/db","root","root");   
  28.                 System.out.println("-----------------数据库加载驱动并创建连接结束"+System.currentTimeMillis());   
  29.             } catch (Exception e) {   
  30.                 // TODO Auto-generated catch block   
  31.                 e.printStackTrace();   
  32.             }   
  33.         }   
  34.         return conn;   
  35.     }   
  36.   
  37.        
  38.     public static void main(String[] args) {   
  39. //      DBConn.getDBconn();   
  40.         DBConn db = new DBConn();   
  41.         db.getDBconn();   
  42.            
  43.            
  44.         DBConn db1 = new DBConn();   
  45.         db1.getDBconn();   
  46.            
  47.         DBConn.getDBconn();   
  48.     }   
  49. }   

重点是40-47行,调用了三次但是它只实例化了一次。

接着呢讲了实现数据库的增删改查,很悲哀的是很多代码都不记得了,原来只是封装好了一次性调用,当在漠然回首的时候,我的个亲娘四舅奶奶,基本忘光了,看来初学者长时间不看代码都会forget的,好在今天拾回来了。

这是我写的:

Code:
  1. package dao;   
  2.   
  3. import java.sql.*;   
  4. import java.util.ArrayList;   
  5. import java.util.List;   
  6.   
  7. import db.DBConn;   
  8.   
  9. import bean.Student;   
  10.   
  11. public class StudentDaoImpl implements StudentDao{   
  12.   
  13.     private Connection conn;   
  14.        
  15.     private PreparedStatement pstmt;   
  16.        
  17.     private ResultSet rs;   
  18.        
  19.     private boolean falg=false;   
  20.        
  21.     public boolean Insert(Student stu){   //增
  22.         conn=DBConn.getDBconn();   
  23.         String sql="insert into student(name,age,qq) value(?,?,?)";   
  24.         try {   
  25.             pstmt = conn.prepareStatement(sql);   
  26.             pstmt.setString(1,stu.getName());   
  27.             pstmt.setInt(2, stu.getAge());   
  28.             pstmt.setInt(3, stu.getQq());   
  29.             int s=pstmt.executeUpdate();   
  30.             if(s>0){   
  31.                 falg=true;   
  32.             }   
  33.         } catch (SQLException e) {   
  34.             // TODO Auto-generated catch block   
  35.             e.printStackTrace();   
  36.         }finally{   
  37.                
  38.             try {   
  39.                 pstmt.close();   
  40.             } catch (SQLException e) {   
  41.                 // TODO Auto-generated catch block   
  42.                 e.printStackTrace();   
  43.             }   
  44.                
  45.                
  46.         }   
  47.         return falg;   
  48.     }   
  49.   
  50.     @Override  
  51.     public List<Student> All() {   //查寻所有
  52.         List<Student> stuall= new ArrayList<Student>();   
  53.         conn=DBConn.getDBconn();   
  54.         String sql="select * from student";   
  55.         try {   
  56.             pstmt = conn.prepareStatement(sql);   
  57.             rs = pstmt.executeQuery();   
  58.             while(rs.next()){   
  59.                 Student stu=new Student();   
  60.                 stu.setName(rs.getString("name"));   
  61.                 stu.setAge(rs.getInt("age"));   
  62.                 stu.setAge(rs.getInt("qq"));   
  63.                 stuall.add(stu);   
  64.             }   
  65.                
  66.         } catch (SQLException e) {   
  67.             // TODO Auto-generated catch block   
  68.             e.printStackTrace();   
  69.         }finally{   
  70.                
  71.             try {   
  72.                 rs.close();   
  73.                 pstmt.close();   
  74.             } catch (SQLException e) {   
  75.                 // TODO Auto-generated catch block   
  76.                 e.printStackTrace();   
  77.             }   
  78.                
  79.                
  80.         }   
  81.         return stuall;   
  82.     }   
  83.     @Override  
  84.     public boolean delete(Student stu,int id) {   //删除
  85.         conn=DBConn.getDBconn();   
  86.         String sql="delete from student where id="+id;   
  87.         try {   
  88.             pstmt = conn.prepareStatement(sql);   
  89.             int s=pstmt.executeUpdate();   
  90.             if(s>0){   
  91.                 falg=true;   
  92.             }   
  93.         } catch (SQLException e) {   
  94.             // TODO Auto-generated catch block   
  95.             e.printStackTrace();   
  96.         }finally{   
  97.                
  98.             try {   
  99.                 pstmt.close();   
  100.             } catch (SQLException e) {   
  101.                 // TODO Auto-generated catch block   
  102.                 e.printStackTrace();   
  103.             }   
  104.         }   
  105.         return falg;   
  106.     }   
  107.     @Override  
  108.     public boolean update(Student stu, String name, int age, int qq,int id) {   //修改
  109.         conn=DBConn.getDBconn();   
  110.         String sql="update student set name='" + name +"',age='"+age+"',qq='"+qq+"' where id='" + id + "'";   
  111.         try {   
  112.             pstmt = conn.prepareStatement(sql);   
  113.             pstmt.execute();   
  114.             falg=true;   
  115.         } catch (SQLException e) {   
  116.             // TODO Auto-generated catch block   
  117.             e.printStackTrace();   
  118.         }finally{   
  119.                
  120.             try {   
  121.                 pstmt.close();   
  122.             } catch (SQLException e) {   
  123.                 // TODO Auto-generated catch block   
  124.                 e.printStackTrace();   
  125.             }   
  126.         }   
  127.         return falg;   
  128.     }   
  129.     public static void main(String[] args){   
  130. //      for(int i=0;i<=10;i++){   
  131. //      Student stu=new Student("哦了",11,888);   
  132. //      StudentDaoImpl sdi=new StudentDaoImpl();   
  133. //      sdi.Insert(stu);   
  134. //      }   
  135.            
  136.         StudentDaoImpl sdi=new StudentDaoImpl();   
  137. //      List<Student> allstu=sdi.All();   
  138. //      for(Student all : allstu){   
  139. //          System.out.println(all.getAge());   
  140. //      }   
  141.         Student stu=new Student();   
  142.         //sdi.delete(stu,3);   
  143.         sdi.update(stu, "啊哈"12333335);   
  144.     }   
  145. }   

最后呢讲的就是网站用的最多的分页,以前做项目经常用到,不过今天又高级了一点,平常做的就是只有上一页,下一页,没有中间的页码1,2,3………………  其实也不怎么难  代码我就不晒了  我想你懂的!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值