`
sdh88hf
  • 浏览: 69843 次
  • 性别: Icon_minigender_1
  • 来自: 绍兴
社区版块
存档分类
最新评论

数据库连接泛型基类创建

 
阅读更多
记录 以便以后参考----

基类代码
public class GenericDaoImpl<T extends IdEntity> extends HibernateDaoSupport implements GenericDao<T>

GenericDaoImpl<T extends IdEntity> 声明继承GenericDaoImpl的类必须指定一个对象,并且这个对象必须继承IdEntity
extends HibernateDaoSupport 不多说
implements GenericDao<T> 定义了增删改的方法 并且指定的了泛型对象 其内部定义一些通用方法(curd)列:
//这就是泛型的好处,你指定哪个对象,他就让hibernate执行哪个对象的操作
void insert(T entity);


再看看如何在当前GenericDaoImpl类在被实例化后获取子类指定哪个泛型对象呢?
/**
	 * 数据实体类型
	 */
	protected Class<T> entityClass;

	/**
	 * 默认构造函数
	 */
	@SuppressWarnings("unchecked")
	public GenericDaoImpl() {
		Type superClassType = getClass().getGenericSuperclass();

		if (superClassType instanceof ParameterizedType) {
			Type[] paramTypes = ((ParameterizedType) superClassType).getActualTypeArguments();
			this.entityClass = (Class<T>) paramTypes[0];
		}
	}
分享到:
评论

相关推荐

    C#高效数据库连接池源码

    在C#中,可以使用`System.Data.Common.DbConnection`作为基类,创建自定义的数据库连接类,然后在此基础上实现连接池逻辑。 4. **源码分析**: `ConnectionPool.sln`是解决方案文件,包含项目的整体配置和依赖关系...

    c#.net 抽象数据库连接类(适合所有数据库)

    在C#.NET编程中,创建一个抽象的数据库连接类是一个重要的设计模式,它允许开发者编写通用的代码来处理各种不同的数据库系统,如SQL Server、MySQL、Oracle等。这个设计模式通常被称为“数据提供者”(DataProvider...

    泛型解决方案

    6. 数据库连接管理:泛型结合依赖注入(DI)框架,可以创建一个泛型的数据库连接管理类,使得数据库连接的创建、关闭和事务管理更加简便和统一。 7. 性能优化:泛型在编译时会进行类型擦除,但通过泛型,可以避免在...

    数据访问基类的设计方法

    2. **连接管理**:数据访问基类应负责数据库连接的创建、管理和关闭。这通常包括打开和关闭连接、处理连接池等。使用连接池可以提高性能,避免频繁地创建和销毁连接。 3. **事务处理**:在处理多条数据库操作时,...

    java增删改查JDBC封装类(泛型封装)

    - 可能包含如`getConnection()`获取数据库连接,`executeQuery(String sql, ResultSetHandler&lt;T&gt; handler)`执行查询并处理结果集,`executeUpdate(String sql)`执行更新操作等方法。 - 使用泛型可以使其支持不同...

    Hibernate泛型Dao

    这里的"数据库配置"通常包括Hibernate的配置文件(如hibernate.cfg.xml),其中包含了数据库连接信息、方言设置等关键参数。 【标签】"Hibernate"是Java领域广泛使用的ORM(Object-Relational Mapping)框架,它将...

    Python中泛型函数应用案例.pdf

    例如,当你有四个客户端类分别管理标准流、文件、Twisted transports和数据库连接时,如果你使用了Mixin,那么每个类都需要混合StdIOMixin,这会使得文档的编写和管理变得复杂。 相比之下,泛型函数能够在不改变类...

    DBUtils模拟用泛型实现

    DBUtils是一款经典的Java数据库连接工具库,它简化了数据库操作,提供了一套便捷的API来执行SQL语句、处理结果集等。在这个“DBUtils模拟用泛型实现”的主题中,我们将探讨如何通过泛型技术进一步优化DBUtils的使用...

    大家看看我设计的泛型DAO(使用Spring的Anotation和Hibernate)

    在IT行业中,数据库操作是应用程序的核心部分,而DAO(Data Access Object)模式是连接业务逻辑层与数据存储层的关键。本篇文章将深入探讨一个使用Spring注解和Hibernate实现的泛型DAO设计,以提高代码的复用性和可...

    C#基类库大全+完全手册+控件库

    8. `System.Data`和`System.Data.SqlClient`命名空间:处理数据库操作,提供了ADO.NET框架,允许与SQL Server等数据库进行交互。 在《C#基类库大全+完全手册+控件库》中,你应该能找到关于这些命名空间及其包含的类...

    【ASP.NET编程知识】基于Entity Framework自定义分页效果.docx

    `AbstractRepository&lt;T&gt;`是一个泛型基类,实现了基本的CRUD(创建、读取、更新、删除)操作。`T`代表要操作的数据实体类型。泛型Repository模式是一种设计模式,它抽象了数据访问层的操作,使得业务逻辑层可以与...

    ssh数据库基本操作封装

    这通常涉及到Spring的IoC(Inversion of Control)容器来管理数据库连接和事务,Hibernate作为ORM(Object-Relational Mapping)工具处理数据对象与数据库表之间的映射,以及Struts作为MVC(Model-View-Controller)...

    TypeScript封装统一操作Mysql Mongodb Mssql的底层类库.zip

    10. **设计模式**:在封装数据库操作的类库中,可能会应用到工厂模式(用于创建数据库连接)、单例模式(确保数据库连接只被创建一次)等设计模式,以优化代码结构和性能。 总的来说,这个项目展示了如何使用...

    c++超市管理系统 数据库作业

    2. 数据库连接:C++程序需要连接到数据库,这通常通过数据库API如ODBC(Open Database Connectivity)或MySQL Connector/C++完成。 3. 数据库设计:需要设计合理的数据库模式,如ER图(实体关系图),以表示商品、...

    C#基类库大全

    9. **数据访问**:ADO.NET是.NET框架中用于数据库交互的部分,包括SqlConnection、SqlCommand、SqlDataReader等类,支持SQL Server等数据库的连接、查询和操作。 10. **UI框架**:Windows Forms和WPF(Windows ...

    解析ABP框架中的事务处理和工作单元_.docx

    在这个例子中,`NhRepositoryBase`是一个泛型基类,它已经包含了基本的事务管理和连接管理逻辑。因此,在实现具体的数据访问逻辑时,无需关心底层的连接管理和事务处理细节。 ##### 4.2 应用服务层的事务管理 应用...

    my sql和MS SQLSERVER访问

    对于存储过程的支持,你可以创建一个泛型方法`ExecuteStoredProcedure`,通过传入存储过程名和参数列表,调用`SqlCommand`的`ExecuteReader`或`ExecuteScalar`方法执行存储过程,并根据需要返回结果。 在实现过程中...

    LINQ断开连接模式的ASP.NET数据层基类

    这种模式提高了系统的性能,因为它减少了数据库连接的创建和销毁次数。在ASP.NET中,通过使用LINQ to SQL或Entity Framework,可以轻松实现断开连接的数据访问。 在标题中提到的抽象基类,通常包含了对数据库的基本...

    hibenate 对DAO的封装

    基类会提供如`getSession()`和`closeSession()`等方法,确保数据库连接的正确开启和关闭。 然后,用户只需要为自己的实体类创建一个继承自泛型DAO模板的接口,即可获得CRUD操作。例如,对于一个名为`User`的实体类...

    基于C#的winfom空气质量检测系统(源码+数据库).zip

    然后,关键的一步是修改数据库连接字符串,确保应用程序能够正确地与数据库建立连接,通常是修改配置文件(如app.config或web.config)中的相关条目,以匹配用户的数据库服务器、用户名、密码和实例信息。...

Global site tag (gtag.js) - Google Analytics