Java泛型与数据库应用实例详解泛型与数据库应用实例详解
主要介绍了Java泛型与数据库应用,结合实例形式详细分析了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<T> {
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 ) {
}
评论0
最新资源