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

          導航

          隨筆分類(86)

          隨筆檔案(85)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

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

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


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

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

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

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

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

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

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

          • # 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層的實現類。

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

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

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

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



            (5)poi的關鍵的幾句:

            FileInputStream fis = new FileInputStream(fNew);
            POIFSFileSystem fs = new POIFSFileSystem(fis);
            HSSFWorkbook workbook = new HSSFWorkbook(fs);
            // 創建一個文件后,開始各個表單的循環
            int sheetNum = 2;
            out.print("此excel工作薄表單數為:"
            + 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>");
            // 創建一個表單后,開始每行的循環*** 此處還要檢查getLastRowNum()得到的意思
            for (int i = sheet.getFirstRowNum()+1; i <= sheet.getLastRowNum(); i++) {
            HSSFRow row = sheet.getRow(i);

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

              回復  更多評論   

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

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


             觀音菩薩贊

          主站蜘蛛池模板: 江阴市| 商城县| 鹿邑县| 巴林左旗| 高碑店市| 确山县| 禹州市| 利川市| 樟树市| 乌兰浩特市| 青州市| 霍邱县| 和龙市| 赞皇县| 罗甸县| 集贤县| 喜德县| 布尔津县| 丽江市| 神池县| 金川县| 仙桃市| 城口县| 二手房| 霍州市| 龙井市| 衡山县| 普宁市| 汶川县| 北流市| 祁连县| 兰西县| 怀安县| 肇东市| 玛多县| 普定县| 泰安市| 瓦房店市| 中宁县| 丰都县| 连云港市|