/**
 * 根据主模块ID查询所有子模块
 * @param id
 * @return
 */
public List<SubModules> query(int id);

/**
 * 增加一个子模块
 * @param subModule
 * @return
 */
public boolean add(SubModules subModule);

/**
 * 根据id删除子模块
 * @param id
 * @return
 */
public boolean delete(int id);

/**
 * 修改一个子模块
 * @param subModule
 * @return
 */
public boolean update(SubModules subModule);create table submodules (
"subModuleID" int identity primary key,  -----子模块ID
"mainModuleid" int not null,            -----所属主模块ID fk主模块 id
"subModuleName" varchar(20) not null, -----模块名
"subModuleImage" varchar(30),         ------模块头像
foreign key(mainModuleid) references mainModule("mainModuleID")
)
这个dao接口怎么实现啊????

解决方案 »

  1.   

    如果是用Hibernate 或者是 Spring的话, 
    你首先写的就不一定对, 我稍微改了一下, 一般ID我们用long型, 我这个主要是用了spring封装了事务, 也是基于hibernate的.import java.util.List;import org.hibernate.Session;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    public class CsdnDao  extends HibernateDaoSupport{ /**
         * �����ģ��ID��ѯ������ģ��
         * @param id
         * @return
         */
        public List<SubModules> query(long id){
         String sql = "from SubModules subModuleID = ? ";
    Session session = this.getSession();
    return session.createQuery(sql).setLong(0, id).list();
        }
        
        /**
         * ����һ����ģ��
         * @param subModule
         * @return
         */
        public long add(SubModules subModule){
         Session session = this.getSession();
         return (Long) session.save(subModule);    }
        
        /**
         * ���idɾ����ģ��
         * @param id
         * @return
         */
        public boolean delete(long id){
         Session session = this.getSession();
         SubModules sm = (SubModules) session.load(SubModules.class, id);
         session.delete(sm);
         return true;
        }
        
        /**
         * �޸�һ����ģ��
         * @param subModule
         * @return
         */
        public boolean update(SubModules subModule){
         Session session = this.getSession();
         session.update(subModule);
         return true;
        }
    }class SubModules{

    private int subModuleID; //  -----子模块ID
    private int  mainModuleid; //----所属主模块ID fk主模块 id
    private String subModuleName; //-----模块名
        private String subModuleImage;
    /**
     * @return the subModuleID
     */
    public int getSubModuleID() {
    return subModuleID;
    }
    /**
     * @param subModuleID the subModuleID to set
     */
    public void setSubModuleID(int subModuleID) {
    this.subModuleID = subModuleID;
    }
    /**
     * @return the mainModuleid
     */
    public int getMainModuleid() {
    return mainModuleid;
    }
    /**
     * @param mainModuleid the mainModuleid to set
     */
    public void setMainModuleid(int mainModuleid) {
    this.mainModuleid = mainModuleid;
    }
    /**
     * @return the subModuleName
     */
    public String getSubModuleName() {
    return subModuleName;
    }
    /**
     * @param subModuleName the subModuleName to set
     */
    public void setSubModuleName(String subModuleName) {
    this.subModuleName = subModuleName;
    }
    /**
     * @return the subModuleImage
     */
    public String getSubModuleImage() {
    return subModuleImage;
    }
    /**
     * @param subModuleImage the subModuleImage to set
     */
    public void setSubModuleImage(String subModuleImage) {
    this.subModuleImage = subModuleImage;
    }        

    }
      

  2.   

    第一个方法写错了 改了一下:
        public List<SubModules> query(long id){
         String sql = "from SubModules sm where sm.subModuleID = ? ";
    Session session = this.getSession();
    return session.createQuery(sql).setLong(0, id).list();
        }
      

  3.   

    谢谢了。不过我补充一点。。Hibernate 和 Spring 
     我还没学啊。。我只需要把那几个抽象方法实现就行啦。。
            
      

  4.   

    我随便写了下
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;import com.dreams.dao.interfaces.SubModulesDao;
    import com.dreams.dao.util.DBUtil;
    import com.dreams.dao.vo.SubModules;
    public class SubModulesDaoImpl implements SubModulesDao {
    Connection conn = null;//连接对象初始化
    SubModules subModules = null;//子模块对象初始化
    ResultSet rs =null;//结果集对象初始化
    PreparedStatement pstmt = null;//预编译对象初始化
    /**
     * 增加一个子模块
     * @param subModule
     * @return
     */
    public boolean add(SubModules subModule) {
    conn = DBUtil.getConnection();
    try {
    pstmt = conn.prepareStatement("insert into submodules values(?,?,?)");
    pstmt.setString(1, String.valueOf(subModule.getSubModuleID()));
    pstmt.setString(2, String.valueOf(subModule.getMainModuleid()));
    pstmt.setString(3, subModule.getSubModuleName());
    int count = pstmt.executeUpdate();
    if(count > 1) {
    return true;
    }
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    DBUtil.close(rs, pstmt, conn);
    }
    return false;
    } /**
     * 根据id删除子模块
     * @param id
     * @return
     */
    public boolean delete(int subModulesID) {
    conn = DBUtil.getConnection();
    try {
    pstmt = conn.prepareStatement("delete from submodules where subModulesID=?");
    pstmt.setString(1, String.valueOf(subModulesID));
    int count = pstmt.executeUpdate();
    if(count >1) {
    return true;
    }
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    DBUtil.close(rs, pstmt, conn);
    }
    return false;
    }

    /**
     * 根据主模块ID查询所有子模块
     * @param id 
     * @return
     */
    public List<SubModules> query(int mainModuleid) {
    conn = DBUtil.getConnection();
    List<SubModules> list = new ArrayList<SubModules>();
    try {
    pstmt = conn.prepareStatement("seclet * from submodules where mainModuleid=?");
    pstmt.setString(1, String.valueOf(mainModuleid));
    rs = pstmt.executeQuery();
    while(rs.next()) {
    subModules = new SubModules();
    subModules.setMainModuleid(mainModuleid);
    subModules.setSubModuleName("subModuleName");
    list.add(subModules);
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }finally {
    DBUtil.close(rs, pstmt, conn);
    }
    return list;
    }可能会有错不过大概就是那样子咯。。大家看看哪里需要修改的。。
    修改的那个方法还没写(突然想睡午觉了)!