Java泛型与数据库应用实例详解

  

本文实例讲述了Java泛型与数据库应用。分享给大家供大家参考,具体如下:

  

<强>一点睛

  扩展

BaseDao定义了基本的数据库增删查改,之后可以继承该泛型类,实现各自的增删查改,或者使用超类的增删查改,同时每个继承类还能增加自己的操作。

  

<强>二实战

  

1 BaseDao.java         进口java.lang.reflect.Field;   进口java.sql.Connection;   进口java.sql.DriverManager;   进口java.sql.PreparedStatement;   公开课BaseDao{   连接连接;   PreparedStatement pStatement;   字符串urlString=" jdbc: mysql://localhost: 3306/学生# 63;useUnicode=true& characterEncoding=UTF8 ";   字符串drivString=癱om.mysql.jdbc.Driver”;   空白OpenDB () {   尝试{   如果(连接==null) {   forname (drivString);   这一点。连接=DriverManager。getConnection (urlString,“根”,“123456”);   }   }捕捉(异常e) {   e.printStackTrace ();   }   }   空白CloseDB () {   尝试{   如果(pStatement !=null) pStatement.close ();   如果(连接!=null) connection.close ();   }捕捉(异常e) {   e.printStackTrace ();   }   }   公共空间保存(T T) {   OpenDB ();   字符串表=" ";   字符串是="插入";   尝试{   表=t.getClass () .getSimpleName ();   .getDeclaredFields领域[]字段=t.getClass () ();   是+=表;   字符串sqlNameString=" ";   字符串sqlValString=" ";   (字段字段:字段){   sqlNameString +=field.getName () + ", ";   sqlValString +=& # 63;;   }   sqlNameString=sqlNameString。substring (0, sqlNameString.length () - 1);   sqlValString=sqlValString。substring (0, sqlValString.length () - 1);   pStatement=连接。prepareStatement(主题是+”(“+ sqlNameString +”)值(+ sqlValString +) ");   int n=1;   (字段字段:字段){   field.setAccessible(真正的);   System.out.println (field.get (t) .toString ());   pStatement。setString (n, field.get (t) .toString ());   n + +;   }   pStatement.executeUpdate ();   CloseDB ();   }捕捉(异常e) {   e.printStackTrace ();   CloseDB ();   }   }   公共空间德尔(T T) {   }   公共空间更新(T T) {   }   公共空间搜索(T T) {   }   }      之前      2 StudentDao.java

        公开课StudentDao延伸BaseDao{   }      之前      3 TeacherDao.java

        公开课TeacherDao延伸BaseDao{   }      之前      4 Student.java

        公开课学生{   公共字符串名称;   公共int年龄;   公共字符串部门;/* *   * @return名称   */公共字符串getName () {   返回名称;   }/* *   * @param名称设置的名称   */公共空间setName(字符串名称){   this.name=名称;   }/* *   * @return年龄   */公共int getAge () {   返回年龄;   }/* *   * @param年龄年龄设置   */公共空间setAge (int年龄){   这一点。年龄=年龄;   }/* *   * @return部门   */公共字符串getDept () {   返回部门;   }/* *   * @param部门设置的部门   */公共空间setDept(字符串部门){   this.dept=部门;   }   }      之前      5 Teacher.java

        公开课的老师{   }      之前      6 TestDao.java

        公开课TestDao {   公共静态void main (String [] args) {   System.out.println (“ok”);   学生学生=new ();   stud.age=20;   stud.name=" zhangsan”;   stud.dept=凹扑慊?   StudentDao sd=new StudentDao ();   sd.Save(螺栓);   System.out.println (stud.dept);   }   }      之前      

<强>三运行

  
  


  zhangsan
  20
  计算机
  计算机

     

癑ava泛型与数据库应用实例详解"

  

<强>四怎样在想法中导入jar包

  

可参考附录:想法连接数据库(导入jar包)

  

<强>五另外一种写法

  

StudentDao.java         公开课StudentDao扩展BaseDao{//这里的米可以是任意合法标识符   }      

Java泛型与数据库应用实例详解