`

泛型:泛型在DAO中的应用

    博客分类:
  • java
阅读更多

1、com.atguigu.generic.BaseDao.java

 

package com.atguigu.generic;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 泛型在DAO中的应用
 * @author LiPiaoShui
 */
public class BaseDao<T> {

	//存储数据的Map
	private Map<String,T> map = new HashMap<String,T>();
	
	/**
	 * 添加信息
	 */
	public void save(String id,T t) {
		map.put(id, t);
	}
	
	/**
	 * 删除信息 
	 */
	public void delete(String id) {
		map.remove(id);
	}
	
	/**
	 * 修改信息 
	 */
	public void update(String id, T t) {
		map.put(id, t);
	}
	
	/**
	 * 获取信息
	 */
	public T get(String id) {
		return map.get(id);
	}
	
	/**
	 * 获取全部信息 
	 */
	public List<T> getAll() {
		List<T> list = new ArrayList<T>();
		for(String key:map.keySet()) {
			list.add(map.get(key));
		}
		return list;
	}
	
}

 

2、com.atguigu.generic.Employee.java

 

package com.atguigu.generic;

/**
 * 雇员信息
 * @author LiPiaoShui
 */
public class Employee {

	private int id;
	private String name;
	private int age;
	
	public Employee() {
		super();
	}
	public Employee(int id, String name, int age) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	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;
	}
	@Override
	public String toString() {
		return "Employee [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
	
}

 

3、com.atguigu.generic.EmployeeDao.java

 

package com.atguigu.generic;

/**
 * 雇员信息操作DAO
 * @author LiPiaoShui
 */
public class EmployeeDao extends BaseDao<Employee> {

}

 

4、测试用例

 

//7.泛型在DAO中的应用
@Test
public void test7() {
	//创建雇员信息
	Employee emp1 = new Employee(1,"张三", 30);
	Employee emp2 = new Employee(2,"李四", 40);
	Employee emp3 = new Employee(3,"王五", 50);
	
	//创建EmployeeDao
	EmployeeDao empDao = new EmployeeDao();
	
	//添加雇员信息
	empDao.save("1001", emp1);
	empDao.save("1002", emp2);
	empDao.save("1003", emp3);
	
	//查看雇员信息
	Employee emp = empDao.get("1002");
	//输出:Employee [id=2, name=李四, age=40]
	System.out.println(emp);
	
	//查看全部雇员信息
	List<Employee> empList = empDao.getAll();
	for(Employee e:empList) {
		//输出:Employee [id=3, name=王五, age=50]
		//    Employee [id=1, name=张三, age=30]
		//    Employee [id=2, name=李四, age=40]
		System.out.println(e);
	}
	
	//修改雇员信息
	emp2.setName("李四AAA");
	empDao.update("1002", emp2);
	
	//删除雇员信息
	empDao.delete("1001");
	
	//查看全部雇员信息
	List<Employee> empList2 = empDao.getAll();
	for(Employee e:empList2) {
		//输出:Employee [id=3, name=王五, age=50]
		//    Employee [id=2, name=李四AAA, age=40]
		System.out.println(e);
	}
	
}

 

 

分享到:
评论

相关推荐

    泛型dao 泛型dao 泛型dao

    dao接口 : PersonDAO extends GenericDao, Integer&gt; 可以不写代码,方法已经在父类泛型dao里了,这里为了说明:可扩展添加 findByNameExact()方法 子类的附加方法。 泛型daoimpl :GenericDaoImpl, ID extends ...

    java 基于泛型与反射的通用 DAO

    在Java编程语言中,泛型和反射是两个非常重要的...这种设计模式在实际开发中非常常见,尤其是在企业级应用中,能够有效地降低代码重复,提高开发效率。同时,通过接口定义,使得不同DAO之间的交互变得更加简单和规范。

    泛型dao

    【泛型DAO】是一种在Java开发中常见的设计模式,它利用了Java泛型特性来提高代码的可重用性和类型安全性。在Java中,DAO(Data Access Object)模式是用来封装对数据库的操作,将业务逻辑与数据访问逻辑分离,使得...

    经典泛型dao层代码,非常好用简易

    ### 泛型DAO层在SSH框架中的应用与详解 #### 引言 在现代软件开发中,特别是基于Java的企业级应用开发中,DAO(Data Access Object)层的设计扮演着至关重要的角色。它作为业务逻辑层与数据持久层之间的桥梁,承担...

    泛型DAO模式在Java Web开发中的应用.pdf

    泛型DAO模式在Java Web开发中的应用 摘要: 泛型DAO模式是Java Web开发中的一种重要模式,它可以提高数据访问代码的类型安全性和可读性。该模式可以与Struts、Spring和JPA框架集成,实现用户管理系统的开发。通过...

    基于泛型的通用Dao接口和hibernate的实现

    3. 代码重用性高:泛型Dao接口可以在不同的项目中重用,减少代码冗余。 Hibernate对泛型Dao接口的实现: Hibernate 是一个流行的持久层框架,可以与泛型Dao接口集成,实现数据访问的持久化。 Hibernate 对泛型Dao...

    Java 中利用泛型和反射机制抽象DAO的实例

    在实体DAO类中,我们可以扩展泛型DAO基类,从而自动拥有基类的数据操作功能。例如,在`ForumHibernateDao2`类中,我们继承自`HibernateBaseDao&lt;Forum&gt;`,并实现了`ForumDao`接口。然后,我们可以提供特殊的功能,...

    一个很好的通用泛型dao(含源码)

    而泛型DAO是一个类型安全的,代码精简的设计模式(相对于传统DAO),尤其在DAO组件数量庞大的时候,代码量的减少更加明显。 泛型DAO的核心是定义一个GenericDao接口,声明基本的CRUD操作: 用hibernate作为持久化...

    Hibernate泛型Dao

    【标题】"Hibernate泛型Dao"是针对Java开发中的数据持久化框架Hibernate的一个高级应用,主要目的是为了提高代码的复用性和简洁性。在传统的Hibernate使用中,针对每个实体类,我们都需要创建一个对应的Dao(Data ...

    ssh通用泛型DAO

    在这个主题中,我们将深入探讨"ssh通用泛型DAO"的相关知识点。 首先,我们来了解"BaseHibernateDAO"。BaseHibernateDAO是基于Hibernate框架的一个基类,它封装了常见的数据库操作,如增删查改(CRUD)。通过继承这...

    Java泛型的用法及T.class的获取过程解析

    * DAO设计模式:泛型可以用于DAO设计模式中,例如BaseHibernateEntityDao等。 * 工具类:泛型可以用于工具类中,例如工具类的静态方法可以使用泛型。 五、结论 泛型是Java编程语言中的一种重要特性,它可以提高...

    泛型通用DAO,可以很简化DAO层的代码

    在泛型DAO中,反射主要用于在运行时动态获取数据实体的属性,以便进行CRUD操作。例如,通过反射可以找到实体类的`id`字段,并根据这个字段执行SQL查询。 `MyTestDao`可能是实现泛型DAO的一个具体示例,它可能包含了...

    S2SH整合例子 注解配置 JSON 泛型Dao

    6. **泛型Dao**:在Java开发中,泛型Dao(Generic Dao)是一种设计模式,用于减少重复的数据库操作代码。通过定义一个通用的Dao接口,可以实现对不同类型的实体对象进行CRUD操作,提高了代码的复用性和可维护性。...

    Hibernate泛型DAO(结合spring模板支持)

    以HibernateTemplate为例,我们可以这样实现泛型DAO: ```java public abstract class HibernateGenericDao&lt;T&gt; implements GenericDao&lt;T&gt; { private SessionFactory sessionFactory; public ...

    最新修订:基于java泛型的通用DAO(CURD)实现

    DAO对象一般都包括CRUD动作,如果在一个应用中,大量的重复定义这些CRUD方法,会占用大量的开发时间及测试时间,那在这一方面,有没有改进的方法呢? 其实,利用Java面向对象的基本特性及JDK5新引入的泛型语法,我们...

    Java Web程序运用中泛型DAO的作用.zip

    总的来说,泛型DAO在Java Web程序中的应用,不仅可以提高代码的质量,降低出错的可能性,还能让开发者更专注于业务逻辑,而非重复的数据库操作代码。它是现代企业级应用开发中不可或缺的一部分,提升了开发效率和...

    JdbcTemplate通用泛型Dao实现

    本文将深入探讨`JdbcTemplate`通用泛型Dao实现的相关知识点,帮助开发者更好地理解和应用这一技术。 首先,让我们了解什么是`JdbcTemplate`。它是Spring框架的一部分,用于处理SQL操作。`JdbcTemplate`提供了一组...

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

    在`我设计的泛型DAO.jpg`中,可能展示了这个设计的类图或者代码结构,进一步解释了各个组件如何协作以实现泛型DAO的功能。 总之,这种设计模式充分利用了Spring的注解驱动和Hibernate的ORM能力,降低了代码的复杂性...

Global site tag (gtag.js) - Google Analytics