本文实例讲述了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
计算机
计算机
<强>四怎样在想法中导入jar包强>
可参考附录:想法连接数据库(导入jar包)
<强>五另外一种写法强>
StudentDao.java
公开课StudentDao扩展BaseDao {//这里的米可以是任意合法标识符 } Java泛型与数据库应用实例详解