免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3341 | 回复: 7
打印 上一主题 下一主题

新手求助struts+spring_hibernate [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-17 10:38 |只看该作者 |倒序浏览
用eclipse写的一个数据库插入的功能,吏终不能成功,请大家帮我看一下
applicationContext.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="sessionFactory"
                class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                <property name="configLocation">
                        <value>WEB-INF/hibernate.cfg.xml</value>
                </property>
        </bean>
        <bean id="addUser1" class="test.spring.InsertUser" autowire="byName">
        </bean>
</beans>


hibernate.cfg.xml如下:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
        <mapping resource="test/hibernate/User1.hbm.xml" />

</session-factory>

</hibernate-configuration>


User1.hbm.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="test.hibernate.User1" table="user1" dynamic-update="false"
dynamic-insert="false">
        <id name="id" type="java.lang.Long">
            <column name="id" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" length="100" />
        </property>
        <property name="school" type="java.lang.String">
            <column name="school" length="100" />
        </property>
    </class>
</hibernate-mapping>

User1.java如下:
package test.hibernate;



/**
* User1 generated by MyEclipse - Hibernate Tools
*/

public class User1  implements java.io.Serializable {


    // Fields   

     /**
         *
         */
        private static final long serialVersionUID = -7496479896490190687L;
        private Long id;
     private String name;
     private String school;


    // Constructors

    /** default constructor */
    public User1() {
    }

        /** minimal constructor */
    public User1(Long id) {
        this.id = id;
    }
   
    /** full constructor */
    public User1(Long id, String name, String school) {
        this.id = id;
        this.name = name;
        this.school = school;
    }

   
    // Property accessors

    public Long getId() {
        return this.id;
    }
   
    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return this.name;
    }
   
    public void setName(String name) {
        this.name = name;
    }

    public String getSchool() {
        return this.school;
    }
   
    public void setSchool(String school) {
        this.school = school;
    }
   








}


Useraction如下:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package test.struts.action;
import test.spring.impl.InsertUserImpl;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import test.spring.InsertUser;
import test.hibernate.User1;
/**
* MyEclipse Struts
* Creation date: 06-30-2007
*
* XDoclet definition:
* @struts.action validate="true"
*/
public class UserAction extends BaseAction {
        /*
         * Generated Methods
         */

        /**
         * Method execute
         * @param mapping
         * @param form
         * @param request
         * @param response
         * @return ActionForward
         */
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                        HttpServletRequest request, HttpServletResponse response) {
                try
                {
                        InsertUserImpl ob =(InsertUser)getWebApplicationContext().getBean("addUser1");
                        User1 u=new User1();
                        long id=(long) 1.0;
                        u.setId(id);
                        u.setName("ddddd");
                        u.setSchool("dddd");
                        ob.add(u);
                }
                catch(Exception e)
                {
                        System.out.print(e);
                }
               
                return mapping.findForward("ok");
        }
}


InsertUser如下:
package test.spring;
import test.spring.impl.InsertUserImpl;
import test.hibernate.User1;
import org.springframework.orm.hibernate3.*;

public class InsertUser extends HibernateTemplate implements InsertUserImpl         {
        public void add(User1 user) {
                try
                {
                        save(user);
                       
                }
                catch(Exception e)
                {
                        System.out.print("出你吗"+e);
                }
               
        }

        public void del() {
                // TODO 自动生成方法存根
               
        }

        public void disp() {
                // TODO 自动生成方法存根
               
        }

        public void update() {
                // TODO 自动生成方法存根
               
        }
   
        public void close(InsertUserImpl ob)
        {
               
        }
}

