我现在有50多个表,我都要实现对它们的记录增加,删除,修改,改变的操作!
我还要做50多个页面对他们进行显示,和那些操作的增加,删除,修改的操作!
工作量大不大,兄弟们自己估量!
有没有人帮我们设计一个类,来完成自动对那些功能的完成!
重点是一个类,能对几乎所有的表的操作!
我是用的JSP开发。我是狂晕!

解决方案 »

  1.   

    一点提示:可以通过xml定制表的属性,在通过定制xsl模版生成增删改页面,还要通过一个java类实现xsl到jsp的转换
      

  2.   

    根据不同的页面,不同的功能编写相应功能的SQL语句,然后java类接受sql字符串,执行相同功能即可。把业务分离出来
      

  3.   

    不要用jsp了,用.net吧正好可以用泛型编程
      

  4.   

    Spring+Hibernate一个类全部搞定
    而且很轻松
      

  5.   

    其实你为什么不考虑框架呢,自己写好累的Spring+Hibernate还不错的,不然你就自己写框架吧,给你个提示,万变不里其中,BEAN是固定的
      

  6.   

    或者直接用phpmyademin好了,反正你就是直接表操作嘛
      

  7.   

    spring+hibernate hibernateTemplate一下解决它
      

  8.   

    考虑下hibernate+泛型的curd超类。
      

  9.   

    可以通过xml定制表的属性,在通过定制xsl模版生成增删改页面,还要通过一个java类实现xsl到jsp的转换
      

  10.   

    可以通过xml定制表的属性,在通过定制xsl模版生成增删改页面,还要通过一个java类实现xsl到jsp的转换
      

  11.   

    这是针对Hibernate 提供个例子 供参考import java.io.Serializable;
    import java.sql.DatabaseMetaData;
    import java.util.List;import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
    public abstract class DAO { /**
     * 获取数据库的元信息 
     * @return
     */
    public static DatabaseMetaData metadata(){
    try{
    return getSession().connection().getMetaData();
    }catch(Exception e){
    e.printStackTrace();
    }
    return null;
    }

    /**
     * 添加对象
     * @param cbean
     */
    public static void save(Object cbean){
    try{
    Session ssn = getSession();
    beginTransaction();
    ssn.save(cbean);
    commit();
    }catch(HibernateException e){
    e.printStackTrace();
    rollback();
    throw e;
    }
    } /**
     * 添加对象
     * @param cbean
     */
    public static void saveOrUpdate(Object cbean){
    try{
    Session ssn = getSession();
    beginTransaction();
    ssn.saveOrUpdate(cbean);
    commit();
    }catch(HibernateException e){
    rollback();
    throw e;
    }
    } /**
     * 删除对象
     * @param cbean
     */
    public static void delete(Object cbean){
    try{
    Session ssn = getSession();
    beginTransaction();
    ssn.delete(cbean);
    commit();
    }catch(HibernateException e){
    rollback();
    throw e;
    }
    }

    /**
     * 根据主键删除某个对象
     * @param objClass
     * @param key
     * @return
     */
    protected static int delete(Class objClass, Serializable key){
    StringBuffer hql = new StringBuffer("DELETE FROM ");
    hql.append(objClass.getName());
    hql.append(" AS t WHERE t.id=?");
    return commitUpdate(hql.toString(), new Object[]{key});
    } /**
     * 写脏数据到数据库
     */
    public static void flush(){
    try{
    Session ssn = getSession();
    if(ssn.isDirty()){
    beginTransaction();
    ssn.flush();
    commit();
    }
    }catch(HibernateException e){
    rollback();
    throw e;
    }
    }

    /**
     * 根据主键加载对象
     * @param beanClass
     * @param ident
     * @return
     */
    protected static Object getBean(Class beanClass, int id){
    return getSession().get(beanClass, new Integer(id));
    }
    /**
     * 执行普通查询语句
     * @param hql
     * @param args
     * @return
     */
    protected static List findAll(String hql, Object[] args){
    return executeQuery(hql, -1, -1, args);
    }

    /**
     * 执行普通查询语句
     * @param hql
     * @param args
     * @return
     */
    protected static List executeQuery(String hql, int fromIdx, int fetchCount, Object[] args){
    Session ssn = getSession();
    Query q = ssn.createQuery(hql);
    for(int i=0;args!=null&&i<args.length;i++){
    q.setParameter(i, args[i]);
    }
    if(fromIdx > 0)
    q.setFirstResult(fromIdx);
    if(fetchCount > 0)
    q.setMaxResults(fetchCount);
    return q.list();
    }

    /**
     * 执行更新语句
     * @param hql
     * @param args
     * @return
     */
    protected static int executeUpdate(String hql, Object[] args){
    Session ssn = getSession();
    Query q = ssn.createQuery(hql);
    for(int i=0;args!=null&&i<args.length;i++){
    q.setParameter(i, args[i]);
    }
    return q.executeUpdate();
    } /**
     * 执行更新语句
     * @param hql
     * @param args
     * @return
     */
    protected static int commitUpdate(String hql, Object[] args){
    try{
    Session ssn = getSession();
    beginTransaction();
    Query q = ssn.createQuery(hql);
    for(int i=0;args!=null&&i<args.length;i++){
    q.setParameter(i, args[i]);
    }
    int er = q.executeUpdate();
    commit();
    return er;
    }catch(HibernateException e){
    rollback();
    throw e;
    }
    }

    /**
     * 执行返回单一结果的查询语句
     * @param hql
     * @param args
     * @return
     */
    protected static Object uniqueResult(String hql, Object[] args){
    Session ssn = getSession();
    Query q = ssn.createQuery(hql);
    for(int i=0;args!=null&&i<args.length;i++){
    q.setParameter(i, args[i]);
    }
    q.setMaxResults(1);
    return q.uniqueResult();
    } /**
     * 执行普通查询语句
     * @param hql
     * @param args
     * @return
     */
    protected static List executeNamedQuery(String hql, int fromIdx, int fetchCount, Object[] args){
    Session ssn = getSession();
    Query q = ssn.getNamedQuery(hql);
    for(int i=0;args!=null&&i<args.length;i++){
    q.setParameter(i, args[i]);
    }
    if(fromIdx > 0)
    q.setFirstResult(fromIdx);
    if(fetchCount > 0)
    q.setMaxResults(fetchCount);
    return q.list();
    } /**
     * 执行普通查询语句
     * @param hql
     * @param args
     * @return
     */
    protected static List findNamedAll(String hql, Object[] args){
    return executeNamedQuery(hql, -1, -1, args);
    }

    /**
     * 执行返回单一结果的查询语句
     * @param hql
     * @param args
     * @return
     */
    protected static Object namedUniqueResult(String hql, Object[] args){
    Session ssn = getSession();
    Query q = ssn.getNamedQuery(hql);
    for(int i=0;args!=null&&i<args.length;i++){
    q.setParameter(i, args[i]);
    }
    q.setMaxResults(1);
    return q.uniqueResult();
    } /**
     * 执行更新语句
     * @param hql
     * @param args
     * @return
     */
    protected static int executeNamedUpdate(String hql, Object[] args){
    Session ssn = getSession();
    Query q = ssn.getNamedQuery(hql);
    for(int i=0;args!=null&&i<args.length;i++){
    q.setParameter(i, args[i]);
    }
    return q.executeUpdate();
    } /**
     * 执行更新语句
     * @param hql
     * @param args
     * @return
     */
    protected static int commitNamedUpdate(String hql, Object[] args){
    try{
    Session ssn = getSession();
    beginTransaction();
    Query q = ssn.getNamedQuery(hql);
    for(int i=0;args!=null&&i<args.length;i++){
    q.setParameter(i, args[i]);
    }
    int er = q.executeUpdate();
    commit();
    return er;
    }catch(HibernateException e){
    rollback();
    throw e;
    }
    }

    /**
     * Get a instance of hibernate's session
     * @return
     * @throws HibernateException
     */
    protected static Session getSession(){
    return HibernateUtils.getSession();
    } /**
     * Start a new database transaction.
     */
    protected static void beginTransaction(){
    HibernateUtils.beginTransaction();
    } /**
     * Commit the database transaction.
     */
    protected static void commit(){
    HibernateUtils.commit();
    } /**
     * Rollback the database transaction.
     */
    protected static void rollback(){
    HibernateUtils.rollback();
    }
    }
      

  12.   

    哈哈,如果都是类似的CRUD操作,而且都是基本表的操作,不涉及关联操作,干脆写一个自动生成代码的工具。写这样一个程序,基于数据库表。
    1.自动生成实体类(每个库表对应一个类);
    2.然后生成是实体类的管理类,里边是对实体类的CRUD操作方法(一个实体类生成一个Manager类);
    3.自动生成jsp页面;
      

  13.   

    http://www.sqlserver.com.cn/site/show.html?myid=59&node=c0.1&sub=c0.1.0
      

  14.   

    HIBERNATE--!!!好东西!!
    谢谢!学习中!
      

  15.   

    HIBERNATE--!!!好东西!!
    谢谢!学习中!