??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产www456c0m,国产精品久久久久久久久久尿,久久一区二区三区四区五区 http://www.aygfsteel.com/noaso/archive/2010/12/01/339472.htmlnoasonoasoWed, 01 Dec 2010 02:19:00 GMThttp://www.aygfsteel.com/noaso/archive/2010/12/01/339472.htmlhttp://www.aygfsteel.com/noaso/comments/339472.htmlhttp://www.aygfsteel.com/noaso/archive/2010/12/01/339472.html#Feedback0http://www.aygfsteel.com/noaso/comments/commentRss/339472.htmlhttp://www.aygfsteel.com/noaso/services/trackbacks/339472.html 1、《Thinking in java》,入门W一位是建立正确的概c?br /> 2、《Core Java》,我没pȝ读过Q这本书更脓q实践,更多API的介l,同样Q更C更频J?br />
二、进阶类
1、《Effective Java》,在熟悉语法、API之后Q你需要知道最佛_践和陷阱Q没有比q本更好的?br /> 2、?span class="pl2">Java Puzzlers》,通过谜题介绍一些你可能没有注意到的边角料,作ؓ味ȝ也不?br /> 3、《深入Java虚拟机》,译一般,但不可不读,最好结合最新的JVM规范来读?br />
三、特定领?br /> 1、网l编E:
Q?Q?/span> O'Reilly的《Java nio》,很多人都推荐Q我个h觉的一般,基本上只是个API更详l的说明文档,O'reilly的javapd很多都是q样?br /> Q?Q我更推荐这本《Fundamental networking in java》,由浅入深教你怎么做java|络~程Qƈ且介l很多背景知识,甚至介绍了各U最佛_c网l编E模型以及Java socket在不同^C间的差异{等?br />
2、ƈ发编E:
Q?Q?span class="pl2">Java Concurrency in Practic》,q发领域必读l典?br /> Q?Q《Javaq发~程Q设计原则与模式》,同样是Doug lea的作品?br /> Q?) 《java threads》,入门ȝ?br />
3、web~程Q这块我怹未接触了Q就不推荐了Q有兴趣的朋友可以补充下?br />
四、模式与设计

1、《设计模式》,GOF的经典?br /> 2、《设计模式精解》,应该有最新版Q个为更适合入门?br /> 3、《Head first设计模式》,更轻杄入门ȝ?br /> 4、《企业应用架构模式?br /> 5、《分析模式——可复用对象模型?br /> 6、《面向模式的软g体系l构》,国内貌似译?Pl对l典Q可惜翻译较差?br /> 7、《重构——改善既有代码设计?惛_好代码必诅R?br /> 8、《重构与模式》,l我印象很深?xml构徏的例子,在我的代码里应用C?br />
五、方法论
1、《敏捯Y件开发?br /> 2、《测试驱动开发》,你不一定要TDDQ但是你一定要学会做单元测试?br /> 3、《Agile Java》,也可以作为java入门ȝ?br /> 4、《快速Y件开发?br /> 5、《面向对象分析与设计》,OO设计必读?br /> 6、《Unix~程艺术》,打开你的眼界?br />
六、Java之外
0、《代码大全》,~程的百U全书,必读?br /> 1、《unix|络~程》,学习|络~程必读书?br /> 2、《C++|络~程》上下两P介绍ACE的,但是其中对各U模式运用的介绍非常值的一诅R?br /> 3、《Joel说Y件》,~程文化
4、《h月神话》、《h件?br /> 5、《卓有成效的E序员》,l我很大启发的一本书?br /> 6、《程序员修炼之道?br /> 7、《计机E序的构造与解释》,必读
8、《算法导论》,可以作ؓ参考书
9、《深入理解计机pȝ?br /> 10、《编译原理》龙书,最新版用java解释Q我没有dQ顺便提下?br />


noaso 2010-12-01 10:19 发表评论
]]>
FCKeditor api 详解http://www.aygfsteel.com/noaso/archive/2010/11/24/338874.htmlnoasonoasoWed, 24 Nov 2010 00:42:00 GMThttp://www.aygfsteel.com/noaso/archive/2010/11/24/338874.htmlhttp://www.aygfsteel.com/noaso/comments/338874.htmlhttp://www.aygfsteel.com/noaso/archive/2010/11/24/338874.html#Feedback0http://www.aygfsteel.com/noaso/comments/commentRss/338874.htmlhttp://www.aygfsteel.com/noaso/services/trackbacks/338874.html

