`
陆地小神仙
  • 浏览: 9086 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JFast应用系列之(3) -- Dao类详解

 
阅读更多

JFast Dao类采用了极为简易的设计,全部接近原生SQL,所以很灵活,本身不需要开发者自己写Dao具体实现,极大的简化了所有SQL操作的代码:废话不多说,上代码:

创建User类:

 

@Date  // 这是lombok的东西,不去管它
@Table("t_user") // 当类名与数据库名称不一致时,需要该属性
public class User{
     private Integer userId;
     private String userName;
     private String nickName;
     private String password;
}

    创建UserDao类:

    

public interface UserDao{

     void addUser(User user);  // 添加一个User

     boolean insertUser(User user);  // 添加一个User

     void saveUser(User user); // 添加一个User

     void updateUser(User user); // 更新一个User对象

     boolean deleteUser(Integer userId); // 删除指定编号的User对象
     
     long deleteFromUser(Integer userId); // 删除指定编号的User对象
   
     void removeFromUserByUserId(); // 删除指定编号的User对象

     int deleteUser(User user);  // 删除符合所有user参数的User对象

     void removeUser(User user); // 删除符合所有user参数的User对象
     
     List getUser();  // 查找所有用户
     
     User getUser(Integer userId); // 获得指定编号的用户对象

     User selectUser(Integer userId); // 获得指定编号的用户对象
    
     Record queryUser(String userName,String password); //根据用户名密码查找用户,返回Map对象
     
     Map findUserByUsernamePassword(String userName,String password); //根据用户名密码查找用户,返回Map对象
     
     // 接下来是适合复杂sql的用法(手动写SQL)

     User selectDemo(String userName,String password);  // 查询语句示例
    
     void deleteDemo(Integer userId);  // 删除语句示例

     void updateDemo(User user);  // 更新语句示例

     boolean insertDemo(User user);  // 插入语句示例

}

 

    Dao实现类示例:

    

@Dao(name="userDao",description="Dao类声明,name默认值为类名首字母小写,为了引用方便,这里指定name为userDao 方便在Service/拦截器/验证器/单元测试中引用")
public class UserDaoImpl implements UserDao {

	public void addUser(User user) {}

	public boolean insertUser(User user) {
		return false;
	}

	public void saveUser(User user) {}

	public void updateUser(User user) {}

	public boolean deleteUser(Integer userId) {
		return false;
	}

	public long deleteFromUser(Integer userId) {
		return 0;
	}

	public void removeFromUserByUserId() {

	}

	public int deleteUser(User user) {
		return 0;
	}

	public void removeUser(User user) {

	}

	public List getUser() {
		return null;
	}

	public User getUser(Integer userId) {
		return null;
	}

	public User selectUser(Integer userId) {
		return null;
	}

	public Record queryUser(String userName, String password) {
		return null;
	}

	public Map findUserByUsernamePassword(String userName, String password) {
		return null;
	}
	
	@Select(sql = "select userName,password from user where userName = :userName and password=:password")
	public User selectDemo(String userName,String password) {
		return null;
	}
	
	@Delete(sql = "delete from user where userId = [!CDATA[userId]]")
	public void deleteDemo(Integer userId) {

	}

	@Update(sql = "update user set userName = :userName and password = [!CDATA[password]] where userId = :userId")
	public void updateDemo(User user) {

	}
    
	@Insert(sql = "insert into user(userName,password) values (:userName,:password)")
	public boolean insertDemo(User user) {
		return false;
	}

}

    用法总结:

 

  • 单表操作:全部使用方法名+方法参数+返回值的方式,简单快捷。
  • 多表操作或者需要精确操作的:使用注解形式。
  • 匹配参数可以是java基本类型,也可以是User这种封装对象。

    附加说明:如何和其他ORM框架兼容:

    如果开发者习惯使用其他高级orm框架,那么只需要在Dao类上加上@Body注解(或者在方法上加上@Body注解也可以),那么jfast就不会对方法进行解析。开发者可以把其他框架的sql操作写在方法体中,jfast会去调用方法体中的第三方orm框架。

 

 

1
2
分享到:
评论

相关推荐

    使用jsp-servlet-service-dao四层结构完成用户信息的增删改查操作

    在IT行业中,构建一个用户信息管理系统是常见的任务,特别是在Web应用开发中。本文将深入探讨如何使用jsp-servlet-service-dao四层架构来实现这样的系统,包括用户信息的增删改查功能,以及权限控制机制。 首先,让...

    Bo-Blog daodao

    "daodao" 可能是指该模板的主题或版本名称,暗示了其特色在于为用户提供一种“道道”(心得、感悟)的分享平台。 在IT行业中,博客系统通常包含以下几个关键知识点: 1. **PHP编程语言**:Bo-Blog daodao 使用PHP...

    实例程序VC6.0 -----------DAO实例程序

    实例程序VC6.0 -----------DAO实例程序

    03---Controller-Service-Dao.zip

    在Java Web开发中,"Controller-Service-Dao"是一种常见的分层架构模式,用于组织和管理应用程序的不同组件,以提高代码的可维护性和可扩展性。这个名为"03---Controller-Service-Dao.zip"的压缩包很可能包含了关于...

    -web-Dao-Service-Controller--master.zip

    本篇文章将深入探讨一个基于-ioc(Inversion of Control,控制反转)、aop(Aspect Oriented Programming,面向切面编程)、mvc(Model-View-Controller,模型-视图-控制器)的Java后端框架,以-web-Dao-Service-...

    商业编程-源码-DAO源代码 dao_multithreading.zip

    3. **连接池**: 为提高性能,多线程应用通常会使用数据库连接池,如HikariCP、C3P0或Apache DBCP等。连接池预先创建并维护一定数量的数据库连接,当线程需要时可以从池中获取,用完后归还,避免频繁创建和关闭连接的...

    核心J2EE模式--通用DAO的详细介绍

    - **抽象工厂模式**:进一步扩展工厂方法模式,使用抽象工厂模式来创建一系列相关或相互依赖的对象,而无需指定它们具体的类。 ##### 结果 采用DAO模式后,应用程序能够更好地适应未来数据源的变化,同时也提高了...

    精彩编程与编程技巧-MDB文件的导出 ---- 使用 DAO...

    它提供了一系列类和方法来操作数据库。 #### 二、使用 DAO 导出 MDB 文件至其他格式 本部分内容主要介绍了如何利用 DAO 技术将 MDB 文件中的数据导出到多种不同的格式,包括 DBase、文本文件 (.txt)、HTML、Excel ...

    实训项目(8)--MVC+DAO留言管理.zip

    在本实训项目“MVC+DAO留言管理”中,我们将探讨如何使用Model-View-Controller(MVC)架构模式和Data Access Object(DAO)设计模式来实现一个简单的留言管理系统。这个系统的核心目标是通过分离业务逻辑、数据访问...

    DAO详解 详细讲述了DAO的使用

    **DAO详解** DAO(Data Access Object)模式是软件设计中的一种模式,主要用于数据库访问层的抽象,它将数据操作逻辑封装在对象中,使得业务逻辑层与数据存储层解耦,提高了代码的可复用性和可维护性。本文将深入...

    dao--2.dao模式

    例如,"day17_1"可能讲解了DAO模式的基本概念和原理,"day17_2"可能涉及如何设计和实现DAO接口及其实现类,"day17_3"可能涵盖事务管理和异常处理,而"day101"可能是对之前内容的回顾或一个综合性的项目实践。...

    mybatis的基本演示项目-mybatis-generic-dao-demo-generic

    "mybatis-generic-dao-demo-generic" 是一个基于MyBatis的通用DAO项目的示例,它展示了如何利用MyBatis的插件机制来实现数据访问对象(DAO)的通用化,从而提高开发效率。 在这个项目中,重点可能包括以下几个方面...

    spring-jdbc-dao

    《Spring JDBC DAO详解》 在Java开发中,Spring框架以其强大的功能和易用性深受开发者喜爱,其中Spring JDBC模块提供了对数据库操作的支持。Spring JDBC DAO(Data Access Object)模式是Spring提供的一种数据库...

    商业编程-源码-DAO读写ACCESS文件.zip

    3. **操作Recordset**:Recordset是DAO中最常用的对象,用于读取、添加、修改和删除数据。例如,`CurrentDb.OpenRecordset("TableName")`会打开名为“TableName”的表,并返回一个Recordset对象。 4. **创建和修改...

    案例-mvc+dao实现留言管理程序

    在Java开发领域,MVC(Model-View-Controller)模式和DAO(Data Access Object)模式是两种广泛使用的设计模式,它们在构建Web应用程序时起着至关重要的作用。本案例通过一个具体的留言管理程序,深入地展示了如何在...

    junit-test-dao

    - **测试类**:定义一个测试类`UserDAOTest`,该类继承自`AbstractTransactionalJUnit4SpringContextTests`或使用`@RunWith(SpringRunner.class)`和`@Transactional`注解来管理事务。 - **测试方法**:编写具体的...

    非常重要的一张图-分析编写dao实现类Mybatis的执行过程.png

    非常重要的一张图-分析编写dao实现类Mybatis的执行过程,非常详细的介绍了mybatis非代理实现Dao过程,讲解了Mybatis中使用DaoImpl实现持久层Dao的方法。讲解了为什么可以使用Sqlsession.update()方法,删除数据。

    mybatis的基本演示项目-mybatis-generic-dao-demo-basic

    【标题】"mybatis-generic-dao-demo-basic"是一个基于MyBatis框架的Spring整合示例项目,它展示了如何在实际开发中使用MyBatis作为持久层框架,配合Spring进行数据库操作。MyBatis是一个轻量级的ORM(对象关系映射)...

    Java的几种对象(PO-VO-DAO-BO-POJO)解释

    ### Java的几种对象详解:PO-VO-DAO-BO-POJO #### 一、PO:Persistant Object(持久对象) 持久对象(Persistent Object,简称PO),主要用于与数据库中的表进行映射。一个简单的PO对象可以代表数据库表中的一条...

Global site tag (gtag.js) - Google Analytics