nhibernate mysql配置_MySql(一)_利用NHibernate和MySql交互
1.基础配置,添加MySql和nHibernate的引用
(1) 添加引用,导入MySql.data.dll; 利用MySql提供的API操作;
(2) 添加引用,导入NHibernate.dll; 利用nHibernate提供的API操作;
利用NuGet管理程序包直接下载使用。
2.修改“程序集名称”和“默认命名空间”,二者保持一致。
3.如何跟MySql建立连接?
(1)告诉nHibernate,连接什么样的数据库(MySql、SQLServer、Oracal),即数据库的种类。
(2)告诉nHibernate,连接数据库的地址(IP地址、用户名、密码、连接的数据库)。
(3)进行映射,把数据库的表映射成类,利用类创建对象,像操作对象一样操作数据库。
第一步:配置nHiberate,去连接数据库的一些信息
配置nHiberate是使用XML来配置的。在项目下面右键“添加”——“新建项”,选择“XML文件”,名字为固定的 “nhibernate.cfg.xml”,nHibernate会自动读取此文件。
1 <?xml version="1.0" encoding="utf-8"?>
2
7
8
9 NHibernate.Driver.MySqlDataDriver
10
11 Database=unity;Data Source=localhost;User Id=root;Password=123456;12 Protocol=memory;Old Guids=True;13
14 NHibernate.Dialect.MySQL5Dialect
15
16
根据提示修改即可。
第二步,如何进行类和表的映射
1.在项目下创建Model文件夹,进行与数据库中的表进行映射。在Model文件夹下,创建类,类名与相对应数据库的表名一致。
在类中创建相对应的属性(字段),与数据库中的列名保持一致。
2.在项目文件下创建Mappings文件夹,创建“XML文件”,创建XML配置文件,配置文件命名“数据库的表名/类名.hbm.xml”。
在Mapping下的xml配置文件中,配置命名空间、程序集;配置类名对应表名;配置类中的属性名对应表中的列名。
1 <?xml version="1.0" encoding="utf-8" ?>
2
3 namespace="NBOWeb.Model" assembly="NBOWeb">
4
5
6
7
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
3.“nhibernate.cfg.xml”文件,属性-高级-“复制到输出目录设置为始终复制”;
“数据库的表名/类名.hbm.xml”即“unity.hbm.xml”,属性-高级-生成操作-嵌入的资源;
总结:首先配置命名空间和程序集;在进行类名与表名的配置;最后进行主键和一般的其他属性的配置。//配置映射关系完成。
4.利用nHibernate进行操作
1.让nHibernate进行配置的解析
添加nHibernate和nHibernate.Cfg命名空间
1 usingSystem;2 usingSystem.Collections.Generic;3 usingSystem.Linq;4 usingSystem.Text;5 usingSystem.Threading.Tasks;6 usingNHibernate;7 usingNHibernate.Cfg;8 usingNBOWeb.Model;9
10 namespaceMySql_StudyTest11 {12 classProgram13 {14 static void Main(string[] args)15 {16 var configuration=newConfiguration();17 configuration.Configure();18 configuration.AddAssembly("NBOWeb");19 ISessionFactory sessionFactory = null;20 ITransaction transaction = null;21 ISession session = null;22 try
23 {24 sessionFactory =configuration.BuildSessionFactory();25 session =sessionFactory.OpenSession();26
27 //Unity unity = new Unity() {Name = "L.Juhnko", Age = 29, WorkAge = 10 };28 //session.Save(unity);29
30 //事务,对数据库更改
31 transaction= session.BeginTransaction();//开启事务
32 Unity unity1 = new Unity() { Name = "ko01", Age = 29, WorkAge = 10};33 Unity unity2 = new Unity() { Name = "ko02", Age = 29, WorkAge = 10};34
35 session.Save(unity1);36 session.Save(unity2);37 transaction.Commit();//事务提交
38 }39 catch(Exception e)40 {41 Console.WriteLine(e);42
43 }44 finally
45
46 {47 if (transaction!=null)48 {49 transaction.Dispose();50 }51
52 if (session!=null)53 {54 session.Close();55 }56 if (sessionFactory!=null)57 {58 sessionFactory.Close();59 }60 }61 Console.ReadKey();62 }63 }64 }
nhibernate mysql配置_MySql(一)_利用NHibernate和MySql交互相关推荐
- amoeba实现mysql主从读写分离_利用Amoeba实现MySQL主从复制和读写分离
在实际生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性.高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制(Master-Slave) ...
- mysql的可视化图表_利用ECharts可视化mysql数据库中的数据
这是工程所有文件的一个目录 工程文件目录 我做了一个柱状图,一个饼状图,一个折线图,配置过程很恶心,出了好多错,所以在这里记录一下. 如果想直接看 echarts 的部分,可以跳过下面数据库的建立. ...
- 操作 mysql 不生成日志_利用Python操作MySQL数据库,以后不懂这些是要被鄙视的!...
前言 在工作中,我们需要经常对数据库进行操作,比如 Oracle.MySQL.SQL Sever 等,今天我们就学习如何利用Python来操作 MySQL 数据库. 本人环境:Python 3.7.0 ...
- MySQL获取数据库连接对象_利用JDBC连接mysql数据库,获取连接对象的通用格式
String driverName="com.mysql.jdbc.Driver"; //驱动程序名 String userName="root" ...
- mysql nhibernate_MySql(一)_利用NHibernate和MySql交互
1.基础配置,添加MySql和nHibernate的引用 (1) 添加引用,导入MySql.data.dll: 利用MySql提供的API操作: (2) 添加引用,导入NHibernate.d ...
- mysql配置好后_安装完 MySQL 后必须调整的 10 项配置
当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议.许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即使是这里有好几百个配置项.这篇文章的目的在于 ...
- MySQL提权的两种方式_利用sqlmap进行mysql提权的小方法(win与liunx通用)
文章作者:pt007@vip.sina.com 文章来源:https://www.t00ls.net/thread-36196-1-1.html 1.连接mysql数据打开一个交互shell: sql ...
- python mysql 分页_利用python对mysql表做全局模糊搜索并分页实例
在写django项目的时候,有的数据没有使用模型管理(数据表是动态添加的),所以要直接使用mysql.前端请求数据的时候可能会指定这几个参数:要请求的页号,页大小,以及检索条件. "&quo ...
- 简书mysql配置_MySQL安装配置
1.官网下载地址 2.检测本地是否有mysql已存在的包rpm -qa | grep mysql 3.检测本地是否有mariadb已存在的包rpm -qa | grep mariadb 4.如果存在, ...
最新文章
- 文本分类解决方法综述
- elasticsearch扩展ik分词器词库
- RecyclerView优秀文集
- 读《深入jvm原理》之class文件
- Effective C++学习第一天
- CSU-1982 小M的移动硬盘
- day212223:线程、进程、协程
- ZooKeeper使用get命令无法获取节点版本信息
- PAT 1088 三人行(20 分)- 乙级
- 商业智能—概念与主要理论
- HFSS之天线设计实例
- 软件测试基础-概念(视频教程)
- Python新手到熟练的百天之路
- 使用QT:复刻俄罗斯方块游戏
- 我的知识星球 -【达叔与他的朋友们】程序员
- 【转】C++后台开发应该读的书
- iPhone 14/Pro卫星紧急求救上线;非法采集用户位置,谷歌赔偿3.9亿美元;Node.js 19.1.0发布|极客头条
- 微软赵立威:云计算技术是移动互联网开发核心
- 计算机网络基础昆明理工大学,昆明理工大学 计算机网络基础 实验三
- OpenSim 使用
热门文章
- codeforces 1100D-Dasha and Chess
- 创建密码重设盘////密码重设盘修改密码
- Modbus通信协议指令学习记录
- 消除计算机硬盘的碎片应该使用,Win10系统如何对磁盘碎片进行彻底清理优化
- 虚证、实证如何鉴别?
- java基于ssm的疾病控制中心管理系统
- HTML下拉列表(select),单选框(radio), 复选框(checkbox)如何向后端传值
- 计算机网可靠性,计算机网络可靠性分析
- TortoiseGit和Git密钥配置图文教程
- 算法导论作业——沙子的质量