小弟有二个问题想问,
1.我这样来应用struts+spring+hibernate行不行,就是现在流行的用法是不是这样,我这样写有没有什么性能上的差别.
2.我UserAction后,并没有插入数据,而且sql查询器里好像这个表被占用一样,用select查询该表,就一直停在查询的状态,日志有警告信息:
Hibernate: insert into user1 (name, school, id) values (?, ?, ?)
2007-07-17 09:09:17,187 WARN  hibernate.util.JDBCExceptionReporter:48  -> SQL Warning: 0, SQLState:
2007-07-17 09:09:17,187 WARN  hibernate.util.JDBCExceptionReporter:49  -> [Microsoft][SQLServer 2000 Driver for JDBC]Database changed to beingo
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:48  -> SQL Warning: 0, SQLState:
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:49  -> [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将数据库上下文改为 'beingo'。
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:48  -> SQL Warning: 0, SQLState:
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:49  -> [Microsoft][SQLServer 2000 Driver for JDBC]Language changed to 简体中文
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:48  -> SQL Warning: 0, SQLState:
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:49  -> [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将语言设置改为 简体中文。


请各位大哥大姐帮个忙

论坛徽章:
0
2 [报告]
发表于 2007-07-17 20:55 |只看该作者
1.我认为比较流行是, 既然有spring 就把hibernate.cfg.xml写到 applicationContext.xml中.
2.你的数据库是什么?  id 的生成方式是什么 ?
3.你的hibernate.cfg.xml的数据库连接(url userName driver 还有方言那些)在哪里定义了 ?
4.你报什么错误啦 ? 贴出来啊....

论坛徽章:
0
3 [报告]
发表于 2007-07-18 16:08 |只看该作者
ID的生成方式是什么意思,我对spring一点都不熟,我只是在applicationContext.xml里配置了bean,然后用getBean方法得到bean的实例.
我用的是slqserver2000,我的数据配置是写在properties文件里的,内容如下
#Created by JInto - www.guh-software.de
#Thu Sep 21 10:45:43 CST 2006

hibernate.cache.use_second_level_cache=false
hibernate.connection.driver_class=com.microsoft.jdbc.sqlserver.SQLServerDriver
hibernate.connection.password=beingo
hibernate.connection.url=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=beingo;SelectMethod=cursor
hibernate.connection.username=sa
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.format_sql=true
hibernate.jdbc.batch_size=15
hibernate.jdbc.fetch_size=25
hibernate.max_fetch_depth=1
hibernate.query.substitutions=yes 'Y', no 'N'
hibernate.show_sql=true

程序没有报错,只是写不进数据,日志里只有警告
Hibernate: insert into user1 (name, school, id) values (?, ?, ?)
2007-07-17 09:09:17,187 WARN  hibernate.util.JDBCExceptionReporter:48  -> SQL Warning: 0, SQLState:
2007-07-17 09:09:17,187 WARN  hibernate.util.JDBCExceptionReporter:49  -> [Microsoft][SQLServer 2000 Driver for JDBC]Database changed to beingo
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:48  -> SQL Warning: 0, SQLState:
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:49  -> [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将数据库上下文改为 'beingo'。
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:48  -> SQL Warning: 0, SQLState:
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:49  -> [Microsoft][SQLServer 2000 Driver for JDBC]Language changed to 简体中文
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:48  -> SQL Warning: 0, SQLState:
2007-07-17 09:09:17,203 WARN  hibernate.util.JDBCExceptionReporter:49  -> [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将语言设置改为 简体中文。

论坛徽章:
1
天秤座
日期:2013-11-07 18:39:20
4 [报告]
发表于 2007-07-18 16:29 |只看该作者
改成这样试试
User1.hbm.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="test.hibernate.User1" table="user1" dynamic-update="false"
dynamic-insert="false">
<id
            name="id"
            column="id"
            type="long"
            unsaved-value="0"
        >
            <generator class="increment">
            </generator>
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" length="100" />
        </property>
        <property name="school" type="java.lang.String">
            <column name="school" length="100" />
        </property>
    </class>
</hibernate-mapping>

论坛徽章:
0
5 [报告]
发表于 2007-07-19 09:26 |只看该作者
还是不行,运行后,在数据库里,这个表都打不开,是不是因为数据的原因啊

论坛徽章:
0
6 [报告]
发表于 2007-07-19 09:45 |只看该作者
我发现个问题,就是当我运行InsertUser时,我在数据查询分析器里select * from user1
就一直处于查询状态,只有当我把tomcat停了,他才会好,,我大概能猜到是哪里的问题,但不知道怎么解决,版主你一定要帮我啊,我被这个问题搞了半个月了

论坛徽章:
0
7 [报告]
发表于 2007-07-23 16:57 |只看该作者
安装你说的  运行InsertUser时,我在数据查询分析器里select * from user1
就一直处于查询状态,只有当我把tomcat停了,他才会好,,我大概能猜到是哪里的问题,但不知道怎么解决,版主你一定要帮我啊,我被这个问题搞了半个月了  我看是数据库发生死锁  你看看你的逻辑也没有问题  还有你的配置太乱了

论坛徽章:
0
8 [报告]
发表于 2007-07-24 08:31 |只看该作者
问题解决了,但我也不知道怎么解决的,我把spring的配置文件重新配了一下就好了,我想问一下,我这样应用struts+spring+hibernate对吗,还有我需要对数据连接做释放吗?在哪里设连接数
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP