4 月更文挑战第21天 | 基于java的校园二手商品交易系统的开发10

131 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第21天,点击查看活动详情

这一章节主要讲校园二手商品交易系统的DAO层代码的功能。

public User findByUser(User user) {
	String hql="from User u where u.userName=? and u.password=?";
	
	List<User> list=this.getHibernateTemplate().find(hql,user.getUserName(),user.getPassword());
	if(list.size()>0){
		return list.get(0);
	}else{
		return null;
	}
}

通过账号和密码查询用户,hql是hibernate的专属sql语句,getHibernateTemplate()是hibernate的数据库驱动Template,传过去的参数有用户名和密码。 如果查询到了,直接返回,如果没查询到,返回空。

查询管理员数量
int findAdminCount();

分页查询管理员列表
List<Admin> findAllAdminInfo(int begin, int pageSize);

查询用户数量
int findUserCount(String name);

分页查询用户列表
List<User> findAllUserInfo(int begin, int pageSize,String name);

查询分类数量
int findCateCount(String name);

分页查询分类列表
List<Classify> findAllCateInfo(int begin, int pageSize, String name);

查询商品数量
int findProductCount(String name, int cate, int type);

查询商品列表
List<Product> findAllProductInfo(int begin, int pageSize, String name, int cate, int type);

分类列表查询
List<Classify> findAllCateList();

查询商品详情
Product searchProductDetail(int pid);

删除商品
void delectProductById(int pid);

查询用户详情
User searchUserDetail(int uid);

删除分类
void delectCateById(int id);

删除管理员
void delectAdminById(int id);

新增管理员
void addAdmin(Admin admin);

通过管理员帐户查询
Admin findAdminByName(String name);

通过id查询管理员信息
Admin findAdminById(Integer aid);

修改管理员
void updateAdmin(Admin admin);

根据分类名称查询分类信息
Classify findCateByName(String classifyName);

新增分类
void addCate(Classify cassify);

修改分类
void updateCate(Classify cassify);
    
    
后台删除商品发送通知给用户
void saveSystemMessage(UserAndAdmin uaa);

public int findUserCount(String name) {
   StringBuffer br=new StringBuffer();
   
   String hql="select count(*) from User " ;
   if(name!=null){
   	String uname="%"+name+"%";
   	br.append("where userName like '"+uname+"'");
   }
   @SuppressWarnings("unchecked")
   List<Long> list=this.getHibernateTemplate().find(hql+br.toString());
   if(list.size()>0){
   	return list.get(0).intValue();
   }
   return 0;
}

统计用户数量,判断前端传过来的用户名字,如果不为空,那么就在sql语句那里拼接name,用的是append方法。@SuppressWarnings注解的作用是忽略报错。this.getHibernateTemplate().find(hql+br.toString());执行sql语句,查到有数据,返回值,没有数据,返回0.

public List<User> findAllUserInfo(int begin, int pageSize,String name) {
	String uname="%"+name+"%";
	DetachedCriteria dc=DetachedCriteria.forClass(User.class)
			.add(Restrictions.like("userName", uname, MatchMode.ANYWHERE))
			.addOrder(Order.desc("uid"));
	@SuppressWarnings("unchecked")
	List<User> list=this.getHibernateTemplate().findByCriteria(dc, begin, pageSize);
	return list;
}

查询所有的用户信息,条件userName,用的是ANYWHERE,那么任意查询条件,后面的addOrder是根据uid进行排序。这个代码理解难度大一点,毕竟代码也不好写。