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;
	}
}
? ? 用法总结:
?
? ? 附加说明:如何和其他ORM框架兼容:
? ? 如果开发者习惯使用其他高级orm框架,那么只需要在Dao类上加上@Body注解(或者在方法上加上@Body注解也可以),那么jfast就不会对方法进行解析。开发者可以把其他框架的sql操作写在方法体中,jfast会去调用方法体中的第三方orm框架。
?
?
原文:http://jfast.iteye.com/blog/2236845