軟件藝術(shù)思考者  
          混沌,彷徨,立志,蓄勢...
          公告
          日歷
          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          隨筆分類(86)

          隨筆檔案(85)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

          這幾天一直沒有更新我的博客是因為我遇到了一個棘手的問題,這是我編程以來困擾我時間最長的一個問題:從周一下午一直到現(xiàn)在。如果哪位高手有這方面的經(jīng)驗,請不吝指教:
          這是個關(guān)于hibernate方面的問題:
          我的數(shù)據(jù)庫關(guān)聯(lián)較多,hbm.xml是用myeclipse自動生成的.dao是spring的,也是myeclipse自動生成的.在用hibernate向數(shù)據(jù)庫插入數(shù)據(jù)的時候,第一次執(zhí)行還比較順利,但把同樣的數(shù)據(jù)再次插入的時候,代碼就走不動了.(主鍵是自增長的,插入時不設(shè)值),但當(dāng)我重啟tomcat后,第一次執(zhí)行插入又能插入了,但第二次執(zhí)行的時候又走不動了...就這樣周而復(fù)始.
          我測試后發(fā)現(xiàn)經(jīng)常被卡住的語句是類似下面的語句:
          (某類)beanDAO.findByExample(某類實例).get(0);
          請各位抽空看看.謝謝.

          大家可以憑經(jīng)驗來判斷一下這個問題.不用看代碼.因為hbm.mxl 和dao都是myeclipse自動生成的,我沒有改.
          而程序中經(jīng)常出錯就這句.(某類)beanDAO.findByExample(某類實例).get(0);


          現(xiàn)在我對這個問題總算有點思路了。但還沒實現(xiàn),請高手指教。

          posted on 2006-08-17 14:07 智者無疆 閱讀(1433) 評論(8)  編輯  收藏 所屬分類: about hibernate
          評論:
          • # re: 最近遇到了hibernate的一個問題  智者無疆 Posted @ 2006-08-17 14:10
            注意出問題的這句是先從數(shù)據(jù)庫里向外讀一個數(shù)據(jù),然后為插入其他表作準(zhǔn)備。  回復(fù)  更多評論   

          • # re: 最近遇到了hibernate的一個問題  Robin's Java World Posted @ 2006-08-17 21:57
            你的DAO Bean是不是單例狀態(tài)?如果是的話就改為非單態(tài)吧。  回復(fù)  更多評論   

          • # re: 最近遇到了hibernate的一個問題  Red Posted @ 2006-08-17 23:25
            由于 findByExample 操作,數(shù)據(jù)量過大有可能造成問題  回復(fù)  更多評論   

          • # re: 最近遇到了hibernate的一個問題  智者無疆 Posted @ 2006-08-18 09:17
            謝謝robin 和red的提示,我會把試驗結(jié)果放在這兒。  回復(fù)  更多評論   

          • # re: 最近遇到了hibernate的一個問題  智者無疆 Posted @ 2006-08-18 09:43
            DAO改為非單態(tài)依然在第二次執(zhí)行插入時不成功。依然是那個句子卡住了,下面我來想辦法修理那個倒霉孩子.(某類)beanDAO.findByExample(某類實例).get(0);  回復(fù)  更多評論   

          • # re: 最近遇到了hibernate的一個問題  Binary Posted @ 2006-08-21 15:09
            事務(wù)關(guān)閉了嗎?  回復(fù)  更多評論   

          • # re: 最近遇到了hibernate的一個問題  智者無疆 Posted @ 2006-08-22 15:55
            困擾了一個星期的錯誤,今天終于得以解決:
            1,我的web.xml

            <?xml version="1.0" encoding="UTF-8"?>
            <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
            http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

            <servlet>
            <servlet-name>SpringContextServlet</servlet-name>
            <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
            </servlet>

            <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
            </context-param>



            <servlet>
            <description>This is the description of my J2EE component</description>
            <display-name>This is the display name of my J2EE component</display-name>
            <servlet-name>Fileupload</servlet-name>
            <servlet-class>com.real.zlj.common.Fileupload</servlet-class>
            </servlet>
            <servlet>
            <description>This is the description of my J2EE component</description>
            <display-name>This is the display name of my J2EE component</display-name>
            <servlet-name>DealExcel</servlet-name>
            <servlet-class>com.real.zlj.common.DealExcel</servlet-class>
            </servlet>
            <servlet>
            <description>This is the description of my J2EE component</description>
            <display-name>This is the display name of my J2EE component</display-name>
            <servlet-name>UploadExamPoins</servlet-name>
            <servlet-class>com.real.zlj.common.UploadExamPoins</servlet-class>
            </servlet>
            <servlet>
            <description>This is the description of my J2EE component</description>
            <display-name>This is the display name of my J2EE component</display-name>
            <servlet-name>DealExamPoins</servlet-name>
            <servlet-class>com.real.zlj.common.DealExamPoins</servlet-class>
            </servlet>



            <servlet-mapping>
            <servlet-name>Fileupload</servlet-name>
            <url-pattern>/fileupload</url-pattern>
            </servlet-mapping>
            <servlet-mapping>
            <servlet-name>DealExcel</servlet-name>
            <url-pattern>/DealExcel</url-pattern>
            </servlet-mapping>
            <servlet-mapping>
            <servlet-name>UploadExamPoins</servlet-name>
            <url-pattern>/UploadExamPoins</url-pattern>
            </servlet-mapping>
            <servlet-mapping>
            <servlet-name>DealExamPoins</servlet-name>
            <url-pattern>/DealExamPoins</url-pattern>
            </servlet-mapping>




            </web-app>
            2。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="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName">
            <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
            </property>
            <property name="url">
            <value>jdbc:microsoft:sqlserver://localhost:1433</value>
            </property>
            <property name="username">
            <value>sa</value>
            </property>
            </bean>
            <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="dataSource">
            <ref bean="dataSource" />
            </property>
            <property name="hibernateProperties">
            <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            </props>
            </property>




            <property name="mappingResources">
            <list>
            <value>com/real/zlj/hibernate/classes/UserInfo.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/StAttendance.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/FaAttendance.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/ExClass.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/Syllabus.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/Result.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/Faculty.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/Subject.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/ScGlory.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/ScTeacher.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/ScBulletin.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/ClassInfo.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/Department.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/Exam.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/School.hbm.xml</value>
            <value>com/real/zlj/hibernate/classes/Students.hbm.xml</value>
            </list>
            </property>
            </bean>

            <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
            <bean id="myTransactionManager"
            class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory">
            <ref bean="sessionFactory"/>
            </property>
            </bean>
            <!--配置各個servicTarget-->
            <bean id="FacultyTarget" class="com.real.zlj.services.FacultyImp">
            <property name="facultyDao">
            <ref bean="FacultyDAO"/>
            </property>
            </bean>

            <bean id="ExClassTarget" class="com.real.zlj.services.ExClassImp">
            <property name="exClassDAO">
            <ref bean="ExClassDAO"/>
            </property>
            </bean>
            <bean id="ClassInfoTarget" class="com.real.zlj.services.ClassInfoImp">
            <property name="classDao">
            <ref bean="ClassInfoDAO"/>
            </property>
            </bean>
            <bean id="SchoolTarget" class="com.real.zlj.services.SchoolImp">
            <property name="schoolDao">
            <ref bean="SchoolDAO"/>
            </property>
            </bean>
            <bean id="StudentsTarget" class="com.real.zlj.services.StudentImp">
            <property name="studentDAO">
            <ref bean="StudentsDAO"/>
            </property>
            </bean>
            <bean id="ExamTarget" class="com.real.zlj.services.ExamImp">

            <property name="examDAO">
            <ref bean="ExamDAO"/>
            </property>
            </bean>
            <bean id="DepartTarget" class="com.real.zlj.services.DepartImp">
            <property name="departDAO">
            <ref local="DepartmentDAO"/>
            </property>
            </bean>

            <!--配置各個services ............... -->

            <bean id="FacultyService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="proxyInterfaces">
            <list>
            <value>com.real.zlj.services.IFaculty</value>
            </list>
            </property>
            <property name="target">
            <ref local="FacultyTarget"/>
            </property>
            <property name="transactionManager">
            <ref local="myTransactionManager"/>
            </property>
            <property name="transactionAttributes">
            <props >
            <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
            <prop key="save*">PROPAGATION_REQUIRED</prop>
            </props>
            </property>
            </bean>


            <bean id="ExClassService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="target">
            <ref local="ExClassTarget"/>
            </property>
            <property name="transactionManager">
            <ref local="myTransactionManager"/>
            </property>
            <property name="transactionAttributes">
            <props>
            <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
            <prop key="save*">PROPAGATION_REQUIRED</prop>
            </props>
            </property>
            </bean>

            <bean id="ClassInfoService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="target">
            <ref local="ClassInfoTarget"/>
            </property>
            <property name="transactionManager">
            <ref local="myTransactionManager"/>
            </property>
            <property name="transactionAttributes">
            <props>
            <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
            <prop key="save*">PROPAGATION_REQUIRED</prop>
            </props>
            </property>
            </bean>

            <bean id="SchoolService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="target">
            <ref local="SchoolTarget"/>
            </property>
            <property name="transactionManager">
            <ref local="myTransactionManager"/>
            </property>
            <property name="transactionAttributes">
            <props>
            <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
            <prop key="save*">PROPAGATION_REQUIRED</prop>
            </props>
            </property>
            </bean>

            <bean id="StudentsService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="target">
            <ref local="StudentsTarget"/>
            </property>
            <property name="transactionManager">
            <ref local="myTransactionManager"/>
            </property>
            <property name="transactionAttributes">
            <props>
            <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
            <prop key="save*">PROPAGATION_REQUIRED</prop>
            </props>
            </property>
            </bean>
            <bean id="ExamService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="target">
            <ref local="ExamTarget"/>
            </property>
            <property name="transactionManager">
            <ref local="myTransactionManager"/>
            </property>
            <property name="transactionAttributes">
            <props>
            <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
            <prop key="save*">PROPAGATION_REQUIRED</prop>
            </props>
            </property>
            </bean>

            <bean id="DepartService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="target">
            <ref local="DepartTarget"/>
            </property>
            <property name="transactionManager">
            <ref local="myTransactionManager"/>
            </property>
            <property name="transactionAttributes">
            <props>
            <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
            <prop key="save*">PROPAGATION_REQUIRED</prop>
            </props>
            </property>
            </bean>
            <!--以下是各個DAO配置 -->
            <bean id="UserInfoDAO" class="com.real.zlj.hibernate.classes.UserInfoDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="StAttendanceDAO" class="com.real.zlj.hibernate.classes.StAttendanceDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="FaAttendanceDAO" class="com.real.zlj.hibernate.classes.FaAttendanceDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="ExClassDAO" class="com.real.zlj.hibernate.classes.ExClassDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="SyllabusDAO" class="com.real.zlj.hibernate.classes.SyllabusDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="ResultDAO" class="com.real.zlj.hibernate.classes.ResultDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="FacultyDAO" class="com.real.zlj.hibernate.classes.FacultyDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="SubjectDAO" class="com.real.zlj.hibernate.classes.SubjectDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="ScGloryDAO" class="com.real.zlj.hibernate.classes.ScGloryDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="ScTeacherDAO" class="com.real.zlj.hibernate.classes.ScTeacherDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="ScBulletinDAO" class="com.real.zlj.hibernate.classes.ScBulletinDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="ClassInfoDAO" class="com.real.zlj.hibernate.classes.ClassInfoDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="DepartmentDAO" class="com.real.zlj.hibernate.classes.DepartmentDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="ExamDAO" class="com.real.zlj.hibernate.classes.ExamDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="SchoolDAO" class="com.real.zlj.hibernate.classes.SchoolDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>
            <bean id="StudentsDAO" class="com.real.zlj.hibernate.classes.StudentsDAO">
            <property name="sessionFactory">
            <ref bean="sessionFactory" />
            </property>
            </bean>

            </beans>

            3.寫service層的接口

            4。寫service層的實現(xiàn)類。

            注意 (1)一定要繼承它的接口。

            (2)寫setXxDao()時,XxDao一定要和他的屬性xxDao相對應(yīng)。

            (3)findByExample(某類實例)特別好用,但findByName()經(jīng)常查詢失敗。

            (4)別忘了老朋友:ServletContext sc = request.getSession().getServletContext();
            WebApplicationContext wac = WebApplicationContextUtils
            .getRequiredWebApplicationContext(sc);



            (5)poi的關(guān)鍵的幾句:

            FileInputStream fis = new FileInputStream(fNew);
            POIFSFileSystem fs = new POIFSFileSystem(fis);
            HSSFWorkbook workbook = new HSSFWorkbook(fs);
            // 創(chuàng)建一個文件后,開始各個表單的循環(huán)
            int sheetNum = 2;
            out.print("此excel工作薄表單數(shù)為:"
            + workbook.getNumberOfSheets());
            out.print("<br/>");
            for (sheetNum = 1; sheetNum <= workbook.getNumberOfSheets(); sheetNum++) {
            HSSFSheet sheet = workbook.getSheet("Sheet" + sheetNum);
            out.println("<font color='red' >表單" + sheetNum+ " 開始處理...</font><br>");
            // 創(chuàng)建一個表單后,開始每行的循環(huán)*** 此處還要檢查getLastRowNum()得到的意思
            for (int i = sheet.getFirstRowNum()+1; i <= sheet.getLastRowNum(); i++) {
            HSSFRow row = sheet.getRow(i);

            typeid = row.getCell((short) 0).getCellType();

              回復(fù)  更多評論   

          • # re: 最近遇到了hibernate的一個問題  xiaobai Posted @ 2006-08-31 15:52
            spring生成的dao的方法有時候不好用
            例如:用getById(id)不好用的時候,可以用getByExample試試。  回復(fù)  更多評論   

           
          Copyright © 智者無疆 Powered by: 博客園 模板提供:滬江博客


             觀音菩薩贊

          主站蜘蛛池模板: 晋江市| 山阴县| 张家口市| 永兴县| 焦作市| 收藏| 梅州市| 沧源| 镇江市| 武宁县| 巫山县| 枣强县| 乳山市| 长汀县| 闽清县| 华安县| 铁岭县| 仙居县| 交口县| 凉山| 天全县| 汤阴县| 依安县| 喀什市| 保靖县| 张家口市| 从江县| 临朐县| 乌兰察布市| 湟源县| 建湖县| 措美县| 丰原市| 丰顺县| 大邑县| 靖边县| 额敏县| 井陉县| 汾阳市| 杨浦区| 安新县|