惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google Online Security Blog
Google Online Security Blog
S
Security @ Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
人人都是产品经理
人人都是产品经理
The Hacker News
The Hacker News
W
WeLiveSecurity
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
博客园 - 司徒正美
雷峰网
雷峰网
L
LINUX DO - 最新话题
博客园 - 叶小钗
云风的 BLOG
云风的 BLOG
The Last Watchdog
The Last Watchdog
V2EX - 技术
V2EX - 技术
S
Security Affairs
有赞技术团队
有赞技术团队
月光博客
月光博客
T
Threatpost
T
Tor Project blog
O
OpenAI News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
V2EX
Know Your Adversary
Know Your Adversary
Project Zero
Project Zero
博客园 - 三生石上(FineUI控件)
D
Docker
AWS News Blog
AWS News Blog
AI
AI
P
Proofpoint News Feed
K
Kaspersky official blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
Darknet – Hacking Tools, Hacker News & Cyber Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Securelist
F
Fortinet All Blogs
F
Full Disclosure
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
量子位
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Palo Alto Networks Blog
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
美团技术团队
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
MyScale Blog
MyScale Blog

博客园 - 阿修罗一平

IIS部署WCF出现的各种问题汇总 Infragistics控件的工具栏注册 NUnit的使用中可能遇到的问题 Linq备忘 Nihibernate的重要知识点 Devexpress使用记录 使用List数据集合,利用DevExpress.XtraReports开发Master-Detail报表 PDA访问WCF PDA(WinCE)项目开发中遇到的问题及解决方法总结 Grid控件绑定bindingSource后在新增行时设置Cell的初始值 “BindingSource绑定单个实体对象后在代码中赋值无效和无法显示”的解决方法 sqlservier2005转成sqlserver2000中出现的问题(WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) 项目考虑因素及解决方案(.net) 设计模式在工作中的应用(三) 设计模式在工作中的应用(二) 设计模式在工作中的应用(一) Remoting服务集成到IIS的简单总结 关于Remoting服务启动和停止的简单总结 将公司系统从SqlServer 2K移植到Oracle 10g中的简要总结
NHibernate示例
阿修罗一平 · 2007-09-29 · via 博客园 - 阿修罗一平

第一步:创建数据库
创建表:users
LoginID varchar 50 
UserName varchar 50 
Password varchar 50 

第二步:创建实体(可以利用工具生成)
在Entity.csproj中添加User.cs文件

namespace Entity
{
    public class User
    {
        private string loginID;
        private string userName;
        private string password;

        public virtual string LoginID
        {
            get { return loginID; }
            set { loginID = value; }
        }

        public virtual string UserName
        {
            get { return userName; }
            set { userName = value; }
        }

        public virtual string Password
        {
            get { return password; }
            set { password = value; }
        }
    }
}

创建实体映射文件User.hbm.xml(此文件必须是嵌入式资源)

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
  <class name="Entity.User,Entity" table="Users">
    <id name="LoginID" column="LoginID" type="String"  unsaved-value="">
      <generator class="assigned" />
    </id>
    <property name="UserName" column="UserName" type="String" />
    <property name="Password" column="Password" type="String" /> 
  </class>
</hibernate-mapping>

第三步:客户端创建

hibernate.cfg.xml配置文件
<?xml version="1.0" encoding="utf-8" ?>
  <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.0" >
    <session-factory name="NH">
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>     
      <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
      <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
      <property name="connection.connection_string">Server=localhost;initial catalog=systemframework;uid=sa;pwd=</property>
      </session-factory>
    </hibernate-configuration>

第四步:客户端调用

Configuration cfg = new Configuration().Configure();
            cfg.AddAssembly("Entity");
            ISessionFactory factory = cfg.BuildSessionFactory();
            ISession session = factory.OpenSession();
            ITransaction trans = session.BeginTransaction();           
            Entity.User user = new Entity.User ();
            user.LoginID = "2";
            user.UserName = "test";
            user.Password = "test";
           
            try
            {
                session.Save(user);
                trans.Commit();
            }
            catch(Exception ex)
            {
                trans.Rollback();
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }

            数据库中新插入LoginID是2的用户,保存成功。

            终于得到想要的结果了,感觉很开心,这是成功的一半。(2007年9月29日 星期六 19:38:50)