利用Javascript取和设FCKeditorg是非常容易的Q如下:

// 获取~辑器中HTML内容
function getEditorHTMLContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.GetXHTML(true));
}

// 获取~辑器中文字内容
function getEditorTextContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.EditorDocument.body.innerText);
}

// 讄~辑器中内容
function SetEditorContents(EditorName, ContentStr) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName) ;
    oEditor.SetHTML(ContentStr) ;
}

FCKeditorAPI是FCKeditor加蝲后注册的一个全局对象Q利用它我们可以完成对~辑器的各种操作?/font>

在当前页获得 FCK ~辑器实例:
var Editor = FCKeditorAPI.GetInstance('InstanceName');

?FCK ~辑器的弹出H口中获?FCK ~辑器实例:
var Editor = window.parent.InnerDialogLoaded().FCK;

从框枉面的子框架中获得其它子框架的 FCK ~辑器实例:
var Editor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');

从页面弹出窗口中获得父窗口的 FCK ~辑器实例:
var Editor = opener.FCKeditorAPI.GetInstance('InstanceName');

获得 FCK ~辑器的内容Q?br /> oEditor.GetXHTML(formatted); // formatted 为:true|falseQ表C是否按HTML格式取出
也可用:
oEditor.GetXHTML();

讄 FCK ~辑器的内容Q?br /> oEditor.SetHTML("content", false); // W二个参CؓQtrue|falseQ是否以所见即所得方式设|其内容。此Ҏ常用?讄初始??表单重置"哦作?/font>

插入内容?FCK ~辑器:
oEditor.InsertHtml("html"); // "html"为HTML文本

?FCK ~辑器内Ҏ否发生变化:
oEditor.IsDirty();

?FCK ~辑器之外调?FCK ~辑器工h命oQ?br /> 命o列表如下Q?br /> DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList, About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table, TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize, FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor, BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows, TableInsertColumn, TableDeleteColumns, TableInsertCell, TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form, Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select, ImageButton, SpellCheck, FitWindow, Undo, Redo

使用Ҏ如下Q?br /> oEditor.Commands.GetCommand('FitWindow').Execute();

= FCKConfig.BasePath + 'plugins/'
// FCKConfig.Plugins.Add( 'placeholder', 'en,it' ) ;


L//后,q当于把placeholderq个插g功能加上了,fckeditor的插件文仉?editor/plugins/文g夹下分类按文件夹攄的,对于fckeditor2.0来说Q里面有两个文g夹,也就是有两个官方插gQplaceholderq个文g夹就是我们刚才加上去的,主要用于多参数或单参数自定义标签的匹配,q个在制作编辑模板时非常用Q要想看具体实例的话Q大家可以去下蝲acms q个pȝ查看学习Q另一个文件夹tablecommands是~辑器里的表格编辑用到的了。当Ӟ如果你想制作自己其它用途的插gQ那只要按?fckeidtor插g的制作规则制作完攄?editor/plugins/下就行,然后再在fckeidtor.js里再d FCKConfig.Plugins.Add('Plugin Name',',lang,lang');可以了?/p>

W二部分 Q如何让~辑器一打开的时候,~辑工具条不出现Q等?#8220;展开工具?#8221;时才出现QEasyQFCKeditor本n提供了这个功能啦Q打开fckconfig.jsQ找?/p>

FCKConfig.ToolbarStartExpanded = true ;
Ҏ
FCKConfig.ToolbarStartExpanded = false ;
可以啦Q?/p>

W三部分Q用自q表情图标Q同h开fckcofnig.js到最底部那一D?/p>


FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth    = 320 ;
FCKConfig.SmileyWindowHeight = 240 ;

上面q段已经是我修改q的了,Z我发表此文的版面不会被撑得太开Q我把FCKConfig.SmileyImages那一行改得只有三个表情图了?/p>

W一行,当然是表情图标\径的讄Q第二行是相兌情图标文件名的一个ListQ第三行是指弹出的表情添加窗口最每行的表情数Q下面两个参数是弹出的模态窗口的宽和高喽?/p>

W四部分Q文件上传管理部?/p>

