微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 { 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; /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the age */ public int getAge() { return age; } /** * @param age the age to set */ public void setAge(int age) { this.age = age; } /** * @return the dept */ public String getDept() { return dept; } /** * @param dept the dept to set */ 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包

可参考附录:

五 另外一种写法

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-*.*.*上一篇:使用feign服务调用添加Header参数下一篇:JSP彩色验证码 热门搜索

Java泛型 

数据类型详解 

数据库实例教程 

$$()函数应用实例 

java实例 

相关文章

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

2021-09-10阅读(3154)评论(0)推荐()

这篇文章主要介绍了Java泛型与数据库应用,结合实例形式详细分析了java继承泛型类实现增删改查操作相关实现技巧,需要的朋友可以参考下

Java泛型类与泛型方法的定义详解

2021-10-19阅读(7458)评论(0)推荐()

这篇文章主要介绍了Java泛型类与泛型方法的定义,结合实例形式详细分析了java泛型类与泛型方法定义、用法及相关操作注意事项,需要的朋友可以参考下

详解Java泛型及其应用

2021-11-15阅读(8373)评论(0)推荐()

这篇文章主要介绍了Java泛型及其应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Java泛型定义与用法实例详解

2021-10-12阅读(3173)评论(0)推荐()

这篇文章主要介绍了Java泛型定义与用法,结合实例形式较为详细的分析了Java中泛型的概念、原理、定义、使用方法及相关操作注意事项,需要的朋友可以参考下

Java泛型定义与用法入门示例

2021-09-10阅读(6157)评论(0)推荐()

这篇文章主要介绍了Java泛型定义与用法,结合实例形式分析了java泛型的功能、定义、应用场景及相关使用注意事项,需要的朋友可以参考下

Java中泛型使用实例详解

2021-10-06阅读(7601)评论(0)推荐()

这篇文章主要介绍了Java中泛型使用实例详解的相关资料,需要的朋友可以参考下

java 用泛型参数类型构造数组详解及实例

2021-11-15阅读(7170)评论(0)推荐()

这篇文章主要介绍了java 用泛型参数类型构造数组详解及实例的相关资料,需要的朋友可以参考下

取消

有人回复邮件通知

提交评论

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