SSH框架构造之二---------------DAO,service中间层构造

        中间层构造的目的是将hibernate数据操作封装,并且形成基于spring的服务注入。

(1)DAO层

接口:

package com.my.dao;


import java.util.List;
import com.my.model.PageBean;
import com.my.vo.SysMenu;


public interface ISysMenuDAO {

public List getAllSysMenu();
 
//添加信息
public boolean saveSysMenu(SysMenu SysMenuInfo);

//修改信息
public boolean updateSysMenu(SysMenu SysMenuInfo);

//删除信息
public boolean deleteSysMenu(SysMenu SysMenuInfo);

  /**
   * 分页显示通知
   * @param hql 查询语句
   * @param offset 开始记录
   * @param length 一次查询几条记录
   * @return
   */
    public List findAllByPage(final String hql,final int offset,final int length); //分页显示
  /**
   * 查询所有记录数
   * @param hql 查询语句
   * @return 总记录数
   */
public int getAllRowCount(String hql);

  /**
   * 查询指定页的信息
   * @param pageSize 每一页的记录数
   * @param page  查询指定的页
   * 
   */   
public PageBean findAllByPage(int pageSize, int page);
  
  //根据ID查询信息是否已存在
public boolean isExistSysMenu(String studentName);


//根据ID查询
public SysMenu getSysMenuByID(int id);


}

实现:

package com.my.dao.impl;


import java.util.ArrayList;
import java.util.List;


import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;


import com.my.dao.BaseDAO;
import com.my.dao.ISysMenuDAO;
import com.my.model.PageBean;
import com.my.vo.SysMenu;
import com.my.vo.HelpStudentRecord;


public class SysMenuDAO extends BaseDAO implements ISysMenuDAO {


public boolean deleteSysMenu(SysMenu SysMenuInfo) {
boolean result=false;
try{
Session session=getSession();
Transaction tx=session.beginTransaction();
session.delete(SysMenuInfo);
tx.commit();
result=true;
session.close();
}catch(Exception e){
e.printStackTrace();
}
return result;
}


public List findAllByPage(String hql, int offset, int length) {
Session session=getSession();
Query query=session.createQuery(hql);

query.setFirstResult(offset);
query.setMaxResults(length);
List list=query.list();

session.close();
return list;
}


    public PageBean findAllByPage(int pageSize, int page) {
        
String hql="from SysMenu SysMenuInfo order by id desc"; 
    
int allRow=this.getAllRowCount(hql);
 

int totalPage=PageBean.countTotalPage(pageSize, allRow);  
int offset=PageBean.countOffset(pageSize, page); 
if(offset<0)
{
offset=0;
}
 
final int length=pageSize;
final int currentPage=PageBean.countCurrentPage(page);  
List  list=this.findAllByPage(hql, offset, length);
 
PageBean pageBean=new PageBean();
pageBean.setPageSize(pageSize);
pageBean.setAllRow(allRow);
pageBean.setCurrentPage(currentPage);
pageBean.setTotalPage(totalPage);
pageBean.setList(list);
pageBean.init();

return pageBean;
}


public int getAllRowCount(String hql) {
Session session=getSession();
Query query=session.createQuery(hql);
List list=query.list();
session.close();
return list.size();
}


public SysMenu getSysMenuByID(int id) {
Session session=getSession();
SysMenu SysMenuInfo=(SysMenu) session.load(SysMenu.class, new Integer(id));
//session.close();
return  SysMenuInfo;
}


public List getAllSysMenu() {
List list=new ArrayList();
String hql="from  SysMenu as SysMenuInfo";
Session session=this.getSession();
Query query= session.createQuery(hql);
list=query.list();

return list;
}


public boolean isExistSysMenu(String studentName) {
boolean result=false;
Session session=getSession();
String hql="from SysMenu SysMenuInfo where SysMenuInfo.parties=?";
Query query=session.createQuery(hql);
query.setParameter(0, studentName);

List list=query.list();
if(list.size()>0){
result=true;
}
    session.close();
return result;
}


public boolean saveSysMenu(SysMenu SysMenuInfo) {
boolean result=false;
try{
Session session=getSession();
Transaction tx=session.beginTransaction();
session.save(SysMenuInfo);
tx.commit();
result=true;
session.close();
}catch(Exception e){
e.printStackTrace();
}
return result;
}


public boolean updateSysMenu(SysMenu SysMenuInfo) {
boolean result=false;
try{
 

Session session=getSession();
Transaction tx=session.beginTransaction();
session.update(SysMenuInfo);
tx.commit();
result=true;
session.close();


}catch(Exception e){
e.printStackTrace();
}
return result;
}


}