此部分可能是大家最为关心的Q上一文章简单的讲了如何修改来上传文件以及用fckeidtor2.0才提供的快速上传功能。再我们l箋再深层次的讲解上传功?/p>

FCKConfig.LinkBrowser = true ;
FCKConfig.ImageBrowser = true ;
FCKConfig.FlashBrowser = true ;在fckconfig.js扑ֈq三句,q三句不是连着的哦Q只是我把他们集中到q儿来了Q设|ؓtrue的意思就是允怋用fckeditor来浏览服务器端的文g囑փ以及flash{,q个功能是你插入囄时弹出的H口上那?#8220;览服务?#8221;按钮可以体现出来Q如果你的编辑器只用来自q或是只在后台理用,q个功能无疑很好用,因ؓ他让你很直观地对服务器的文gq行上传操作。但是如果你的系l要面向前台用户或是像blogq样的系l要用的话,q个安全隐患可就大了哦。于是我们把其一律设|ؓfalse;如下

FCKConfig.LinkBrowser = false ;
FCKConfig.ImageBrowser = false ;
FCKConfig.FlashBrowser = false ;

q样一来,我们只有快速上传可用了啊,好!接下来就来修改,同样以asp例进行,q入/editor/filemanager/upload/asp/打开config.aspQ修?br /> ConfigUserFilesPath = "/UserFiles/"q个讄是上传文件的ȝ录,我这里就不动了,你想改自己改?/p>

好,再打开此目录下的upload.asp文gQ找C面这一D?/p>


Dim resourceType
If ( Request.QueryString("Type")
<>"" ) Then
resourceType = Request.QueryString("Type")
Else
resourceType = "File"
End If
然后再在其后面添?/p>


ConfigUserFilesPath = ConfigUserFilesPath & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/"
q样的话Q上传的文gp?#8220;/userfiles/文gcdQ如image或file或flash)/q??”q样的文件夹下了Q这个设|对单用h用已l够了Q如果你想给多用Ll用Q那ph?/p>


ConfigUserFilesPath = ConfigUserFilesPath & Session("username") & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/"
q样上传的文件就q入“/userfiles/用户目录/文gcd/q??”下了Q当然如果你不想q么安排也可以修Ҏ别的Q比如说用户目录再深一层等Q这里的Session("username")h据自q需要进行修Ҏ换掉?/p>

上传的目录设|完了,但是上传E序q不会自己创些文件夹Q如果不存在的话Q上传不会成功的Q那么我们就得根据上面的上传路径的要求进行递归来生成目录了?/p>

扑ֈq一D?/p>


Dim sServerDir
sServerDir = Server.MapPath( ConfigUserFilesPath )
If ( Right( sServerDir, 1 )
<>"\" ) Then
    sServerDir = sServerDir & "\"
End If

把它下面的这两行


Dim oFSO
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
用下面这一D代码来替换


dim arrPath,strTmpPath,intRow
strTmpPath = ""
arrPath = Split(sServerDir, "\")
Dim oFSO
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
for intRow = 0 to Ubound(arrPath)
    strTmpPath = strTmpPath & arrPath(intRow) & "\"
    if oFSO.folderExists(strTmpPath)=false then
     oFSO.CreateFolder(strTmpPath)
    end if
next
用这D代码就可以生成你想要的文g夹了Q在上传的时候自动生成?/p>

好了Q上传文件的修改到现在可以暂时告一D落了,但是Q对于中文用戯存在q么个问题,是fckeditor的文件上传默认是不改名的Q同时还不支持中文文件名Q这样一来是上传的文件会变成“.jpg”q样的无法读的文Ӟ再就是会有重名文Ӟ当然重名q点倒没什么,因ؓfckeditor会自动改名,会在文g名后加(1Q这hq行标识。但是,我们通常的习惯是让程序自动生成不重复的文件名

在刚才那一D代码的下面紧接着是
' Get the uploaded file name.
sFileName = oUploader.File( "NewFile" ).Name
看清楚了Q这个就是文件名啦,我们来把它改掉,当然得有个生成文件名的函数才行,Ҏ下面q样

'//取得一个不重复的序?br /> Public Function GetNewID()
dim ranNum
dim dtNow
randomize
dtNow=Now()
ranNum=int(90000*rnd)+10000
GetNewID=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum
End Function

' Get the uploaded file name.
sFileName = GetNewID() &"."& split(oUploader.File( "NewFile" ).Name,".")(1)

q样一来,上传的文件就自动改名生成?0050802122536365.jpgq样的文件名了,是由q月日时分秒以及三位随机数组成的文g名了


利用Javascript取和设FCKeditorg是非常容易的Q如下:

// 获取~辑器中HTML内容
function getEditorHTMLContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.GetXHTML(true));
}

// 获取~辑器中文字内容
function getEditorTextContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.EditorDocument.body.innerText);
}

