栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

一 点睛

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

二 实战

1 baseDao.java

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class baseDao {
  Connection connection;
  PreparedStatement pStatement;
  String urlString = "jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=UTF8";
  String drivString = "com.mysql.jdbc.Driver";
  void OpenDB() {
    try {
      if (connection == null) {
 Class.forName(drivString);
 this.connection = DriverManager.getConnection(urlString, "root", "123456");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  void CloseDB() {
    try {
      if (pStatement != null) pStatement.close();
      if (connection != null) connection.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public void Save( T t ) {
    OpenDB();
    String table = "";
    String sqlString = "insert into ";
    try {
      table = t.getClass().getSimpleName();
      Field[] fields = t.getClass().getDeclaredFields();
      sqlString += table;
      String sqlNameString = "";
      String sqlValString = "";
      for (Field field : fields) {
 sqlNameString += field.getName() + ",";
 sqlValString += "?,";
      }
      sqlNameString = sqlNameString.substring(0, sqlNameString.length() - 1);
      sqlValString = sqlValString.substring(0, sqlValString.length() - 1);
      pStatement = connection.prepareStatement(sqlString + " (" + sqlNameString + ") values (" + sqlValString + ")");
      int n = 1;
      for (Field field : fields) {
 field.setAccessible(true);
 System.out.println(field.get(t).toString());
 pStatement.setString(n, field.get(t).toString());
 n++;
      }
      pStatement.executeUpdate();
      CloseDB();
    } catch (Exception e) {
      e.printStackTrace();
      CloseDB();
    }
  }
  public void Del( T t ) {
  }
  public void Update( T t ) {
  }
  public void Search( T t ) {
  }
}

2 StudentDao.java

public class StudentDao extends baseDao {
}

3 TeacherDao.java

public class TeacherDao extends baseDao {
}

4 Student.java

public class Student {
  public String name;
  public int age;
  public String dept;
  
  public String getName() {
   return name;
  }
  
  public void setName(String name) {
   this.name = name;
  }
  
  public int getAge() {
   return age;
  }
  
  public void setAge(int age) {
   this.age = age;
  }
  
  public String getDept() {
   return dept;
  }
  
  public void setDept(String dept) {
   this.dept = dept;
  }
}

5 Teacher.java

public class Teacher {
}

6 TestDao.java

public class TestDao {
  public static void main(String[] args) {
   System.out.println("ok");
   Student stud=new Student();
   stud.age=20;
   stud.name="zhangsan";
   stud.dept="computer";
   StudentDao sd=new StudentDao();
   sd.Save(stud);
   System.out.println(stud.dept);
  }
}

三 运行

ok
zhangsan
20
computer
computer

四 怎样在IDEA中导入jar包

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

五 另外一种写法

StudentDao.java

public class StudentDao extends baseDao {    // 这里的M可以是任意合法标识符
}

TestDao.java

public class TestDao {
 public static void main(String[] args) {
 System.out.println("ok");
 Student stud=new Student();
 stud.age=20;
 stud.name="zhangsan2";
 stud.dept="computer";
 StudentDao sd=new StudentDao<>();  // 这里要说明是Student
 sd.Save(stud);
 System.out.println(stud.dept);
 TeacherDao te= new TeacherDao<>();
 }
}

附:IDEA连接数据库(导入jar包)

Java连接 MySQL 需要驱动包,最新版下载地址为:http://dev.mysql.com/downloads/connector/j/,解压后得到jar库文件,然后在对应的项目中导入该库文件。

IDEA导入jar过程:新建文件夹(名称任意,这里使用Lib),导入mysql-connector-java-*.*.**-bin.jar如下图

右键点击jar文件,然后点击Add as Library,jar导入成功。后面百度java使用mysql即有详细的访问mysql的代码。

ecplice导入jar过程:新建文件夹(名称任意,这里使用Lib),导入mysql-connector-java-*.*.**-bin.jar如下图

右键-》buildpath-》add to build path

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/137408.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号