(2)service层:

该层对DAO进行封装,提供基于spring的服务器注入:

接口:

package com.my.service;


import java.util.List;


import com.my.model.PageBean;
import com.my.vo.SysMenu;


public interface ISysMenuService {

public List getAllSysMenu();
 
//添加信息
public boolean saveSysMenu(SysMenu sysmenuInfo);

//修改信息
public boolean updateSysMenu(SysMenu sysmenuInfo);

//删除信息
public boolean deleteSysMenu(SysMenu sysmenuInfo);

/**
   * 分页显示通知
   * @param hql 查询语句
   * @param offset 开始记录
   * @param length 一次查询几条记录
   * @return
   */
    public List findAllByPage(final String hql,final int offset,final int length); //分页显示
  /**
   * 查询所有记录数
   * @param hql 查询语句
   * @return 总记录数
   */
public int getAllRowCount(String hql);

  /**
   * 查询指定页的信息
   * @param pageSize 每一页的记录数
   * @param page  查询指定的页
   * 
   */   
public PageBean findAllByPage(int pageSize, int page);
  
  //根据NAME查询信息是否已存在
public boolean isExistSysMenu(String studentName);


//根据ID查询记录
public SysMenu getSysMenuByID(int id);


}

实现:



package com.my.service.impl;


import java.util.List;


import com.my.dao.ISysMenuDAO;
import com.my.model.PageBean;
import com.my.service.ISysMenuService;
import com.my.vo.SysMenu;


public class SysMenuService implements ISysMenuService {
private ISysMenuDAO sysmenuDAO;

public List getAllSysMenu() {
return sysmenuDAO.getAllSysMenu();
}

 

public ISysMenuDAO getSysmenuDAO() {
return sysmenuDAO;
}






public void setSysmenuDAO(ISysMenuDAO sysmenuDAO) {
this.sysmenuDAO = sysmenuDAO;
}






public boolean deleteSysMenu(SysMenu sysmenuInfo) {

return sysmenuDAO.deleteSysMenu(sysmenuInfo);
}

public List findAllByPage(String hql, int offset, int length) {

return sysmenuDAO.findAllByPage(hql, offset, length);
}

public PageBean findAllByPage(int pageSize, int page) {

return sysmenuDAO.findAllByPage(pageSize, page);
}
public int getAllRowCount(String hql) {

return sysmenuDAO.getAllRowCount(hql);
}

public SysMenu getSysMenuByID(int id) {

return sysmenuDAO.getSysMenuByID(id);
}

public boolean isExistSysMenu(String studentName) {

return sysmenuDAO.isExistSysMenu(studentName);
}

public boolean saveSysMenu(SysMenu sysmenuInfo) {

return sysmenuDAO.saveSysMenu(sysmenuInfo);
}

public boolean updateSysMenu(SysMenu sysmenuInfo) {

return sysmenuDAO.updateSysMenu(sysmenuInfo);
}
    
}


3)注入Spring:

在applicationContext.xml中注入服务:

  <bean id="sysmenuDAO" class="com.my.dao.impl.SysMenuDAO" parent="baseDAO"/> 


       <!-- sysmenuService  -->
       <bean id="sysmenuService" class="com.my.service.impl.SysMenuService">
           <property name="sysmenuDAO">
               <ref bean="sysmenuDAO"/>
           </property>  
       </bean>
       <!--sysmenuManagerAction  -->
  <bean id="sysmenuManagerAction" class="com.my.action.SysMenuManagerAction">
      <property name="sysmenuService">
          <ref bean="sysmenuService" />
      </property>  
  </bean>


这里需要注意的就是大小写问题,一般类开头是大写,而beanid一般是小写。而关于baen的属性name开头也应该小写。形成规范。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值