// 讄~辑器中内容
function SetEditorContents(EditorName, ContentStr) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName) ;
    oEditor.SetHTML(ContentStr) ;
}

FCKeditorAPI是FCKeditor加蝲后注册的一个全局对象Q利用它我们可以完成对~辑器的各种操作?/p>

在当前页获得 FCK ~辑器实例:
var Editor = FCKeditorAPI.GetInstance('InstanceName');

?FCK ~辑器的弹出H口中获?FCK ~辑器实例:
var Editor = window.parent.InnerDialogLoaded().FCK;

从框枉面的子框架中获得其它子框架的 FCK ~辑器实例:
var Editor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');

从页面弹出窗口中获得父窗口的 FCK ~辑器实例:
var Editor = opener.FCKeditorAPI.GetInstance('InstanceName');

获得 FCK ~辑器的内容Q?br /> oEditor.GetXHTML(formatted); // formatted 为:true|falseQ表C是否按HTML格式取出
也可用:
oEditor.GetXHTML();

讄 FCK ~辑器的内容Q?br /> oEditor.SetHTML("content", false); // W二个参CؓQtrue|falseQ是否以所见即所得方式设|其内容。此Ҏ常用?讄初始??表单重置"哦作?/p>

插入内容?FCK ~辑器:
oEditor.InsertHtml("html"); // "html"为HTML文本

?FCK ~辑器内Ҏ否发生变化:
oEditor.IsDirty();

?FCK ~辑器之外调?FCK ~辑器工h命oQ?br /> 命o列表如下Q?br /> DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList, About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table, TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize, FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor, BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows, TableInsertColumn, TableDeleteColumns, TableInsertCell, TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form, Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select, ImageButton, SpellCheck, FitWindow, Undo, Redo

使用Ҏ如下Q?br /> oEditor.Commands.GetCommand('FitWindow').Execute();




