NHibernate與MySQL資料庫互動(類和表的對映)
工具:VS2017、MySQL、SQLyog
如下圖是客戶端與伺服器間的通訊流程
本文就要介紹使用NHibernate與MySQL資料庫互動
下篇文章準備編寫PhotonServer呼叫NHibernate
·寫在前面
NHibernate是一個面向.Net環境的物件到關係資料庫的對映工具。
用來把物件模型表示的物件對映到基於SQL的關係模型資料結構中。
通俗來說,就是將例項化的類物件將資料對應儲存到關係型資料庫的表中。
·配置資料庫
下載安裝MySQL資料庫系統後安裝SQLyog資料庫客戶端(可以自行選擇其他客戶端)
使用SQLyog建立一個自己的資料庫,在資料庫中新增一張資料表,這裡我命名為student
如下圖所示新增column
·使用NHibernate與MySQL資料互動
接著上一篇文章內容繼續開發
在解決方案中建立一個控制檯應用
右鍵專案,點選NuGet
新增庫mysqldata.dll、connector.dll、nhibernate.dll
根據文件配置hibernate.cfg.xml,該配置檔案的檔名和位置是固定的
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="dialect">NHibernate.Dialect.MySQL5Dialect</property> <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property> <!--使用什麼資料庫--> <property name="connection.connection_string">Server=localhost;Database=mydatabase;User ID=root;Password=*****;SslMode=None;</property> <property name="show_sql">true</property> </session-factory> </hibernate-configuration>
NHibernate提供將一個類對映到資料庫的表中
前面建立student表的時候,建立了學號、姓名、分數column
對應類也新增這三個欄位
新建一個Student.cs
namespace LJL.Domain
{
public class Student
{
public virtual int mID { get; set; }
public virtual string mName { get; set; }
public virtual int mScore { get; set; }
}
}
接下來配置對映檔案Student.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
auto-import="true"
assembly="LJL"
namespace="LJL.Domain"><!--程式集--><!--對映的類的名稱空間-->
<!-- more mapping info here -->
<class name="Student" table="student"><!--類對映的表-->
<id name="mID" column="學號" type="Int32"><!--主鍵型別-->
<generator class="native"></generator>
</id>
<property name="mName" column="姓名" type="String"></property><!--屬性-->
<property name="mScore" column="分數" type="Int32"></property>
</class>
</hibernate-mapping>
這樣NHibernate配置檔案都配置完成
最後在主函式裡新增會話,將類資訊對映儲存到資料庫中
using NHibernate;
using NHibernate.Cfg;
using LJL.Domain;
namespace LJL
{
class Program
{
static void Main(string[] args)
{
Configuration cfg = new Configuration();
//解析固定路徑配置檔案nhibernate.cfg.xml
cfg.Configure();
//對映目標程式集 解析對映檔案 Student.xml ......
cfg.AddAssembly(typeof(Student).Assembly);
//建立會話工廠
ISessionFactory sessionFactory = cfg.BuildSessionFactory();
//建立會話
ISession session = sessionFactory.OpenSession();
Student sd = new Student { mID = 4, mName = "小剛", mScore = 50 };
session.Save(sd);
}
}
}
·測試
執行程式,回到SQLyog,重新整理student表
發現將我們類中的物件資訊新增到了資料庫中
對比之間使用MySql API,NHibernate極大地方便了我們編寫程式碼!!!
下一文:MySQL與PhotonServer資料通訊
相關推薦
NHibernate與MySQL資料庫互動(類和表的對映)
工具:VS2017、MySQL、SQLyog如下圖是客戶端與伺服器間的通訊流程本文就要介紹使用NHibernate與MySQL資料庫互動下篇文章準備編寫PhotonServer呼叫NHibernate·寫在前面NHibernate是一個面向.Net環境的物件到關係資料庫的對映
JDBC詳解之與mySQL資料庫的連線和基本操作一
JDBC詳解 JDBC詳解 一 JDBC基本操作 MySQL的JDBC驅動包: mysql-connector-java-5.1.3
python tkinter與Mysql資料庫互動實現賬號登陸_code
本例已經實現的資料庫password,資料庫的表以及表結構如下: 表中已經插入的資訊: 程式碼實現 # -*- coding: utf-8 -*- """ Created on Tue Nov 6 14:29:54 2018 Description:實現tk
Matlab與MySQL資料庫互動基本操作
(1)將mysql-connector-java-5.1.42-bin.jar拷貝到Matlab安裝目錄下即D:\Program Files (x86)\MATLAB\R2016a\java\jar\toolbox(2)在D:\Program Files (x86)\MATLAB\R2016a\toolbox
python實現與mysql資料庫互動
2.我選了linux作業系統下的安裝軟體,下載後是個shell指令碼,執行指令碼: bash Anaconda3-4.3.1-Linux-x86_64.sh (一路回車加提示按”yes” 3.安裝完成後退出終端,重新進入測試python的版本
Java實體類的屬性型別與mysql資料庫表字段型別對應表
感謝原文博主https://blog.csdn.net/Hyo555/article/details/81943340 還有些經常用到的mysql語句 -- 新增表結構 DROP TABLE IF EXISTS `servicnn`; CREATE TABLE `servin` ( `id` i
SpringBoot中使用Mybatis Generator進行資料庫表逆向工程自動生成實體類和mapping對映
1.首先在專案中建立一個GeneratorDisplay工具類,放在com.springbootdemo.util下 package com.springbootdemo.util; import java.io.File; import java.util.ArrayList; imp
node.js與mysql資料庫的互動
我們已經建好了資料庫也建好了表,現在我們想查詢資料庫表中的內容,應該怎麼做呢? 程式碼如下: var mysql = require('mysql'); //匯入mysql包模組 var connection = mysql.createConnection({ h
利用Navicat Premiun與Navicat for mysql實現MySQL資料庫結構對比和同步
在生產環境中,我們總會因為這樣或那樣的原因導致主從不同步,亦或者是測試環境要和生產環境進行同步,利用Navicat結構同步工具,不但能找出庫結構差異,還可以針對create、modify、drop等進行選擇性比對,非常的人性化,那麼一起來看下是如何操作的。 點選頂部導航欄的“工具”--選
MySQL資料庫5:Go與MySQL的互動
下載第三方依賴 go get github.com/jmoiron/sqlx go get github.com/go-sql-driver/mysql 引入依賴 import ( "github
nodejs與mysql資料庫的互動操作
首先通過npm命令安裝mysql模組 mysql資料庫版本:mysql-5.7.16-winx64,在官網下載zip包,修改一下配置,即可通過命令安裝到電腦上。 如何連線 連線流程程式碼如下: var mysql = require('my
《MySQL資料庫》之練習表資料:emp表與dept表的指令碼整理
一、Oracle版本 1、dept表 drop table dept; CREATE TABLE dept( deptno NUMBER(2), dname VARCHAR2(14) , loc VA
php+Mysql分頁 類和引用詳解
echo padding 數字 進行 else if sub var min func 一下內容為專用於分頁的類以及具體的方法和解析。<?php class Page { private $total;
python中的__new__與__init__,新式類和經典類(2.x)
類型 pytho 圖片 pla object pri lba 版本 其它 在python2.x中,從object繼承得來的類稱為新式類(如class A(object))不從object繼承得來的類稱為經典類(如class A()) 新式類跟經典類的差別主要是以下幾點:
一、MySQL資料庫之簡介和安裝
一、基礎部分 1.資料庫是簡介 之前所學,資料要永久儲存,比如使用者註冊的使用者資訊,都是保存於檔案中,而檔案只能存在於某一臺機器上。 如果我們不考慮從檔案中讀取資料的效率問題,並且假設我們的程式所有的元件都執行在一臺機器上,那麼用檔案存
MySQL JDBC驅動版本與MySQL資料庫版本對應關係
前言:前段時間發現在家使用和公司一樣的mysql jdbc驅動版本發生了異常,原因:家裡mysql資料庫版本與公司不一致導致。查詢了相關資料,發現mysql jdbc驅動版本與mysql資料庫版本有一定的對應關係,用錯了版本就會出現連線不上資料庫的異常。 這裡給出mysql jdbc驅動
mysql資料庫中 IN 和 EXISTS 的誤區
前言:最近在看 《高效能mysql第三版》 這本書,讀到子查詢優化那章,書中說mysql會將in子查詢改寫成exists查詢(書中基於的mysql版本是5.1.50和5.5),於是乎我又上網找了下資料,發現網上說法幾乎都是: &
mysql資料庫建立索引和使用
1. 2 需要注意: ,後續新增修改索引。。需要注意索引需要的不同資料庫引擎 alter table user add fulltext(欄
『PHP學習筆記』系列七:讀取MySQL資料庫中的資料表
資料表結構: 資料表資料: 從 MySQL 資料庫讀取資料: SELECT 語句用於從資料表中讀取資料: SELECT column_name(s) FROM table_name 我們可以使用 * 號來讀取所有資料表中的欄位: SEL
PHP自己封裝一個原生mysql資料庫工具類--進階常用類仿PDO模式
<?php header('content-type:text/html;charset=utf-8'); error_reporting(E_ALL ^ E_DEPRECATED); // 設計一個mysql資料庫操作類 $config=array( 'hos