package sini.dal.rights.impl;
import sini.dal.rights.IBase;
public class ImplFactory {
/**
* 根据java反射获得IBase的对象,工厂类
* @param className
* @return 一个类的接口
* @throws InstantiationException
* @throws IllegalAccessException
* @throws ClassNotFoundException
*/
public static IBase getInstance(String className)throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return (IBase)Class.forName(className).newInstance();
}
}
package sini.dal.rights;
public interface IBase {
}
package sini.dal.rights.impl;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseImpl {
public Connection conn=null;
public CallableStatement sta=null;
public ResultSet rs=null;
/**
*
* @throws SQLException
*/
public void close()throws SQLException{
if(conn!=null){
conn.close();
conn=null;
}
if(sta!=null){
sta.close();
sta=null;
}
if(rs!=null){
rs.close();
rs=null;
}
}
}
package sini.dal.rights;
import java.util.List;
import sini.model.rights.MenuBean;
public interface MenuDao extends IBase{
/**
*
* @param menu
* @return
* @throws Exception
*/
public int add(MenuBean menu)throws Exception;
/**
*
* @param menu
* @return
* @throws Exception
*/
public boolean update(MenuBean menu)throws Exception;
/**
*
* @param entity
* @param id
* @return
* @throws Exception
*/
public MenuBean findById(String entity,int id)throws Exception;
/**
*
* @param pagesize(每页记录数)
* @param pageNow(当前页码)
* @param sqlselect(查询语句,含排序部分)
* @param sqlCount(获取记录总数的查询语句)
* @return
* @throws Exception
*/
public List<MenuBean> menupage(int pagesize,int pageNow,String sqlselect,String sqlCount)throws Exception;
}
package sini.dal.rights.impl;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import oracle.jdbc.OracleTypes;
import sini.conn.rights.DbConnection;
import sini.dal.rights.MenuDao;
import sini.model.rights.MenuBean;
public class MenuDaoImpl extends BaseImpl implements MenuDao{
public int add(MenuBean menu)throws Exception{
int menuid=0;
try{
conn=DbConnection.getConnection();
sta=conn.prepareCall("{call pkg_rights.addMenu(?,?,?,?,?,?)}");
sta.setLong(1, menu.getPid());
sta.setString(2, menu.getName());
sta.setShort(3, menu.getLayout());
sta.setString(4, menu.getSrc());
sta.setString(5, menu.getMgrsrc());
sta.registerOutParameter(6, OracleTypes.INTEGER);
sta.execute();
menuid=sta.getInt(6);
}catch(Exception e){
e.printStackTrace();
}finally{
close();
}
return menuid;
}
public MenuBean findById(String entity,int id)throws Exception{
MenuBean menu=new MenuBean();
try{
conn=DbConnection.getConnection();
sta=conn.prepareCall("{call pkg_rights.findDataByid(?,?,?)}");
sta.setString(1, entity);
sta.setInt(2, id);
sta.registerOutParameter(3, OracleTypes.CURSOR);
sta.execute();
rs=(ResultSet)sta.getObject(3);
while(rs.next()){
menu.setMid(rs.getLong(2));
menu.setPid(rs.getLong(3));
menu.setName(rs.getString(4));
menu.setLayout(rs.getShort(5));
menu.setSrc(rs.getString(6));
menu.setMgrsrc(rs.getString(7));
menu.setDel(rs.getShort(8));
menu.setRelease(rs.getShort(9));
}
}catch(Exception e){
e.printStackTrace();
}finally{
close();
}
return menu;
}
public boolean update(MenuBean menu)throws Exception{
boolean flag=false;
try{
conn=DbConnection.getConnection();
sta=conn.prepareCall("{call pkg_rights.updateMenu(?,?,?,?,?,?,?,?)}");
sta.setLong(1, menu.getMid());
sta.setLong(2,menu.getPid());
sta.setString(3, menu.getName());
sta.setShort(4, menu.getLayout());
sta.setShort(5, menu.getDel());
sta.setShort(6, menu.getRelease());
sta.setString(7, menu.getSrc());
sta.setString(8, menu.getMgrsrc());
sta.execute();
flag=true;
}catch(Exception e){
e.printStackTrace();
}finally{
close();
}
return flag;
}
public List<MenuBean> menupage(int pagesize, int pageNow, String sqlselect,
String sqlCount) throws Exception {
List<MenuBean> list=new ArrayList<MenuBean>();
int count=0;
try{
conn=DbConnection.getConnection();
sta=conn.prepareCall("{call pkg_rights.sp_Page(?,?,?,?,?,?)}");
sta.setInt(1,pagesize);
sta.setInt(2,pageNow);
sta.setString(3, sqlselect);
sta.setString(4,sqlCount);
sta.registerOutParameter(5, OracleTypes.INTEGER);
sta.registerOutParameter(6, OracleTypes.CURSOR);
sta.execute();
count=sta.getInt(5);
rs=(ResultSet)sta.getObject(6);
while(rs.next()){
MenuBean menu=new MenuBean();
menu.setMid(rs.getLong(2));
menu.setPid(rs.getLong(3));
menu.setName(rs.getString(4));
menu.setLayout(rs.getShort(5));
menu.setSrc(rs.getString(6));
menu.setMgrsrc(rs.getString(7));
menu.setDel(rs.getShort(8));
menu.setRelease(rs.getShort(9));
list.add(menu);
}
}catch(Exception e){
e.printStackTrace();
}finally{
close();
}
return list;
}
}