Struts2与Hibernate整合时无法读取数据库中的数据-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Struts2与Hibernate整合时无法读取数据库中的数据

2016-06-02 14:55:26 2504 1

小弟最近学习SSH框架,遇到一个问题,同时使用Struts2和Hibernate3.6时,Action中调用hibernateUtil的方法无法获取数据,而在测试类的main()方法里却能成功调用,小弟百思不得其解,恳请各位大神指点。
关键源代码如下:
业务逻辑ShowStuAction:

 public class ShowStuAction extends ActionSupport {

    private int page ;
    private  List<Student> result;

    public static void main(String args[]){
        List<Student> result = HibernateUtil.queryByPage("select stu from Student as stu",null,2, 20);
        System.out.println(result.size());
        for(Student s: result){
            System.out.println("学号" + s.getStu_no());
            System.out.println("姓名: " + s.getStu_name());
        }
    }

    public String execute(){

        result = HibernateUtil.queryByPage("select stu from Student as stu",null,1,20);
                if(result.isEmpty()){
                    System.out.println("Result is Empty");
                }
                return "success";
        }
hibernateUtil类关键代码:
 public class HibernateUtil {

        private static SessionFactory sessionFactory;

        /**
         * @return 获取会话工厂
         */
        public static SessionFactory getSessionFactory()
        {
            //读取Hibernate的配置文件  hibernamte.cfg.xml文件
            Configuration con=new Configuration().configure();
            SessionFactory sessionFactory=con.buildSessionFactory();
            return sessionFactory;
        }

        /**
         * @return 获取会话对象
         */
        public static Session getSession()
        {
            return getSessionFactory().openSession();
        }

                 /**
         * @param <T>
         * @param sql
         * @param param
         * @param page
         * @param size
         * @return 实现分页查询
         */
        @SuppressWarnings("unchecked")
        public static <T> List<T> queryByPage(String sql,String[] param,int page,int size)
        {
            System.out.println("QueryByPage");
            List<T> list=new ArrayList<T>();
            Session session=null;
            try
            {
                session=getSession();
                Query query=session.createQuery(sql);
                if(param!=null)
                {
                    for(int i=0;i<param.length;i++)
                    {
                        query.setString(i,param[i]);
                    }
                }
                //筛选条数
                query.setFirstResult((page - 1) * size);
                query.setMaxResults(size);
                list=query.list();
                for(Object t : query.list()){
                    System.out.println("nima");
                    System.out.println(t.toString());
                }
            }
            catch (Exception e)
            {
            }
            finally
            {
                if(session!=null)
                {
                    session.close();
                }
            }

            return list;
        }
hibernate3.6配置文件
 <hibernate-configuration>
    <session-factory>
        <property name="connection.driver">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/whu</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.cache.use_second_level_cache" >false</property>

        <mapping resource="pojo/Student.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
Struts2 配置文件
 <struts>
    <constant name="struts.configuration.xml.reload" value="true" />
    <constant name="struts.devMode" value="true" />
    <package name="stu" extends="struts-default">
        <action name="showStu" class="action.ShowStuAction" method="execute">
            <result name="success" >/content/show-stu-success.jsp</result>
        </action>
    </package>

</struts>

运行时,ShowStuAction中的main()方法可以成功地获取数据,而execute()方法中的数据总是空的,后台没有报错。

取消 提交回答
全部回答(1)
  • 云栖技术
    2019-07-17 19:24:55
    Configuration con=new Configuration().configure();
    改成
    0 0
相关问答

1

回答

spring为什么与Struts、Hibernate等单层框架不同?

2022-03-31 15:17:01 157浏览量 回答数 1

1

回答

MaxCompute Sql中的SQL 合并的场景有什么?

2021-12-08 19:20:31 117浏览量 回答数 1

1

回答

关于hibernate链接mysql数据库报错?报错

2020-06-22 14:46:18 317浏览量 回答数 1

1

回答

熟练了servlet。struts。还有hibernate和spring是否可以进项目了

2016-06-06 08:51:48 1890浏览量 回答数 1

1

回答

hibernate的关联关系,是否数据库表中有外键没有关系?

2016-03-17 09:36:49 2063浏览量 回答数 1

1

回答

同一service里使用Hibernate和jdbc操作数据库

2016-03-17 09:34:34 1542浏览量 回答数 1

2

回答

hibernate 中定义的变量名一定和数据库字段名相同吗?

2016-03-06 14:12:10 2084浏览量 回答数 2

1

回答

关于 Spring引入两个数据源配置Hibernate 问题

2016-03-04 14:58:30 2472浏览量 回答数 1

1

回答

关于Hibernate先分页,后随机取出数据问题

2016-03-04 15:28:08 1947浏览量 回答数 1

1

回答

关于Spring 支持的除了hibernate 事务外还支持别的吗?

2016-03-04 13:37:09 1609浏览量 回答数 1
+关注
云栖技术
社区爱好者,专为云栖社区服务!
34
文章
897
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载