zoukankan      html  css  js  c++  java
  • 关于 NHibernate 连接 Access 小结

    由于项目的需要(主要是测试需要),需要对Access数据库进行操作,在DAL我采用了NHibernate,由于NHB以前只是在Java上运用了些皮毛,因此遇到的问题自然也不少,记录下来,以备后忘:
    1)连接Access:NHB没有专门的Access方言,网上搜罗也是众说纷纭,大概是很少将Nhb用在Access上的缘故吧,只能自己尝试了。

    我的成功配置文件如下:
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
      <session-factory name="masparameter">
        <property name="dialect">NHibernate.Dialect.SybaseDialect</property>
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="connection.driver_class">NHibernate.Driver.OleDbDriver</property>
        <property name="connection.connection_string">Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=F:\ags92prj\wma3\masparameter.mdb;</property>
        <property name="connection.isolation">ReadCommitted</property>   
        <!-- HBM Mapping Files -->
        <mapping assembly="wmadata" />
      </session-factory>
    </hibernate-configuration>

    其中 <property name="dialect">NHibernate.Dialect.SybaseDialect</property> 我使用了Sybase的方言,Hibernate没有专门针对Access的方言,只能用一个近似的代替。

    开始我使用了MSSql7的方言,但是经过测试:在Insert的语句时,NHB抛出异常,原因是Access不支持同时执行两个SQL语句(MSServer则支持)。

    其次我又换了Oracle作为替代方言,经测,Last_。。。的错误(具体忘了),记录是被增加至数据库了,但是总是抛出其他异常。

    最后尝试了Sybase的方言,OK,在增删改查的操作下没有出现异常。

    对于NHibernate,我也是初学,以上文字希望对大家能有所帮助并多多指教。
  • 相关阅读:
    深入了解Struts2返回JSON数据的原理及具体应用范例
    Struts国际化
    LeetCode Balanced Binary Tree
    LeetCode Triangle
    Binary Tree Level Order Traversal
    Pow(x,n)
    Symmetric Tree
    LeetCode Word Search
    LeetCode Insert Interval
    Maximum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/gis9/p/814034.html
Copyright © 2011-2022 走看看