`
ccx20060810501
  • 浏览: 33996 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

一个经典的数据库访问层实现

阅读更多

这是本人通过各种优化技巧而实现的一个经典的数据库访问层:

数据源用的事DBCP开源包。

 

 

使用Spring框架提供的JdbcTemplate替代我写的数据库访问层是一个非常不错的选择,因为我差不多是按JdbcTemplate的思想写的,不过和它比起来还是有很大的差距,所以实际项目中我也是用JdbcTemplate,而不是自己写。

public class UserDaoSpringImpl implements UserDao {
	private SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(JdbcUtils.getMyDataSource());

	@Override
	public void addUser(User user) {
		String sql = "insert into user(name,password,birthday,money) values(:name,:password,:birthday,:money)";
		SqlParameterSource paramSource = new BeanPropertySqlParameterSource(user);
		KeyHolder keyHolder = new GeneratedKeyHolder();
		this.simpleJdbcTemplate.getNamedParameterJdbcOperations().update(sql, paramSource, keyHolder);
		user.setId(keyHolder.getKey().longValue());
	}

	@Override
	public void delete(User user) {
		String sql = "delete from user where id=?";
		Object[] args = new Object[] { user.getId() };
		this.simpleJdbcTemplate.update(sql, args);
	}

	@Override
	public User findUser(String loginName, String password) {
		String sql = "select name,password,birthday,money from user where name=? and password=?";
		Object[] args = new Object[] { loginName, password };
		User user = (User) this.simpleJdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), args);
		return user;
	}

	@Override
	public User getUser(int userId) {
		String sql = "select id,name,password,birthday,money from user where id=?";
		Object[] args = new Object[] { userId };
		User user = (User) this.simpleJdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), args);
		return user;
	}

	@Override
	public String getUserName(int id) {
		String sql = "select name from user where id=?";
		String name = (String) this.simpleJdbcTemplate.queryForObject(sql, String.class, id);
		return name;
	}
	@Override
	public void update(User user) {
		String sql = "update user set name=:name,password=:password,birthday:=birthday,money=:money where id=:id";
		SqlParameterSource paramterSource = new BeanPropertySqlParameterSource(user);
		this.simpleJdbcTemplate.update(sql, paramterSource);
	}
}
分享到:
评论

相关推荐

    .net C# 数据库访问层

    本教程将重点介绍如何在Visual Studio 2008环境下创建一个C# .NET数据库访问层,以实现高效且可维护的数据访问。 首先,我们需要理解数据库访问层的作用。DAL作为业务逻辑层(BLL)和数据存储之间的隔离层,它的...

    一个比较通用的数据库访问层

    数据库访问层(Data Access Layer,DAL)是软件架构中的一个重要组成部分,主要负责处理应用程序与数据库之间的数据交互。在.NET框架中,C#语言通常被用来编写这种层,以实现高效、安全、可维护的数据库操作。这个名...

    数据库访问层的实现(一)——模板方法模式

    本篇文章将探讨如何利用设计模式中的模板方法模式来实现数据库访问层,以简化开发工作。 模板方法模式是一种行为设计模式,它定义了算法的骨架,并允许子类在不改变算法结构的情况下,对特定步骤进行重定义。在...

    Sharp_数据库访问层代码生成工具

    《Sharp_数据库访问层代码生成工具》是一款专为IT专业人士设计的强大工具,它极大地简化了数据库访问层(DAL)的开发工作。在软件工程中,数据库访问层是应用程序与数据库进行交互的重要组件,通常负责执行SQL查询、...

    C#数据库访问通用实现封装

    在C#编程中,数据库访问通用实现封装是一个重要的设计模式,它允许开发者通过统一的接口与各种类型的数据库进行交互,而无需关注底层数据库的具体实现。这样的设计提高了代码的可复用性和可维护性,同时也降低了项目...

    多种数据库访问接口实现

    通过抽象出一个统一的数据库访问接口,我们可以根据实际需求切换不同的数据库系统,降低了系统的耦合度,提高了代码的可维护性和扩展性。在实际开发中,还可以利用设计模式,如工厂模式来动态创建特定数据库的连接...

    数据库三层架构通用代码 访问层 数据库接口

    数据库三层架构是一种常见的软件设计模式,它将应用逻辑分离为三个独立的层次,分别是表示层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这样的设计提高了系统...

    C# 数据访问层封装

    在IT行业中,数据访问层(DAL)是软件架构中的一个重要组成部分,主要负责处理与数据库的交互,实现数据的存取操作。C#作为.NET框架的主要编程语言,提供了丰富的工具和库来构建高效的数据访问层。本示例"数据库管理...

    北大青鸟ACCP5.0 S2 .NET C#三层架构 三层+公共数据库访问层 代码实例

    压缩包内的文件“UserCheck(三层+公共数据库访问层)”可能是一个示例项目,展示了用户验证或管理的实现。在这个例子中,表现层可能会处理用户界面交互,业务逻辑层处理业务规则和计算,而数据访问层则负责与数据库...

    asp.net通用数据库访问层源码

    本源码包提供的是一个通用的数据库访问层(Data Access Layer,DAL),它是软件设计中的一个关键组件,旨在为应用程序提供一个抽象层,以简化对数据库的操作。 这个通用数据库访问层源码是用C#编程语言编写的,C#是...

    ado.net通用数据库访问层

    在创建一个通用数据库访问层时,这些组件会被巧妙地整合,以提供灵活且高效的数据库操作。 1. **DataSet**:这是离线数据存储,可以看作是一个内存中的数据库。它包含多个DataTable,可以进行数据操作而无需保持与...

    (三层 + 实体+公共数据库访问层)

    在实际开发中,三层架构结合实体和公共数据库访问层,可以有效地组织代码,实现低耦合、高内聚的设计原则。同时,这样的设计也有利于团队协作,因为每个开发者可以专注于自己负责的层次,减少了相互之间的干扰。此外...

    代码生成器---数据库访问层

    在本案例中,我们关注的是一个特别针对“数据库访问层”的代码生成器,它使用了T4模板技术,这是一种在C#开发环境中广泛采用的文本转换工具。 T4模板(Text Template Transformation Toolkit)是微软Visual Studio...

    asp.net通用数据库访问层源码.zip

    在ASP.NET中,通用数据库访问层(Generic Data Access Layer,简称DAL)是设计模式的一种应用,它为业务逻辑层(BLL)提供了一个标准化的方式来与数据库进行交互,实现了数据访问的抽象化,提高了代码的可重用性和可...

    ASP.NET源码——数据库访问层源码.zip

    通过分析这些源码,我们可以了解到如何在ASP.NET中设计和实现一个高效、灵活的数据库访问层。 1. ADO.NET:作为.NET Framework的一部分,ADO.NET提供了一组类库,用于与各种数据库进行交互。这些源码可能包含了...

    数据库访问抽象层PDO4You.zip

    它提供了一个抽象层来访问数据,不管您使用的是哪个数据 库,并确保有一个单独的对象实例/数据库连接。它可以连接到几个可能的SQL数据库使用可用的PDO驱动程序。目前它支持MySQL、 PostgreSQL、Oracle、Microsoft SQL ...

    Unity实现多数据库访问

    总结来说,这个项目提供了一个实例,演示了如何在Unity中利用依赖注入和仓储模式实现对MySQL和SQL Server的多数据库访问。通过学习和实践这个项目,开发者可以掌握在Unity环境下灵活管理和操作多种数据库的关键技能...

    基于Delphi的三层数据库系统的实现方法

    三层数据库应用系统的结构主要由三个部分组成:表示层、功能层(或业务逻辑层)、数据层。这种结构的优点在于能够有效分隔不同层面的功能,提高系统的灵活性和可维护性。 - **表示层**:主要负责与用户的交互,提供...

Global site tag (gtag.js) - Google Analytics