`

个人感觉这个DAO实例写的还可以吧??呵呵

阅读更多
package org.tarena.shopping.dao;

import java.util.List;

import org.tarena.shopping.bean.Computer;

public interface ComputerDAO {
   
	public Computer findById(long id) throws Exception;
	
	public void update(long id,Computer cp) throws Exception;
	
	public void add(Computer cp) throws Exception;
	
	public void delete(long id) throws Exception;
	
	public List<Computer> findAll() throws Exception;
}



实现类:哎注释太少,没办法写多了感觉就没意思了

package org.tarena.shopping.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import org.tarena.shopping.bean.Computer;
import org.tarena.shopping.dao.ComputerDAO;
import org.tarena.shopping.util.DBUtil;
import org.tarena.shopping.util.FactoryUtil;

public class ComputerDAOImpl implements ComputerDAO {

	private Computer cp;
	private Connection conn;
	private PreparedStatement ps;
	
	public void add(Computer cp) throws Exception {

		conn = DBUtil.getConnection();
		String sql = "insert into stu_computer_22(name,description,pic,price) value(?,?,?,?)";
		ps =  conn.prepareStatement(sql);
		ps.setString(1, cp.getName());
		ps.setString(2, cp.getDescription());
		ps.setString(3, cp.getPic());
		ps.setDouble(4, cp.getPrice());
		ps.executeUpdate();
		
		DBUtil.closed(ps,conn);
	}

	public void delete(long id) throws Exception {

		conn = DBUtil.getConnection();
		String sql = "delete from stu_computer_22 where id=?";
		ps = conn.prepareStatement(sql);
		ps.setLong(1, id);
		ps.executeUpdate();
		
		DBUtil.closed(ps, conn);
	}

	public List<Computer> findAll() throws Exception {
		
		List<Computer> list = new ArrayList<Computer>();
		
		conn = DBUtil.getConnection();
		String sql = "select * from stu_computer_22 order by id asc";
		ps = conn.prepareStatement(sql);
		ResultSet rs = ps.executeQuery();
		while(rs.next()){
			cp = new Computer();
			cp.setId(rs.getLong("id"));
			cp.setName(rs.getString("name"));
			cp.setDescription(rs.getString("description"));
			cp.setPic(rs.getString("pic"));
			cp.setPrice(rs.getDouble("price"));
			list.add(cp);
		}
		rs.close();
		DBUtil.closed(ps, conn);
		return list;
	}

	public Computer findById(long id) throws Exception {

		conn = DBUtil.getConnection();
		String sql = "select * from stu_computer_22 where id=?";
		ps = conn.prepareStatement(sql);
		ps.setLong(1, id);
		ResultSet rs = ps.executeQuery();
		while(rs.next()){
			cp = new Computer();
			cp.setId(rs.getLong("id"));
			cp.setName(rs.getString("name"));
			cp.setDescription(rs.getString("description"));
			cp.setPic(rs.getString("pic"));
			cp.setPrice(rs.getDouble("price"));
		}
		rs.close();
		DBUtil.closed(ps, conn);
		return cp;
	}

	public void update(long id,Computer cpt) throws Exception {

		//如果不是数据库中查询得到的computer对象,那么就直接返回;
		if(id!=cpt.getId()) return;
		conn = DBUtil.getConnection();
		String sql = "update stu_computer_22 set name=?,description=?,pic=?,price=? where id=?";
		ps = conn.prepareStatement(sql);
		ps.setString(1, cpt.getName());
		ps.setString(2, cpt.getDescription());
		ps.setString(3, cpt.getPic());
		ps.setDouble(4, cpt.getPrice());
		ps.setLong(5, id);
		ps.executeUpdate();
		
		DBUtil.closed(ps, conn);
	}
       //测试的练习,测试还行都没问题,最后显示正常。
	public static void main(String[] args) throws Exception {
		ComputerDAO com = (ComputerDAO) FactoryUtil.getDAOInstance(ComputerDAO.class);
		List<Computer> list = com.findAll();
		
	
		for (Computer computer : list) {
			System.out.println(computer.getId()+",\t"
					+computer.getName()+",\t"
					+computer.getDescription()+",\t"
					+computer.getPic()+",\t"
					+computer.getPrice());
		}
	}
	
}

分享到:
评论

相关推荐

    web工程DAO实例

    在这个实例中,DAO层位于模型层,负责与数据库的交互。 在DAO设计模式中,每个DAO类通常对应数据库中的一个表或实体,提供了增删查改(CRUD)的基本操作。例如,对于一个名为`User`的数据表,我们可以创建一个`...

    spring boot服务器dao层实例化.rar_dao实例化_idea 实例ID_spring boot_spring b

    同时,我们还使用了`@Autowired`注解来注入`UserRepository`,这是Spring Data JPA提供的一个接口,可以简化数据库操作。 4. Spring Boot配置:在Spring Boot应用中,我们需要在主配置类(通常是`Application`类)...

    Java中Dao模式实例

    在这个实例中,我们将深入探讨DAO模式的原理、实现方式以及它在实际项目中的作用。 DAO模式的核心思想是创建一个独立于数据源的接口,该接口定义了对数据的操作,而接口的实现则负责具体的数据库交互。这样,当需要...

    JDBC-DAO实例

    **JDBC-DAO实例** 在Java开发中,JDBC(Java Database Connectivity)是连接数据库的标准API,它允许Java程序与各种数据库进行交互。DAO(Data Access Object)模式是一种设计模式,用于封装对数据库的所有访问,...

    Spring DAO入门实例

    总的来说,这个 Spring DAO 入门实例展示了如何在 Spring 环境下进行基本的数据库操作,包括数据表设计、Java 类映射、DAO 实现、配置文件以及测试。掌握这些基础,将有助于进一步学习和应用 Spring 框架的更多高级...

    DAO.net经典实例

    在这个"DAO.net经典实例"中,我们可以深入学习如何在.NET环境中利用C#语言实现DAO模式。 首先,DAO(数据访问对象)的核心思想是创建一个接口或抽象类,定义了一系列操作数据库的方法,如查询、插入、更新和删除。...

    DAO 设计模式经典实例

    通过这个实例,你可以看到DAO模式如何在实际项目中被应用,以及如何与其他设计模式(如工厂模式用于创建DAO实例)结合使用。理解并熟练运用DAO设计模式对于提升软件系统的质量至关重要。在实际开发中,可以根据项目...

    DAO涉及模式实例,源码

    在业务逻辑层,我们可以通过依赖注入或工厂获取DAO实例,进行数据操作: ```java public class UserService { private UserDao userDao; public UserService(DaoFactory daoFactory) { this.userDao = ...

    小型web程序实例DAO

    这个"小型web程序实例DAO"是一个教学或实践项目,它演示了如何在Web应用程序中使用DAO来处理数据存取操作。下面将详细介绍DAO模式以及在Web程序中的应用。 DAO模式的核心思想是将业务逻辑与数据存取操作分离,这样...

    反射完成多功能dao实例

    在本实例中,“反射完成多功能DAO实例”指的是利用Java反射机制来实现一个能够处理多个数据表的DAO(Data Access Object)层。DAO设计模式是将数据访问逻辑与业务逻辑分离,提高代码的可复用性和可测试性。 首先,...

    DAO编程实例

    ### DAO编程实例详解 #### 实例背景与需求分析 在当今科技高度发展的社会,电子设备与自动化技术已深入千家万户。为了满足现代家庭对于高效管理家庭物品的需求,某数据库应用软件开发公司计划研发一款家庭物品管理...

    泛型dao 泛型dao 泛型dao

    当然是用共通的DAO你需要对结果转型,转成你需要的bean,但这也比写那么多DAO强多了,你可以放下包袱,只关注你的业务逻辑。 如果你真能只用一个dao解决,那么祝贺你,你得到了一个虚拟数据层(高度抽象的数据接口)...

    VB6 DAO数据库操作实例

    除了基本的CRUD操作,DAO还支持更复杂的查询,如SQL语句和连接多个表。通过使用Recordset的`OpenRecordset`方法,我们可以执行带有参数的SQL查询,或者打开一个连接多个表的JOIN查询。 总的来说,VB6与DAO的结合为...

    hibernate+dao实例

    标题中的“hibernate+dao实例”指的是使用Hibernate框架与数据访问对象(DAO)模式进行数据库操作的一个实际应用。在Java开发中,Hibernate是一个流行的对象关系映射(ORM)工具,它允许开发者用面向对象的方式来...

    实例95-DAO读写ACCESS文件.rar_C++ 读写access_access_access dao_c acce

    在这个实例"实例95-DAO读写ACCESS文件"中,我们将探讨如何使用C++与Access数据库进行数据的读取和写入。 首先,为了在C++中使用DAO,你需要包含相关的库文件,如`#include &lt;afxdao.h&gt;`,这是MFC(Microsoft ...

    核心实例2 DAO存取Access数据库

    在这个核心实例中,我们将深入探讨如何使用DAO来实现对Access数据库的操作,包括数据的读取、写入和更新。 **1. DAO的基本概念** DAO是一种对象模型,它为程序员提供了数据库操作的接口。通过创建DAO对象,我们可以...

    10个各种VC ado,dao,odbc数据库连接vc代码实例.rar

    "10个各种VC ado, dao, odbc数据库连接vc代码实例.rar" 是一个压缩包,其中包含了10个用于演示如何在VC项目中与不同数据库进行交互的源代码实例。这些实例涵盖了ADO(ActiveX Data Objects)、DAO(Data Access ...

    JSP直接获取dao层数据实例 java mysql jsp dao

    在这个实例中,我们将探讨如何在JSP中直接调用DAO层来获取MySQL数据库中的数据。这涉及到几个关键概念和技术,包括Java编程、SQL查询、JDBC(Java Database Connectivity)以及MVC(Model-View-Controller)设计模式...

    PHP_DAO_MYSQL php写的dao看起来还好

    它可能包含了如何实例化DAO对象、如何调用DAO方法以及如何处理返回的数据等内容。 在学习这些文件时,你需要关注以下几个关键知识点: 1. **DAO模式**:理解DAO模式的基本概念,它如何隔离业务逻辑和数据访问层,...

    ibatis的批量插入DAO实例

    至于压缩包中的"UC_12_VIT_HCS_用例规约_Vitality平安信用卡结算_数据上载_沈丹.doc",文件名称表明这可能是一个软件用例规约文档,与Ibatis批量插入DAO实例的具体实现没有直接关系,因此不在此详述。总的来说,理解...

Global site tag (gtag.js) - Google Analytics