??xml version="1.0" encoding="utf-8" standalone="yes"?>aa亚洲一区一区三区,国产精品免费一区二区三区都可以,久久中文久久字幕http://www.aygfsteel.com/migrant/category/41324.html我们的失落…?/description>zh-cnThu, 27 Aug 2009 21:42:23 GMTThu, 27 Aug 2009 21:42:23 GMT60[转]Hibernate saveorUpdate与unsaved-valueQsaveQupdateQdeleteȝhttp://www.aygfsteel.com/migrant/archive/2009/08/27/292815.htmlJ2EE学习W记J2EE学习W记Thu, 27 Aug 2009 06:44:00 GMThttp://www.aygfsteel.com/migrant/archive/2009/08/27/292815.htmlhttp://www.aygfsteel.com/migrant/comments/292815.htmlhttp://www.aygfsteel.com/migrant/archive/2009/08/27/292815.html#Feedback0http://www.aygfsteel.com/migrant/comments/commentRss/292815.htmlhttp://www.aygfsteel.com/migrant/services/trackbacks/292815.htmlq些操作对经怋用hibernate的同学已l很熟悉了,我也l常用但一些细节ƈ不了解,
最q遇到问题才开始有看了一下?/span>

在读完robbin的这两个_֍贴的时候,感觉清晰了很多,实好文章?
http://www.javaeye.com/topic/2712
http://www.javaeye.com/topic/1604?page=1
q有q个_֍?
http://www.javaeye.com/topic/7484
也很不错?/span>

里面ȝ的很好了Q我l合以上三个帖子、自q试验Q版本hibernate-3.0.5Q和Hibernate文档也ȝ了一点,加深理解?strong>希望对刚开始学Hibernate的同学有所帮助?/strong>

一、saveorUpdate与unsaved-value
到底是savaq是update
Hibernate需要判断被操作的对象究竟是一个已l持久化q的持久对象q是临时对象?
1Q.主键Hibernate的id generator产生
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="increment" />
</id>

Project project = new Project();
project.setId(XXX);
this.projectDao.saveOrUpdate(project);

1、默认unsaved-value="null"
主键是对象类型,hebernate判断project的主键是否位nullQ来判断project是否已被持久?/strong>
是的话,对project对象发送save(project)Q?
若自p|了主键则直接生成update的sqlQ发送update(project)Q即便数据库里没有那条记录?
主键是基本类型如int/long/double/
自己讄unsaved-null="0"?
所以这L话save和update操作肯定不会报错?/span>

2、unsaved-value="none"Q?
׃不论主键属性ؓM|都不可能为noneQ因此HibernateL对project对象发送update(project)

3、unsaved-value="any"
׃不论主键属性ؓM|都肯定ؓanyQ因此HibernateL对project对象发送save(project)Qhibernate生成主键?/span>

Hibernate文档中写?
saveOrUpdate()完成了如下工作:
如果对象已经在这个session中持久化q了Q什么都不用?
如果对象没有标识|调用save()来保存它
如果对象的标识gunsaved-value中的条g匚wQ调用save()来保存它
如果对象使用了版?version或timestamp),那么除非讄unsaved-value="undefined",版本查会发生在标识符查之?
如果q个session中有另外一个对象具有同L标识W,抛出一个异?

2Q.主键p己来赋?/strong>
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="assigned" />
</id>

Project project = new Project();
project.setId(XXX);
this.projectDao.saveOrUpdate(project);

1、默认unsaved-value="null"
q时有所不同Qhibernate会根据主键生一个selectQ来判断此对象是否已被持久化
已被持久化则updateQ未被持久化则save?
2、unsaved-value="none"Qupdate对象Q同?/span>

3、unsaved-value="any" Qsave对象Q?
如果自己自己讄的ID在数据库中已存在Q则报错?/span>

二、save与update操作
昑ּ的用session.save()或者session.update()操作一个对象的时候,实际上是用不到unsaved-value?
在同一SessionQsave没什么可说得
update对象? 最直接的更改一个对象的Ҏ是load()它,保持Session打开Q然后直接修改即?
Session s =…
Project p = (Project) sess.load(Project.class, id) );
p.setName(“test”);
s.flush();
不用调用s.update(p);hibernate能察觉到它的变化Q会自动更新。当然显C用的话也不会?/span>

