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框架。
相关推荐
在IT行业中,构建一个用户信息管理系统是常见的任务,特别是在Web应用开发中。本文将深入探讨如何使用jsp-servlet-service-dao四层架构来实现这样的系统,包括用户信息的增删改查功能,以及权限控制机制。 首先,让...
"daodao" 可能是指该模板的主题或版本名称,暗示了其特色在于为用户提供一种“道道”(心得、感悟)的分享平台。 在IT行业中,博客系统通常包含以下几个关键知识点: 1. **PHP编程语言**:Bo-Blog daodao 使用PHP...
实例程序VC6.0 -----------DAO实例程序
在Java Web开发中,"Controller-Service-Dao"是一种常见的分层架构模式,用于组织和管理应用程序的不同组件,以提高代码的可维护性和可扩展性。这个名为"03---Controller-Service-Dao.zip"的压缩包很可能包含了关于...
本篇文章将深入探讨一个基于-ioc(Inversion of Control,控制反转)、aop(Aspect Oriented Programming,面向切面编程)、mvc(Model-View-Controller,模型-视图-控制器)的Java后端框架,以-web-Dao-Service-...
3. **连接池**: 为提高性能,多线程应用通常会使用数据库连接池,如HikariCP、C3P0或Apache DBCP等。连接池预先创建并维护一定数量的数据库连接,当线程需要时可以从池中获取,用完后归还,避免频繁创建和关闭连接的...
- **抽象工厂模式**:进一步扩展工厂方法模式,使用抽象工厂模式来创建一系列相关或相互依赖的对象,而无需指定它们具体的类。 ##### 结果 采用DAO模式后,应用程序能够更好地适应未来数据源的变化,同时也提高了...
它提供了一系列类和方法来操作数据库。 #### 二、使用 DAO 导出 MDB 文件至其他格式 本部分内容主要介绍了如何利用 DAO 技术将 MDB 文件中的数据导出到多种不同的格式,包括 DBase、文本文件 (.txt)、HTML、Excel ...
在本实训项目“MVC+DAO留言管理”中,我们将探讨如何使用Model-View-Controller(MVC)架构模式和Data Access Object(DAO)设计模式来实现一个简单的留言管理系统。这个系统的核心目标是通过分离业务逻辑、数据访问...
**DAO详解** DAO(Data Access Object)模式是软件设计中的一种模式,主要用于数据库访问层的抽象,它将数据操作逻辑封装在对象中,使得业务逻辑层与数据存储层解耦,提高了代码的可复用性和可维护性。本文将深入...
例如,"day17_1"可能讲解了DAO模式的基本概念和原理,"day17_2"可能涉及如何设计和实现DAO接口及其实现类,"day17_3"可能涵盖事务管理和异常处理,而"day101"可能是对之前内容的回顾或一个综合性的项目实践。...
"mybatis-generic-dao-demo-generic" 是一个基于MyBatis的通用DAO项目的示例,它展示了如何利用MyBatis的插件机制来实现数据访问对象(DAO)的通用化,从而提高开发效率。 在这个项目中,重点可能包括以下几个方面...
《Spring JDBC DAO详解》 在Java开发中,Spring框架以其强大的功能和易用性深受开发者喜爱,其中Spring JDBC模块提供了对数据库操作的支持。Spring JDBC DAO(Data Access Object)模式是Spring提供的一种数据库...
3. **操作Recordset**:Recordset是DAO中最常用的对象,用于读取、添加、修改和删除数据。例如,`CurrentDb.OpenRecordset("TableName")`会打开名为“TableName”的表,并返回一个Recordset对象。 4. **创建和修改...
在Java开发领域,MVC(Model-View-Controller)模式和DAO(Data Access Object)模式是两种广泛使用的设计模式,它们在构建Web应用程序时起着至关重要的作用。本案例通过一个具体的留言管理程序,深入地展示了如何在...
- **测试类**:定义一个测试类`UserDAOTest`,该类继承自`AbstractTransactionalJUnit4SpringContextTests`或使用`@RunWith(SpringRunner.class)`和`@Transactional`注解来管理事务。 - **测试方法**:编写具体的...
非常重要的一张图-分析编写dao实现类Mybatis的执行过程,非常详细的介绍了mybatis非代理实现Dao过程,讲解了Mybatis中使用DaoImpl实现持久层Dao的方法。讲解了为什么可以使用Sqlsession.update()方法,删除数据。
【标题】"mybatis-generic-dao-demo-basic"是一个基于MyBatis框架的Spring整合示例项目,它展示了如何在实际开发中使用MyBatis作为持久层框架,配合Spring进行数据库操作。MyBatis是一个轻量级的ORM(对象关系映射)...
### Java的几种对象详解:PO-VO-DAO-BO-POJO #### 一、PO:Persistant Object(持久对象) 持久对象(Persistent Object,简称PO),主要用于与数据库中的表进行映射。一个简单的PO对象可以代表数据库表中的一条...