有關(guān)SQLServer中varchar和nvarchar的區(qū)別可以直接去google。一般在中文系統(tǒng)中應(yīng)該使用nvarchar作為字符串的對(duì)應(yīng)類(lèi)型,但是Hibernate中的默認(rèn)實(shí)現(xiàn)SQLServerDialect使用了varchar。以下方法可以簡(jiǎn)單地轉(zhuǎn)為使用nvarchar:
創(chuàng)新互聯(lián)公司是一家專(zhuān)注于做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),豐鎮(zhèn)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:豐鎮(zhèn)等地區(qū)。豐鎮(zhèn)做網(wǎng)站價(jià)格咨詢(xún):18980820575
自己寫(xiě)一個(gè)dialect,繼承SQLServerDialect,在構(gòu)造器中將原先varchar類(lèi)型的注冊(cè)聲明覆蓋:
registerColumnType(Types.VARCHAR, "nvarchar($l)");
千萬(wàn)注意,“$”后面的是字段長(zhǎng)度的占位符,是“l(fā)(ength)”,而不是數(shù)字“1”(因?yàn)榭磆ibernate的doc時(shí)沒(méi)分清“l(fā)”和“1”,浪費(fèi)了我一上午去找原因)
然后在hibernate的配置文件中將hibernate.dialect的值設(shè)為你的dialect實(shí)現(xiàn)類(lèi)就OK了
原因有二:
1.
數(shù)據(jù)庫(kù)引擎沒(méi)有啟動(dòng)。
有兩種啟動(dòng)方式:
(1)開(kāi)始-程序-Microsoft
SQL
Server
2005-SQL
Server
2005外圍應(yīng)用配置器,在打開(kāi)的界面單擊"服務(wù)的連接的外圍應(yīng)用配置器",在打開(kāi)的界面中找到Database
Engine,單擊"服務(wù)",在右側(cè)查看是否已啟動(dòng),如果沒(méi)有啟動(dòng)可單擊"啟動(dòng)",并確保"啟動(dòng)類(lèi)型"為自動(dòng),不要為手動(dòng),否則下次開(kāi)機(jī)時(shí)又要手動(dòng)啟動(dòng);
(2)可打開(kāi):開(kāi)始-程序-Microsoft
SQL
Server
2005-配置工具-SQL
Server
Configuration
Manager,選中SQL
Server
2005服務(wù)中SQL
Server(MSSQLSERVER)
,并單擊工具欄中的"啟動(dòng)服務(wù)"按鈕把服務(wù)狀態(tài)改為啟動(dòng);
使用上面兩種方式時(shí),有時(shí)候在啟動(dòng)的時(shí)候可能會(huì)出現(xiàn)錯(cuò)誤,不能啟動(dòng),這時(shí)就要查看"SQL
Server
2005配置管理器"中的SQL
Server
2005網(wǎng)絡(luò)配置-MSSQLSERVER協(xié)議中的VIA是否已啟用,如果已啟用,則把它禁止.然后再執(zhí)行上述一種方式操作就可以了.
2.
是否已經(jīng)允許遠(yuǎn)程連接。
這個(gè)部分可以簡(jiǎn)單的分為4個(gè)方面,分別是在
SQL
Server上啟用遠(yuǎn)程連接、啟用SQL
Server
瀏覽服務(wù)、在Windows
防火墻中為SQL
Server
2005
創(chuàng)建例外和在Windows
防火墻中為“SQLBrowser”創(chuàng)建例外。下面是幾個(gè)具體的操作方式:
在SQLServer
實(shí)例上啟用遠(yuǎn)程連接
1.指向“開(kāi)始-程序-Microsoft
SQL
Server
2005-配置工具-SQL
Server
外圍應(yīng)用配置器”
2.在“SQL
Server
2005
外圍應(yīng)用配置器”頁(yè),
單擊“服務(wù)和連接的外圍應(yīng)用配置器”
3.然后單擊展開(kāi)“數(shù)據(jù)庫(kù)引擎”,
選中“遠(yuǎn)程連接”,在右邊選中“本地連接和遠(yuǎn)程連接”,
再選擇要使用的協(xié)議,(
這個(gè)地方應(yīng)當(dāng)啟用TCP/IP
和命名管道服務(wù)!)單擊“應(yīng)用”,您會(huì)看到下消息:
“直到重新啟動(dòng)數(shù)據(jù)庫(kù)引擎服務(wù)后,對(duì)連接設(shè)置所做的更改才會(huì)生效?!?,單擊“確定”按鈕返回
4.展開(kāi)“數(shù)據(jù)庫(kù)引擎”,
選中“服務(wù)”,在右邊單擊“停止”,等到
MSSQLSERVER
服務(wù)停止,
然后單擊“啟動(dòng)”,重新啟動(dòng)MSSQLSERVER
服務(wù)。
啟用
SQLServer
瀏覽器服務(wù)
1.指向“開(kāi)始-程序-Microsoft
SQL
Server
2005-配置工具-SQL
Server
外圍應(yīng)用配置器”
2.在“SQL
Server
2005
外圍應(yīng)用配置器”頁(yè),
單擊“服務(wù)和連接的外圍應(yīng)用配置器”
3.然后單擊展開(kāi)“SQL
Server
Browser”,
選中“服務(wù)”,在右邊“啟動(dòng)類(lèi)型”選擇“自動(dòng)”,
再單擊“啟動(dòng)”,單擊“確定”按鈕返回
在Windows
防火墻中為“SQL
Server
2005”創(chuàng)建例外
1.在
Windows
防火墻設(shè)置界面中,選擇“
例外”
選項(xiàng)卡,然后單擊“添加程序”
2.在“添加程序窗口”中單擊“瀏覽”
3.然后找到“C:\ProgramFiles\Microsoft
Files\Microsoft
SQL
Server\
MSSQL.1
\MSSQL\Binn\sqlservr.exe”,
單擊“確定”返回
注意
:
路徑可能會(huì)根據(jù)
SQL
Server
2005
安裝不同而不同。
MSSQL.1
是占位符,對(duì)應(yīng)數(shù)據(jù)庫(kù)實(shí)例ID。
4.對(duì)每個(gè)需要打開(kāi)遠(yuǎn)程訪問(wèn)的SQL
Server
2005
實(shí)例,重復(fù)步驟
1
至
3。
在Windows
防火墻中為“SQLBrowser”創(chuàng)建例外
1.在
Windows
防火墻設(shè)置界面中,選擇“
例外”
選項(xiàng)卡,然后單擊“添加程序”
2.在“添加程序窗口”中單擊“瀏覽”
3.然后找到“C:\ProgramFiles\Microsoft
Files\Microsoft
SQL
Server\90\Shared\sqlbrowser.exe”,
單擊“確定”返回
注意
:
路徑可能會(huì)根據(jù)
SQL
Server
2005
安裝不同而不同
具體原因分析省略,參考解決方案如下:
1、開(kāi)始菜單--Microsoft
SQL
Server
2005--配置工具--SQL
Server
Configuration
Manager--SQL
Server
2005網(wǎng)絡(luò)配置--SQLEXPRESS協(xié)議(除了VIA為“已禁用”,其他三項(xiàng)都應(yīng)為“已啟用”??呻p擊設(shè)置)
然后緊接著下面的SQL
Native
Client配置--客戶(hù)端協(xié)議(也是保證三個(gè)啟用一個(gè)禁用,同上)
2、開(kāi)始菜單--Microsoft
SQL
Server
2005--配置工具--SQL
Server外圍應(yīng)用配置器--服務(wù)和連接的外圍應(yīng)用配置器--SQLEXPRESS--Database
Engine--“服務(wù)”要確保運(yùn)行正常,“遠(yuǎn)程連接”--選中“遠(yuǎn)程連接和本地連接”,選中“同時(shí)使用TCP/IP和name
pipes(B)”.
試試看,僅供參考!
Rock.
補(bǔ)充(以下是來(lái)自網(wǎng)上的一些建議,我篩選了幾點(diǎn)值得考慮的):
1、在“服務(wù)和連接的外圍應(yīng)用配置器”里單擊展開(kāi)“SQL
Server
Browser”,
選中“服務(wù)”,在右邊“啟動(dòng)類(lèi)型”選擇“自動(dòng)”,
再單擊“啟動(dòng)”,單擊“確定”按鈕返回
2、在Windows
防火墻中為“SQL
Server
2005”創(chuàng)建例外
1)在
Windows
防火墻設(shè)置界面中,選擇“
例外”
選項(xiàng)卡,然后單擊“添加程序”
2)在“添加程序窗口”中單擊“瀏覽”
3)然后找到“C:\ProgramFiles\Microsoft
Files\Microsoft
SQL
Server\
MSSQL.1
\MSSQL\Binn\sqlservr.exe”,
單擊“確定”返回
注意
:
路徑可能會(huì)根據(jù)
SQL
Server
2005
安裝不同而不同。
MSSQL.1
是占位符,對(duì)應(yīng)數(shù)據(jù)庫(kù)實(shí)例ID。
4)對(duì)每個(gè)需要打開(kāi)遠(yuǎn)程訪問(wèn)的SQL
Server
2005
實(shí)例,重復(fù)步驟
(1)至
(3)。
3、在Windows
防火墻中為“SQLBrowser”創(chuàng)建例外
1)在
Windows
防火墻設(shè)置界面中,選擇“
例外”
選項(xiàng)卡,然后單擊“添加程序”
2)在“添加程序窗口”中單擊“瀏覽”
3)然后找到“C:\ProgramFiles\Microsoft
Files\Microsoft
SQL
Server\90\Shared\sqlbrowser.exe”,
單擊“確定”返回
注意
:
路徑可能會(huì)根據(jù)
SQL
Server
2005
安裝不同而不同。
以上所有,包括補(bǔ)充之前的那些,一定記得重啟SQL服務(wù)、確保服務(wù)正常開(kāi)啟。
string
ins="insert
into
表
values(:字段1,:字段2,:字段3,:字段4........)";
sqlserver和oracle所用占位符不一樣的
:是Oracle的binding
variable的語(yǔ)法,在寫(xiě)SQL和PL/SQL的時(shí)候經(jīng)常使用,但不代表不使用:就不用綁定變量或使用:就一定是綁定變量
兩個(gè)可能
數(shù)據(jù)庫(kù)引擎沒(méi)有啟動(dòng)。
開(kāi)始-控制面板-管理工具-服務(wù),找到SQL Server(MSSQLSERVER)服務(wù),開(kāi)啟它。
是否已經(jīng)允許遠(yuǎn)程連接。這個(gè)部分可以簡(jiǎn)單的分為4個(gè)方面,分別是在 SQL Server上啟用遠(yuǎn)程連接、啟用SQL Server 瀏覽服務(wù)、在Windows 防火墻中為SQL
Server 2005 創(chuàng)建例外和在Windows 防火墻中為“SQLBrowser”創(chuàng)建例外。
下面是4個(gè)具體步驟:
---在SQLServer 實(shí)例上啟用遠(yuǎn)程連接
1.指向“開(kāi)始-程序-Microsoft SQL Server
2005-配置工具-SQL Server 外圍應(yīng)用配置器”
2.在“SQL Server 2005 外圍應(yīng)用配置器”頁(yè),
單擊“服務(wù)和連接的外圍應(yīng)用配置器”
3.然后單擊展開(kāi)“數(shù)據(jù)庫(kù)引擎”, 選中“遠(yuǎn)程連接”,在右邊選中“本地連接和遠(yuǎn)程連接”,
再選擇要使用的協(xié)議,( 這個(gè)地方應(yīng)當(dāng)啟用TCP/IP 和命名管道服務(wù)!)單擊“應(yīng)用”,您會(huì)看到下消息:
“直到重新啟動(dòng)數(shù)據(jù)庫(kù)引擎服務(wù)后,對(duì)連接設(shè)置所做的更改才會(huì)生效?!保瑔螕簟按_定”按鈕返回
4.展開(kāi)“數(shù)據(jù)庫(kù)引擎”,
選中“服務(wù)”,在右邊單擊“停止”,等到 MSSQLSERVER 服務(wù)停止,
然后單擊“啟動(dòng)”,重新啟動(dòng)MSSQLSERVER 服務(wù)。
---啟用 SQLServer 瀏覽器服務(wù)
1.指向“開(kāi)始-程序-Microsoft SQL Server
2005-配置工具-SQL Server 外圍應(yīng)用配置器”
2.在“SQL Server 2005 外圍應(yīng)用配置器”頁(yè),
單擊“服務(wù)和連接的外圍應(yīng)用配置器”
3.然后單擊展開(kāi)“SQL Server Browser”, 選中“服務(wù)”,在右邊“啟動(dòng)類(lèi)型”選擇“自動(dòng)”,
再單擊“啟動(dòng)”,單擊“確定”按鈕返回
---在Windows 防火墻中為“SQL Server 2005”創(chuàng)建例外
1.在
Windows 防火墻設(shè)置界面中,選擇“ 例外” 選項(xiàng)卡,然后單擊“添加程序”
2.在“添加程序窗口”中單擊“瀏覽”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1
\MSSQL\Binn\sqlservr.exe”,
單擊“確定”返回
注意 : 路徑可能會(huì)根據(jù) SQL Server 2005
安裝不同而不同。 MSSQL.1 是占位符,對(duì)應(yīng)數(shù)據(jù)庫(kù)實(shí)例ID。
4.對(duì)每個(gè)需要打開(kāi)遠(yuǎn)程訪問(wèn)的SQL Server 2005 實(shí)例,重復(fù)步驟 1 至
3。
---在Windows 防火墻中為“SQLBrowser”創(chuàng)建例外
1.在 Windows 防火墻設(shè)置界面中,選擇“ 例外”
選項(xiàng)卡,然后單擊“添加程序”
2.在“添加程序窗口”中單擊“瀏覽”
3.然后找到“C:\ProgramFiles\Microsoft
Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe”,
單擊“確定”返回
注意 :
路徑可能會(huì)根據(jù) SQL Server 2005 安裝不同而不同。
在使用.NET開(kāi)發(fā)進(jìn)行時(shí),會(huì)遇到使用連接字符串連接SQL
Server 2005數(shù)據(jù)庫(kù)使用機(jī)器名稱(chēng)和localhost都能連接,但是使用IP地址卻不能連接的問(wèn)題,解決的辦法是在SQL
Server實(shí)例上啟用本地和遠(yuǎn)程連接,并且在選擇協(xié)議的時(shí)候使用TCP/IP和命名管道服務(wù)即可解決。
我查了下這里還有個(gè)同問(wèn)題的解決辦法這里看》
網(wǎng)站題目:sqlserver占位符,sql語(yǔ)句占位符的用法
文章分享:http://muchs.cn/article14/hciede.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、微信小程序、網(wǎng)站維護(hù)、網(wǎng)站內(nèi)鏈、軟件開(kāi)發(fā)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)