Hibernate文档中写?
update()Ҏ在下列情形下使用Q?
E序在前面的session中装载了对象
对象被传递到UIQ界面)?
对该对象q行了一些修?
对象被传递回业务?
应用E序在第二个session中调用update()保存修改

三、delete操作
删除时直接自己构造一个project卛_删除
this.projectDao.delete(preojct);

以前删除我是q样写的
public void deleteProject(String id) {
Project project = (Project) this.projectDao.get(Project.class, id);
if (project != null) {
this.projectDao.delete(project);
}
卌样也是可以的
Project project = new Project();
project.setId(id);
this.projectDao.delete(project).

如果有联关p,需要把U联的子cM构造出来addq去Q同样可以删除?/span>

好了Q罗嗦的够多了?/span>



J2EE学习W记 2009-08-27 14:44 发表评论
]]>
[转]Hibernate映射配置文g中id标签的unsaved-value属性详?/title><link>http://www.aygfsteel.com/migrant/archive/2009/08/17/291567.html</link><dc:creator>J2EE学习W记</dc:creator><author>J2EE学习W记</author><pubDate>Mon, 17 Aug 2009 14:41:00 GMT</pubDate><guid>http://www.aygfsteel.com/migrant/archive/2009/08/17/291567.html</guid><wfw:comment>http://www.aygfsteel.com/migrant/comments/291567.html</wfw:comment><comments>http://www.aygfsteel.com/migrant/archive/2009/08/17/291567.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/migrant/comments/commentRss/291567.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/migrant/services/trackbacks/291567.html</trackback:ping><description><![CDATA[<span style="font-family: 新宋? font-size: 10pt">当你昑ּ的用session.save()或者session.update()操作一个对象的时候,实际上是用不?span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>的。某些情况下(父子表关联保?Q当你在E序中ƈ没有昑ּ的用save或者update一个持久对象,那么<span style="font-family: " class="hilite1">Hibernate</span>需要判断被操作的对象究竟是一个已l持久化q的持久对象Q是一个尚未被持久化过的内存时对象。例如:<br /> <br style="font-family: " /> </span> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">Session session </span><span style="color: #000000">=</span><span style="color: #000000"> <img alt="" src="http://www.aygfsteel.com/Images/dot.gif" />;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />Transaction tx </span><span style="color: #000000">=</span><span style="color: #000000"> <img alt="" src="http://www.aygfsteel.com/Images/dot.gif" />;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />Parent parent </span><span style="color: #000000">=</span><span style="color: #000000"> (Parent); session.load(Parent.</span><span style="color: #0000ff">class</span><span style="color: #000000">, id);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />Child child </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Child();;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />child.setParent(parent);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />child.setName(</span><span style="color: #000000">"</span><span style="color: #000000">sun</span><span style="color: #000000">"</span><span style="color: #000000">);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />parent.addChild(child);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />s.update(parent);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />s.flush();;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />tx.commit();;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />s.close();;</span></div> <br /> <span style="font-family: 新宋? font-size: 10pt">在上例中Q程序ƈ没有昑ּ的session.save(child); 那么<span style="font-family: " class="hilite1">Hibernate</span>需要知道childI竟是一个时对象,q是已经在数据库中有的持久对象。如果child是一个新创徏的时对?本例中就是这U情?Q那?span style="font-family: " class="hilite1">Hibernate</span>应该自动产生session.save(child)q样的操作,如果child是已l在数据库中有的持久对象Q那?span style="font-family: " class="hilite1">Hibernate</span>应该自动产生session.update(child)q样的操作?<br style="font-family: " /> <br style="font-family: " /> 因此我们需要暗CZ?span style="font-family: " class="hilite1">Hibernate</span>Q究竟child对象应该对它自动saveq是update。在上例中,昄我们应该暗示<span style="font-family: " class="hilite1">Hibernate</span>对child自动saveQ而不是自动update。那?span style="font-family: " class="hilite1">Hibernate</span>如何判断I竟对child是saveq是update呢?它会取一下child的主键属?child.getId() Q这里假设id?java.lang.Integercd的。如果取到的Id值和hbm映射文g中指定的unsave-<span style="font-family: " class="hilite3">value</span>相等Q那?span style="font-family: " class="hilite1">Hibernate</span>认ؓchild是新的内存时对象,发送saveQ如果不相等Q那?span style="font-family: " class="hilite1">Hibernate</span>认ؓchild是已l持久过的对象,发送update?<br style="font-family: " /> <br style="font-family: " /> <span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>="null" (默认情况Q适用于大多数对象cd主键 Integer/Long/String/...) <br style="font-family: " /> <br style="font-family: " /> ?span style="font-family: " class="hilite1">Hibernate</span>取一下child的IdQ取出来的是null(在上例中肯定取出来的是null)Q和<span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>讑֮值相{,发送save(child) <br style="font-family: " /> <br style="font-family: " /> ?span style="font-family: " class="hilite1">Hibernate</span>取一下child的idQ取出来的不是nullQ那么和<span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>讑֮g相等Q发送update(child) <br style="font-family: " /> <br style="font-family: " /> 例如下面的情况:<br /> <br style="font-family: " /> </span> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">Session session </span><span style="color: #000000">=</span><span style="color: #000000"> <img alt="" src="http://www.aygfsteel.com/Images/dot.gif" />;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />Transaction tx </span><span style="color: #000000">=</span><span style="color: #000000"> <img alt="" src="http://www.aygfsteel.com/Images/dot.gif" />;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />Parent parent </span><span style="color: #000000">=</span><span style="color: #000000"> (Parent); session.load(Parent.</span><span style="color: #0000ff">class</span><span style="color: #000000">, id);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />Child child </span><span style="color: #000000">=</span><span style="color: #000000"> (Child); session.load(Child.</span><span style="color: #0000ff">class</span><span style="color: #000000">, childId);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />child.setParent(parent);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />child.setName(</span><span style="color: #000000">"</span><span style="color: #000000">sun</span><span style="color: #000000">"</span><span style="color: #000000">);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />parent.addChild(child);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />s.update(parent);;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />s.flush();;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />tx.commit();;<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />s.close();;</span></div> <br /> <span style="font-family: 新宋? font-size: 10pt">child已经在数据库中有了,是一个持久化的对象,不是新创建的Q因此我们希?span style="font-family: " class="hilite1">Hibernate</span>发送update(child)Q在该例中,<span style="font-family: " class="hilite1">Hibernate</span>取一下child.getId()Q和unsave-<span style="font-family: " class="hilite3">value</span>指定的null比对一下,发现不相{,那么发送update(child)?<br style="font-family: " /> <br style="font-family: " /> BTW: parent对象不需要操心,因ؓE序昑ּ的对parent有load操作和update的操作,不需?span style="font-family: " class="hilite1">Hibernate</span>自己来判断究竟是saveq是update了。我们要注意的只是child对象的操作。另?span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>是定义在Childcȝ主键属性中的?br /> <br style="font-family: " /> </span> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff"><</span><span style="color: #800000">class </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="Child"</span><span style="color: #ff0000"> table</span><span style="color: #0000ff">="child"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff"><</span><span style="color: #800000">id </span><span style="color: #ff0000">column</span><span style="color: #0000ff">="id"</span><span style="color: #ff0000"> name</span><span style="color: #0000ff">="id"</span><span style="color: #ff0000"> type</span><span style="color: #0000ff">="integer"</span><span style="color: #ff0000"> unsaved-value</span><span style="color: #0000ff">="null"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />  </span><span style="color: #0000ff"><</span><span style="color: #800000">generator </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="identity"</span><span style="color: #0000ff">/></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff"></</span><span style="color: #800000">id</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff"></</span><span style="color: #800000">class</span><span style="color: #0000ff">></span></div> <br /> <span style="font-family: 新宋? font-size: 10pt">如果主键属性不是对象型Q而是基本cdQ如int/long/double/...Q那么你需要指定一个数值型?span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>Q例如:<br style="font-family: " /> </span><br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">unsaved-value="0"</span></div> <br /> <span style="font-family: 新宋? font-size: 10pt">在此提醒大家Q很多h以ؓ对主键属性定义ؓint/longQ比定义为Integer/Longq行效率来得高,认ؓ基本cd不需要进行对象的装和解构操作,因此喜欢把主键定义ؓint/long的。但实际上,<span style="font-family: " class="hilite1">Hibernate</span>内部L把主键{换ؓ对象型进行操作的Q就你定义为int/long型的Q?span style="font-family: " class="hilite1">Hibernate</span>内部也要q行一ơ对象构造操作,q回l你的时候,q要q行解构操作Q效率可能反而低也说不定。因此大家一定要扭{一个观点,?span style="font-family: " class="hilite1">Hibernate</span>中,主键属性定义ؓ基本cdQƈ不能够比定义为对象型效率来的高,而且也多了很多麻烦,因此大家使用对象型的Integer/Long定义主键?<br style="font-family: " /> <br style="font-family: " /> <span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>="none"?<br style="font-family: " /> <span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>="any" <br style="font-family: " /> <br style="font-family: " /> M要用在主键属性不是通过<span style="font-family: " class="hilite1">Hibernate</span>生成Q而是E序自己setId()的时候?<br style="font-family: " /> <br style="font-family: " /> 在这里多说一句,强烈使用<span style="font-family: " class="hilite1">Hibernate</span>的id generatorQ或者你可以自己扩展<span style="font-family: " class="hilite1">Hibernate</span>的id generatorQ特别注意不要用有实际含义的字D当做主键来用!例如用户cUserQ很多h喜欢用用L陆名U做Z键,q是一个很不好的习惯,当用L和其他实体类有关联关pȝ时候,万一你需要修改用L陆名Uͼ一改就需要改好几张表中的数据。偶合性太高,而如果你使用无业务意义的id generatorQ那么修改用户名Uͼ只修改user表就行了?<br style="font-family: " /> <br style="font-family: " /> p个问题引甛_来,如果你严格按照这个原则来设计数据库,那么你基本上是用不到手工来setId()的,你用<span style="font-family: " class="hilite1">Hibernate</span>的id generatorOK了。因此你也不需要了解当 <br style="font-family: " /> <br style="font-family: " /> <span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>="none"?<br style="font-family: " /> <span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>="any" <br style="font-family: " /> <br style="font-family: " /> I竟有什么含义了。如果你非要用assigned不可Q那么l解释一下: <br style="font-family: " /> <br style="font-family: " /> <span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>="none" 的时候,׃不论主键属性ؓM|都不可能为noneQ因?span style="font-family: " class="hilite1">Hibernate</span>L对child对象发送update(child) <br style="font-family: " /> <br style="font-family: " /> <span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>="any" 的时候,׃不论主键属性ؓM|都肯定ؓanyQ因?span style="font-family: " class="hilite1">Hibernate</span>L对child对象发送save(child) <br style="font-family: " /> <br style="font-family: " /> 大多数情况下Q你可以避免使用assignedQ只有当你用复合主键的时候不得不手工setId()Q这时候需要你自己考虑I竟怎么讄<span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>了,Ҏ你自q需要来定?<br style="font-family: " /> <br style="font-family: " /> BTW: Gavin King强烈不徏议用composite-idQ强烈徏议用UserType?<br style="font-family: " /> <br style="font-family: " /> 因此Q如果你在系l设计的时候,遵@如下原则Q?<br style="font-family: " /> <br style="font-family: " /> <span style="font-family: ; color: red">1、?span style="font-family: " class="hilite1">Hibernate</span>的id generator来生成无业务意义的主键,不用有业务含义的字D做主键Q不使用assigned?<br style="font-family: " /> <br style="font-family: " /> 2、用对象类?String/Integer/Long/...)来做主键Q而不使用基础cd(int/long/...)做主?<br style="font-family: " /> <br style="font-family: " /> 3、不使用composite-id来处理复合主键的情况Q而用UserType来处理该U情c?/span> <br style="font-family: " /> <br style="font-family: " /> 那么你永q用的是<span style="font-family: " class="hilite2">unsaved</span>-<span style="font-family: " class="hilite3">value</span>="null" Q不可能用到any/none/..了?</span> <img src ="http://www.aygfsteel.com/migrant/aggbug/291567.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/migrant/" target="_blank">J2EE学习W记</a> 2009-08-17 22:41 <a href="http://www.aygfsteel.com/migrant/archive/2009/08/17/291567.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>