<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-1  評(píng)論-68  文章-98  trackbacks-0

    1/ 數(shù)據(jù)庫驅(qū)動(dòng)

       1.1/ Oracle
            jdbc驅(qū)動(dòng)需要注意版本,class111.jar;o_jdbc.jar。
       1.2/ MS SQL Server
            注意版本和網(wǎng)絡(luò)配置(tcp和管道的權(quán)限)。
            官方驅(qū)動(dòng):2000,3個(gè)jar包;2005,一個(gè)jar包。
            jrds驅(qū)動(dòng):評(píng)價(jià)普遍比官方的好,注意各個(gè)版本。
       1.3/ MySQL

    2/ 數(shù)據(jù)庫連接/session

       2.1/ hibernate.cfg.xml配置jdbc驅(qū)動(dòng)
       2.2/ hibernate.cfg.xml配置datasource
       2.3/ 在獲取session時(shí)加載Connection
            struts的datasource
            web server的datasource
            dbcp的datasource

    3/ 事務(wù)Transaction 與 commit
     
       一次事務(wù)只可以提交一次,多次提交會(huì)報(bào)錯(cuò)。
       javax.servlet.ServletException: JDBC commit failed

    4/ 一張表轉(zhuǎn)換成了2個(gè)對(duì)象,修正為一個(gè)對(duì)象

       4.1 修改*.hbm.xml,去除composite-id標(biāo)簽,將主鍵對(duì)應(yīng)的key-property改為id,其它key-property改為property;
       4.2 刪除*.java和Abstract*.java,將*Id.java和Abstract*Id.java分別重構(gòu)為*.java和Abstract*.java;
       4.3 修改*DAO.jar,將findById的參數(shù)修正為主鍵的類型,注意與*.hbm.xml匹配。

    修改前:

    < hibernate-mapping >
        
    < class  name ="com.inc.xschool.entity.PositionInfo"  table ="POSITION_INFO"  schema ="dbo"  catalog ="xschool" >
            
    < composite-id  name ="id"  class ="com.inc.xschool.entity.PositionInfoId" >
                
    < key-property  name ="positionId"  type ="java.lang.Long" >
                    
    < column  name ="POSITION_ID"   />
                
    </ key-property >
                
    < key-property  name ="positionName"  type ="java.lang.String" >
                    
    < column  name ="POSITION_NAME"  length ="50"   />
                
    </ key-property >
                
    < key-property  name ="custId"  type ="java.lang.String" >
                    
    < column  name ="CUST_ID"  length ="50"   />
                
    </ key-property >
            
    </ composite-id >
        
    </ class >
    </ hibernate-mapping >

    修改后:
    <hibernate-mapping>
        
    <class name="com.inc.xschool.entity.PositionInfo" table="POSITION_INFO" schema="dbo" catalog="xschool">
            
    <id name="positionId" type="java.lang.Long">
                
    <column name="POSITION_ID" precision="2" scale="0" />
                
    <generator class="assigned"></generator>
            
    </id>
            
    <property name="positionName" type="java.lang.String">
                
    <column name="POSITION_NAME" length="50" />
            
    </property>
            
    <property name="custId" type="java.lang.String">
                
    <column name="CUST_ID" length="50" />
            
    </property>
        
    </class>
    </hibernate-mapping>

    5/ 遞增字段(整型)
       5.1 Oracle  <generator class="sequence">SEQ_NAME</generator>
       5.2 MySQL  <generator class="increment"/>
       5.3 SQL SERVER <generator class="identity"/>

    6/ MS SQL SERVER Exception

    6.1 [Microsoft][SQLServer 2000 Driver for JDBC]Underlying input stream returned zero bytes
    jdbc bug,text字段的值設(shè)為了空或'',改成' '即可,2005中也許修正此bug。

    6.2 [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.
    在手工事務(wù)模式 (AutoCommit=false) 下,如果使用直接 (SelectMethod=direct) 模式,當(dāng)您嘗試對(duì)使用 JDBC 驅(qū)動(dòng)程序的 SQL Server 數(shù)據(jù)庫執(zhí)行多個(gè)語句時(shí),將會(huì)出現(xiàn)此問題。直接模式是該驅(qū)動(dòng)程序的默認(rèn)模式。
    url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=whm;SelectMethod=cursor

    6.3 [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
        com.microsoft.sqlserver.jdbc.SQLServerException: 到主機(jī)  的 TCP/IP 連接失敗。

    客戶端:10.170.10.2; WinXP SP2; SQL Server 2000(SP4)
    服務(wù)端:10.170.10.3; Win2003 Server; SQL Server 2000(SP4)

    1/ Microsoft SQL Server 2000 Driver for JDBC(Service Pack 1)
    msbase.jar;mssqlserver.jar;msutil.jar

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String url  = "jdbc:microsoft:sqlserver://10.170.10.3:1433;DatabaseName=xschool";

    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
     at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
     at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
     at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
     at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
     at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
     at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
     at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
     at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
     at java.sql.DriverManager.getConnection(DriverManager.java:512)
     at java.sql.DriverManager.getConnection(DriverManager.java:171)
     at com.inc.xchool.test.TestJDBC.main(TestJDBC.java:31)

    2/ Microsoft SQL Server 2005 JDBC Driver
    sqljdbc.jar

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
    String url  = "jdbc:sqlserver://10.170.10.3:1433;DatabaseName=xschool";

    com.microsoft.sqlserver.jdbc.SQLServerException: 到主機(jī)  的 TCP/IP 連接失敗。 java.net.ConnectException: Connection timed out: connect
     at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
     at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
     at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
     at java.sql.DriverManager.getConnection(DriverManager.java:512)
     at java.sql.DriverManager.getConnection(DriverManager.java:171)
     at com.inc.xchool.test.TestJDBC.main(TestJDBC.java:34)

    3/ Win的數(shù)據(jù)源(ODBC),系統(tǒng)DSN
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
    可以建立連接

    解決方法:在10.3的防火墻設(shè)置中開通1433的TCP權(quán)限。
    SQL SERVER TCP 1433

    6.4 org.eclipse.core.internal.resources.ResourceException: A resource exists with a different case: /ok/hibernate.reveng.xml.
    狀況:新建了2個(gè)web項(xiàng)目,一個(gè)叫ok,一個(gè)叫okadmin,都添加了hibernate關(guān)聯(lián),后者反轉(zhuǎn)數(shù)據(jù)庫結(jié)構(gòu)的時(shí)候,eclipse在.log中留下以上的log。
    解決方法:臨時(shí)remove另外一個(gè)項(xiàng)目。

    6.5 ORA-01461 can bind a LONG value only for insert into a LONG column
    狀況:JDBC驅(qū)動(dòng)與連接的Oracle數(shù)據(jù)庫版本不一致。
    解決方法:置換JDBC驅(qū)動(dòng)為Oracle系統(tǒng)自帶的。

    posted on 2007-02-08 15:51 Xu Jianxiang 閱讀(1819) 評(píng)論(1)  編輯  收藏 所屬分類: Open Source

    評(píng)論:
    # re: Hibernate FAQ 2009-10-09 10:19 | ajaxor
    剛好解決我的問題,謝謝!

    可惡的windows防火墻~  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 国产乱子伦片免费观看中字| 99久久综合精品免费| 99ee6热久久免费精品6| 亚洲欧洲高清有无| 三年片在线观看免费观看大全动漫| 日韩亚洲国产二区| 视频免费1区二区三区| 免费大片在线观看网站| 午夜亚洲国产理论片二级港台二级| 岛国大片免费在线观看| 亚洲高清国产拍精品熟女| 免费鲁丝片一级在线观看| 亚洲综合精品成人| 日韩精品视频免费在线观看| 亚洲国产精品无码第一区二区三区| 国产成人亚洲综合无码| 精品成人免费自拍视频| 亚洲国产一区二区a毛片| 国产在线观看麻豆91精品免费 | 久久久久亚洲AV成人网| 日本激情猛烈在线看免费观看| 亚洲国产精品成人网址天堂| 51午夜精品免费视频| 亚洲狠狠久久综合一区77777| 四虎成人免费网站在线| a毛片全部播放免费视频完整18| 亚洲妇熟XXXX妇色黄| 国产在线观看麻豆91精品免费| 欧亚一级毛片免费看| jlzzjlzz亚洲jzjzjz| 在线看片韩国免费人成视频| 香港特级三A毛片免费观看| 亚洲国产精品一区二区成人片国内| 免费无码看av的网站| ww在线观视频免费观看| 污污免费在线观看| 亚洲日本VA午夜在线影院| 亚洲伊人久久综合影院| 国产无遮挡裸体免费视频| 免费黄色电影在线观看| 污污污视频在线免费观看|