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框架。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值