noaso 2010-11-24 08:42 发表评论
]]>
Hibernate中cascade与inverse属性详?/title><link>http://www.aygfsteel.com/noaso/archive/2010/11/17/338247.html</link><dc:creator>noaso</dc:creator><author>noaso</author><pubDate>Wed, 17 Nov 2010 05:31:00 GMT</pubDate><guid>http://www.aygfsteel.com/noaso/archive/2010/11/17/338247.html</guid><wfw:comment>http://www.aygfsteel.com/noaso/comments/338247.html</wfw:comment><comments>http://www.aygfsteel.com/noaso/archive/2010/11/17/338247.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/noaso/comments/commentRss/338247.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/noaso/services/trackbacks/338247.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class="postText"> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">关于Hibernate?cascade ? inverse 的理解?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">您买的Hibernate书是哪一本呢Q? 孙卫琴的_NHibernateQ还? 深入出Hibernateq是那本。。?br /> 我是两本都买了,M来说q可以,但是Q有的地方讲的比较书面化Q比如inverseq属性?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">在学习Hibernate的过E中最不好理解的就是这两个属性了?br /> (我当初学习Hibernate的时候,发现|上介绍q两个属性的文章倒是不少Q但是,居然有好多都是{帖。。。还有的是 照书搬~~-_-!!!)。。?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">据个例子Q书上说inverse=falseӞ׃控方l持关系。。?br /> ׃我也是初学者。。。再加上语文水^偏低。。。不理解“l持关系是啥意?#8221;囧~</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">提示Q?br /> (1)如果Q您不了解Hibernate的one-to-many或many-to-one的概c?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">(2)如果Q你不了解Hibernate?#8220;自由?#8221;“持久?#8221;“游离?#8221;的概c?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">(3)如果Q您不了解Hibernate中的“脏数?#8221;的概c?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">(4)如果Q您对Hibernate中Session~存Q没有初步了解的话?br /> (在Hibernate中调用saveq行存储数据的时?q不是马上就Ҏ据库q行insert操作Q而是会将?#8220;数据对象(vo)”U_Hibernate的Session~存?</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">在上面的4条提CZQ如果您对其中的某一条,不是很清楚的话。希望请先了解有关知识?br /> 否则Q可能您? “无法或很?#8221;理解 cascade ?inverse q?个属性?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">首相Qcascade ?inverse q两个属性,其实是完全不同的两个东西Q想要了解他们各自的“用途与区别”Q详见如下介l:</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">q里有两个表:</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">Q?Qclass   (班?<br /> 相应字段Q?br /> cid    varchar(32) 主键 not-null (班id)<br /> cname varchar(16)      not-null (班名称)   <br /> <br /> Q?Qstudent (学生?<br /> 相应字段Q?br /> sid    varchar(32) 主键 not-null (学生id)<br /> sname varchar(16)      not-null (学生姓名)<br /> class_id varchar(32)   not-null (学生所属班U?</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">一个班U?class)对应多个学生(student)Q所以班U表(class)是“one-to-many”?br /> 反之student是many-to-one</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">//--------Classcȝ代码--------<br /> public class Class implements.....<br /> {<br /> private cId = "";<br /> private cName = "";<br /> private students = java.util.HashMap();<br /> // 省略对应?geter setter<br /> }<br /> //--------Class.hbm.xml--------<br /> <hibernate-mapping><br /> <class name="lcx.vo.Class" table="class"<br />    catalog="demo"><br />    <id name="cid" type="java.lang.String"><br />     <column name="cid" length="32" /><br />     <generator class="uuid.hex" /><br />    </id><br />    <property name="name" type="java.lang.String"><br />     <column name="cname" length="16" not-null="true" /><br />    </property><br />   <br />    <set name="students" table="student" cascade="save-update"><br />     <key column="class" /><br />     <one-to-many class="lcx.vo.Student" /><br />    </set> <br /> </class><br /> </hibernate-mapping></span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">//--------Studentcȝ代码;*******<br /> public class Student implements.....<br /> {<br /> private sId = "";<br /> private sName = "";<br /> private Class class = null;<br /> // 省略对应?geter setter<br /> }<br /> // Student.hbm.xml<br /> <hibernate-mapping><br /> <class name="lcx.vo.Student" table="student" catalog="demo"><br />    <id name="cid" type="java.lang.String"><br />     <column name="sid" length="32" /><br />     <generator class="uuid.hex" /><br />    </id><br />    <many-to-one name="class" <br />     class="lcx.vo.Class"<br />     column="class_id" <br />     not-null="true" <br />    />   <br /> </class><br /> </hibernate-mapping></span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">Q一Q?cascade 的介l:<br /> 当Hibernate持久化一?#8220;临时对象(也叫自由态对?”Ӟ在默认的情况?卻I没有讄cascade属性或cascade=none?QHibernate不会自动“持久化他所兌”的其他时对象?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">上面q些话是什么意思呢Q?什么叫不会自动 “持久?#8221;兌的时对象呢Q?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">看如下代码:</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">// 创徏一?临时对象(也叫自由态对? <br /> // 也就是说q个 class 没有被HibernateU_Session~存理?br /> Class class = new Class();<br /> //class.id 动生?br /> class.setName("一q1?);</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">Student stu = new Student();<br /> //student.id 动生?br /> stu.setName("白?);<br /> stu.setClass(class);</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">// 关键是q里。。?br /> class.getStudents().add(stu);</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">session.save(class);<br /> // 提交</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">// 注意: Class.hbm.xml文g?cascade="save-update"q且也没有设|inverse属?也就是说inverse=false;<br /> // 此时如果你开启了Hibernate的显CHQL语句功能Q那么控制台会昄如下3条HQLQ?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">//----------------------------------------********<br /> insert into demo.class (cid, cname) values (66666666666666666666666666666666, 一q1?<br /> insert into demo.student (sid,sname,class_id) values (8888888888888888811cb2e04c888888, 白? 66666666666666666666666666666666)<br /> update demo.student set class_id=66666666666666666666666666666666 where sid=8888888888888888811cb2e04c888888<br /> //----------------------------------------********</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">那么Z么会出现Q这3条HQL语句呢,我们来一一分析一下:</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">W?条HQL语句:<br /> 其实W一条HQL比较好理解,<br /> 当我们调?session.save(class) 后,在Hibernateq行提交的时候,<br /> 会发?#8220;?#8221;一?#8220;?#8221;的数据要插入(insert)Q所以就往class表中,插入了这条新的class记录?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">W?条HQL语句Q?br /> 注意问题在q里Q?br /> q里Z么又出现了一条insert语句呢?而且q是向student表中插入数据?br /> 我们在上面的代码中,q没有编写类?#8220;session.save(student)”q样的语句啊?br /> q是Z么呢Q?br /> 其实原因Q是q么回事Q因为我们在class端,讄?U联更新"(?cascade="save-update")Q?br /> 也就是说Q当Hibernate在向class表中插入“?#8221;对象记录Ӟ会检?#8220;Class对象”所兌的属?是<set>对应的属?Q是否发生过变化Q如果发生了变化Q就按照“U联属?cascade)”所讑֮的内?br /> q行操作?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">上面讲的q句话到底是什么意思呢Q?br /> 用你?#8220;?#8221;话说Q就是:<br /> 因ؓ调用? class.getStudents().add(stu);<br /> 所以,在Hibernate在进行插? class对象的时候,发现class对象Q所兌的集合中Q有一?br /> “自由?#8221;的对象,而又因ؓclass端设|了“U联属性cascade”Q所以,在插入这? “新class对象”Ӟ也一同把他内部的那些Q还属于“自由?#8221;的其他对象,也一同插入到Q他们所对应的表中去了?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">q是不明白的话。。。可以看看。孙卫琴的《精通Hibernate》,在书上的W?49|?br /> 但是关于inverse的介l。。。写的就有些书面化了Q如果语文不好的话。。。就难懂咯~</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">W?条HQL语句Q?br /> W三条HQL语句是一条update语句Q是不是觉得Q很莫名其妙。。。?br /> Hibernate大脑q水了吧Q怎么吃饱了撑得,重复更新记录啊啊啊啊?br /> 假如Q我们把 class端的配置文档中的 invser属性设|ؓtrue(卻Iinverse=true)<br /> 在执行上面的E序Q发玎ͼ变?条insert语句啦。。。。?update没啦。。?<br /> 看来W三条的update语句和inverse有着密切的关p(他两有一腿~Q?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">所以我们下边,来介绍一下inverse属?</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">当调? Class.getStudents().add(stu)ҎQ进行添加操作时Q?<br /> (卻I?"q个Class对象"所属的“集合 (也就是调用getStudentsҎ所q回的那个Set集合)”中添加一个Student(? add(stu))Q也是_q个“?#8221;d的Student对象(stu)Q? <br /> 他的Student.class_id字段“必须”Q要{于“被添加方Class”的主??Class.cid)? <br /> ?#8220;数据?#8221;层面来讲Q也是_q个“?#8221;d?#8220;Student”的class_id字段Q必要?#8220;Class”的cid字段Q存?d键关?? </span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">正因为如此:所以Hibernate“?#8221; 在进? "Class.getStudents().add(stu)" q样的操作时Q?<br /> 出现意外情况(? stu.getClass=nullQ即Qstu没有所属班U?Q?br /> ?#8220;d?#8221;(Student)?#8220;被添加方”(Class)Q存?#8220;外键”不一致的情况发生? <br /> 所以就出现?那条多余的update语句。即Qone-to-manyQClass端)dȝ护Child.Class_id <br /> 所以就是说QHibernate怕出错,q你多执行一ơ无用的更新语句Q以保证 add ? Class“集合”中的所有Student<br /> 都是要与Class有外键关联的?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">用普通话说就?<br /> 一q??getStudents().add(白?;<br /> 一q??getStudents().add(大白?;</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">也就是说现在不管?白?q是 大白? <br /> 如果他们Q目前还没有自己的班U的话,<br /> 一q?班的班主d会主动邀请他们成Zq?班的同学啦~?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">也就是说 一q?班的班主?d邀?同学Q而不? 同学自己来~~~ 所以效率也降低了。。。?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">所以我们一般把 一对多? invser讄为trueQ即Q不让主控端ȝ护主键关联,<br /> Q即Q让同学自己L班Q?br /> 说白了,是Qone-to-many端不用去理 “新添加对?#8221; 的主外键U束问题?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">把one-to-many端(?class?的invser讄为true<br /> (卻I每次向class.getStudentsq个集合中添? studentӞ不去dupdate对应的外?Q?br /> 而是在student端去手动讄<br /> 例如Q?br /> student.setClass(class);<br /> session.save(student);<br /> q样手动讄 student与class兌啦。。。?br /> 所以上面的E序“最?#8221;q是写成q样Q?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">Class class = new Class();<br /> class.setName("一q1?);<br /> session.save(class);</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">Student stu = new Student();<br /> stu.setName("白?);<br /> stu.setClass(class);<br /> session.save(class);</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">/*<br /> 此时向class集合add内容Q不会进行数据库操作(update)?br /> “更新”的只是session~存中,数据镜像?br /> q样做的好处是:不仅减少了update语句Q?br /> 而且Q同时也更新了session~存?br /> ------------------------<br /> 而在原来:<br /> one-to-many端inverse=falseӞ虽然也更新seesion~存中的class集合Q?br /> 但是有却又多余update<br /> */<br /> class.getStudents().add(stu);<br /> // 提交</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">ȝ:<br /> 当inverse=false q且向one-to-many端的兌集合Q添?#8220;新对?? 自由态对?” Ӟ<br /> Hibernate׃自动Q去update?#8220;个刚刚到来的” “自由态对?#8221;的外键?br /> Q如果你向,one-to-many端添的集合中Qadd一?#8220;已经持久化了的对?#8221;Q那׃会出现update?因ؓ已经持久化过?Q除非,你去 更改“那个持久化对?#8221;所对应的外键。。。那L话。。。呵呵呵~~~<br /> 你可以试一试,应该不会报错Q你可以当做l习d一下,加深cascade和inverseq两个属性的理解Q?/span></span></span></span></span></span></p> <p><br /> <span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">// 如果看懂了上面的内容。来看一下,下面的东ѝ?br /> 假如Q将one-to-many??Class??hbm.xml 文档中的cascadeU除? 或把cascade="none"?br /> 那么上面的代码会出现什么情况呢?br /> l果会出?条HQLQ和一堆Exception</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">insert into demo.class (cid, cname) values (66666666666666666666666666666666, 一q1?<br /> update demo.student set class_id=66666666666666666666666666666666 where sid=8888888888888888811cb2e04c888888<br /> Hibernate Exceptinon...................................... </span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">相比较cascade被设|?save-update"的时候,~少?? insert语句Q而且也多了一些Exception?/span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">那么Q到底是了?条insert语句呢?<br /> 是q条Q?br /> insert into demo.student (sid,sname,class_id) values (8888888888888888811cb2e04c888888, 白? 66666666666666666666666666666666)</span></span></span></span></span></span></p> <p><span style="font-size: 14pt;"><span style="font-size: 14pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="font-size: 12pt;"><span style="font-size: 10pt;">之所以会出现Q这L现象Q想必您已经早就看出来了?br /> 因ؓQ我没有讄Class端的CascadeQ所以在save(class)的时候,q没有自动将其所兌?#8220;自由态对?#8221;q行持久化操作?br /> 然而,又因? Class端的inverse=falseQ所以,Class会自动去l持Q那?“新来的student” 的外键?br /> 所以会出现Q没有insertpupdate啦。。。?br /> 然后在就是Exception?/span></span></span></span></span></span></p> </div> <img src ="http://www.aygfsteel.com/noaso/aggbug/338247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/noaso/" target="_blank">noaso</a> 2010-11-17 13:31 <a href="http://www.aygfsteel.com/noaso/archive/2010/11/17/338247.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate 中createQuery与createSQLQuery两者区?/title><link>http://www.aygfsteel.com/noaso/archive/2010/11/09/337652.html</link><dc:creator>noaso</dc:creator><author>noaso</author><pubDate>Tue, 09 Nov 2010 09:42:00 GMT</pubDate><guid>http://www.aygfsteel.com/noaso/archive/2010/11/09/337652.html</guid><wfw:comment>http://www.aygfsteel.com/noaso/comments/337652.html</wfw:comment><comments>http://www.aygfsteel.com/noaso/archive/2010/11/09/337652.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/noaso/comments/commentRss/337652.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/noaso/services/trackbacks/337652.html</trackback:ping><description><![CDATA[<p><br /> 前者用的hql语句q行查询Q后者可以用sql语句查询<br /> 前者以hibernate生成的Bean为对象装入listq回<br /> 后者则是以对象数组q行存储<br /> 所以用createSQLQuery有时候也想以hibernate生成的Bean为对象装入listq回Q就不是很方?br /> H然发现createSQLQuery有这样一个方法可以直接{换对?br /> Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);<br /> XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean?br /> 呵呵以后多注意,q是时不时的要看看hibernate各个对象Ҏ的用?/p> <p>q有另外一个相关的细节应注意Q?br /> 比如有这样一个po<br /> PO: User.class<br /> properties: userId,userName<br /> DDL: create table tuser (userid varchar(10),username varchar(20));<br /> 当执行:<br />     session.createQuery("from User u").list()时生成的SQLQ?br /> select userid,username from tuser;<br /> 当执行:<br />    <br /> session.createQuery("from User u").iterator()时生成的SQLQ?br /> <br /> select userid from tuser;<br /> <br /> 可以看出list()一ơ将数据从数据库中读出直接填充到List?br /> <br /> iterator()数据的主键从数据库中读出,当@环这个Iterator时才d执行Q?br /> <br /> select userid,username from user where userid=?;把数据读出?br /> 在不同的应用范围使用不同的方法,具体在hibernate应用中应当注意?/p> <p><font color="#ff0000">另外涉及到hibernate 的一U缓?二~存 以后再研I?/font></p> <img src ="http://www.aygfsteel.com/noaso/aggbug/337652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/noaso/" target="_blank">noaso</a> 2010-11-09 17:42 <a href="http://www.aygfsteel.com/noaso/archive/2010/11/09/337652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一只灰?/title><link>http://www.aygfsteel.com/noaso/archive/2010/11/09/337642.html</link><dc:creator>noaso</dc:creator><author>noaso</author><pubDate>Tue, 09 Nov 2010 08:35:00 GMT</pubDate><guid>http://www.aygfsteel.com/noaso/archive/2010/11/09/337642.html</guid><wfw:comment>http://www.aygfsteel.com/noaso/comments/337642.html</wfw:comment><comments>http://www.aygfsteel.com/noaso/archive/2010/11/09/337642.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/noaso/comments/commentRss/337642.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/noaso/services/trackbacks/337642.html</trackback:ping><description><![CDATA[<div align="center">一只灰?br /> </div> <div align="center"><img src="http://www.aygfsteel.com/images/blogjava_net/noaso/20090116161608625.jpg" alt="" border="0" height="162" width="384" /></div> <br /> <img src ="http://www.aygfsteel.com/noaso/aggbug/337642.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/noaso/" target="_blank">noaso</a> 2010-11-09 16:35 <a href="http://www.aygfsteel.com/noaso/archive/2010/11/09/337642.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>正则匚w端口表达?/title><link>http://www.aygfsteel.com/noaso/archive/2010/11/09/337640.html</link><dc:creator>noaso</dc:creator><author>noaso</author><pubDate>Tue, 09 Nov 2010 08:31:00 GMT</pubDate><guid>http://www.aygfsteel.com/noaso/archive/2010/11/09/337640.html</guid><wfw:comment>http://www.aygfsteel.com/noaso/comments/337640.html</wfw:comment><comments>http://www.aygfsteel.com/noaso/archive/2010/11/09/337640.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/noaso/comments/commentRss/337640.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/noaso/services/trackbacks/337640.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;"> <br /> <br /> <br /> String regex </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">^([1-9]|[1-9]\\d{1,3}|[1-6][0-5][0-5][0-3][0-5])$</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />   <br /> <br /> <br /> </span><span style="color: #000000;"><br /> </span></div> <img src ="http://www.aygfsteel.com/noaso/aggbug/337640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/noaso/" target="_blank">noaso</a> 2010-11-09 16:31 <a href="http://www.aygfsteel.com/noaso/archive/2010/11/09/337640.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʩ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank">ߴ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">Ϸ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">۳</a>| <a href="http://" target="_blank">ǭ</a>| <a href="http://" target="_blank">ͼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ǿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">߱</a>| <a href="http://" target="_blank">ܿ</a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank">ֻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ƕ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>