亚洲av日韩av不卡在线观看 ,亚洲一区二区三区在线视频,亚洲av永久综合在线观看尤物http://www.tkk7.com/zxb90study/人生路漫漫,多學(xué)些知識總是有益處的zh-cnSun, 11 May 2025 01:28:41 GMTSun, 11 May 2025 01:28:41 GMT60sql browser 無法啟動終極解決辦法http://www.tkk7.com/zxb90study/archive/2012/07/30/384282.htmlzx_bingzx_bingSun, 29 Jul 2012 23:23:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/30/384282.html一、為 SQL 啟用遠(yuǎn)程連接

1. 單擊“開始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后單擊“SQL Server 外圍應(yīng)用配置器”。
2. 在“SQL Server 2005 外圍應(yīng)用配置器”頁上,單擊“服務(wù)和連接的外圍應(yīng)用配置器”。
3. 在“服務(wù)和連接的外圍應(yīng)用配置器”頁上,展開“數(shù)據(jù)庫引擎”,依次單擊“遠(yuǎn)程連接”和“本地連接和遠(yuǎn)程連接”,單擊適用于您的環(huán)境的相應(yīng)協(xié)議,然后單擊“應(yīng)用”。

注意:請在接收到以下消息時單擊“確定”:
直到重新啟動數(shù)據(jù)庫引擎服務(wù)后,對連接設(shè)置所做的更改才會生效。
4. 在“服務(wù)和連接的外圍應(yīng)用配置器”頁上,展開“數(shù)據(jù)庫引擎”,依次單擊“服務(wù)”和“停止”,等待 MSSQLSERVER 服務(wù)停止,然后單擊“啟動”以重新啟動 MSSQLSERVER 服務(wù)。

二、啟用 SQL Server Browser 服務(wù)

1. 單擊“開始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后單擊“SQL Server 外圍應(yīng)用配置器”。
2. 在“SQL Server 2005 外圍應(yīng)用配置器”頁上,單擊“服務(wù)和連接的外圍應(yīng)用配置器”。
3. 在“服務(wù)和連接的外圍應(yīng)用配置器”頁上,單擊“SQL Server Browser”,在“啟動類型”中單擊“自動”選項,然后單擊“應(yīng)用”。

注意:在單擊“自動”選項后,每次啟動 Microsoft Windows 時將自動啟動 SQL Server Browser 服務(wù)。
4. 單擊“啟動”,然后單擊“確定”。

三、在 Windows 防火墻中為SQL Server
2005 創(chuàng)建例外

1. 在 Windows 防火墻中,單擊“例外”選項卡,然后單擊“添加程序”。
2. 在“添加程序”窗口中,單擊“瀏覽”。
3. 單擊 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe 可執(zhí)行程序,單擊“打開”,然后單擊“確定”。

注意:上述路徑可能會根據(jù) SQL Server
2005 的安裝位置而不同。

四、在 Windows 防火墻中為 SQL Server Browser 服務(wù)創(chuàng)建例外

1. 在 Windows 防火墻中,單擊“例外”選項卡,然后單擊“添加程序”。
2. 在“添加程序”窗口中,單擊“瀏覽”。
3. 單擊 C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe 可執(zhí)行程序,單擊“打開”,然后單擊“確定”。

注意:上述路徑可能會根據(jù) SQL Server
2005 的安裝位置而不同。

五、遠(yuǎn)程連接端口設(shè)置(很關(guān)鍵的一步,很多方法只講了一到四步,卻沒有講到第五步)

1、在服務(wù)器上打開SQL Server Configuration Manager。選擇SQL Server配置治理器->SQL Server 2005網(wǎng)絡(luò)配置->MSSQLSERVER的協(xié)議->TCP/IP,在彈出對話框中選擇IP地址->IPALL->TCP端口,設(shè)置為可用端口。(如果默認(rèn)的1433端口老是連接不上,你就設(shè)置為你確認(rèn)已經(jīng)打開的端口試試,如21端口等)

2、在“服務(wù)和連接的外圍應(yīng)用配置器”頁上,展開“數(shù)據(jù)庫引擎”,依次單擊“服務(wù)”和“停止”,等待 MSSQLSERVER 服務(wù)停止,然后單擊“啟動”以重新啟動 MSSQLSERVER 服務(wù)。

六、測試連接

1、打開SQL2005登陸界面,輸入服務(wù)器IP和用戶名及密碼。
如:
服務(wù)器名稱:
192.168.1.200,21
用戶名:sa
密碼:sa
點連接,結(jié)果連接成功。
PS:上面的服務(wù)器名稱中的,21中的21第五步中第1步中設(shè)置的IPALL中的TCP端口


zx_bing 2012-07-30 07:23 發(fā)表評論
]]>
hibernate+java+sql 之間數(shù)據(jù)類型轉(zhuǎn)換關(guān)系 http://www.tkk7.com/zxb90study/archive/2012/07/27/384156.htmlzx_bingzx_bingFri, 27 Jul 2012 06:37:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384156.html


Hibernate映射類型
java類型
標(biāo)準(zhǔn)SQL類型

integer
java.lang.Integer
integer

long
java.lang.Long
bigint

short
java.lang.Short
smallint

float
java.lang.Float
float

double
java.lang.Float
double

big_decimal
java.math.BigDecimal
numeric

character
java.lang.String
char(1)

string
java.lang.String
varchar

byte
byte或java.lang.Byte
tinyint

boolean
boolean或java.lang.Boolean 
bit

yes_no   
boolean或java.lang.Boolean
char(1)('Y'/'N')

true_false
boolean或java.lang.Boolean
char(1)('Y'/'N')

date
java.util.Date或java.sql.Date
date

time
java.util.Date或java.sql.Time
time

timestamp
java.util.Date或java.sql.timestamp
timestamp

calendar
java.util.Calendar
timestamp

calendar_date
java.util.Calendar
date

binary
byte[]
varbinary或blob

text
java.lang.String
clob

serializable
java.io.Serializable實例
varbinary或blob

clob
java.sql.Clob
clob

blob
java.sql.Blob
varbinary或blob

class
java.lang.Class
varchar

locale
java.util.Locale
varchar

timezone
java.util.TimeZone
varchar

currency
java.util.Currency
varchar

zx_bing 2012-07-27 14:37 發(fā)表評論
]]>
外鍵查詢 遇到錯誤:could not initialize proxy - the owning Session was close http://www.tkk7.com/zxb90study/archive/2012/07/27/384153.htmlzx_bingzx_bingFri, 27 Jul 2012 06:13:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384153.html
延遲初始化錯誤是運(yùn)用Hibernate開發(fā)項目時最常見的錯誤。如果對一個類或者集合配置了延遲檢索策略,那么必須當(dāng)代理類實例或代理集合處于持久化狀態(tài)(即處于Session范圍內(nèi))時,才能初始化它。如果在游離狀態(tài)時才初始化它,就會產(chǎn)生延遲初始化錯誤。

下面把Customer.hbm.xml文件的<class>元素的lazy屬性設(shè)為true,表示使用延遲檢索策略:

<class name="mypack.Customer" table="CUSTOMERS" lazy="true">

當(dāng)執(zhí)行Session的load()方法時,Hibernate不會立即執(zhí)行查詢CUSTOMERS表的select語句,僅僅返回Customer類的代理類的實例,這個代理類具由以下特征:

(1) 由Hibernate在運(yùn)行時動態(tài)生成,它擴(kuò)展了Customer類,因此它繼承了Customer類的所有屬性和方法,但它的實現(xiàn)對于應(yīng)用程序是透明的。
(2) 當(dāng)Hibernate創(chuàng)建Customer代理類實例時,僅僅初始化了它的OID屬性,其他屬性都為null,因此這個代理類實例占用的內(nèi)存很少。
(3)當(dāng)應(yīng)用程序第一次訪問Customer代理類實例時(例如調(diào)用customer.getXXX()或customer.setXXX()方法), Hibernate會初始化代理類實例,在初始化過程中執(zhí)行select語句,真正從數(shù)據(jù)庫中加載Customer對象的所有數(shù)據(jù)。但有個例外,那就是當(dāng)應(yīng)用程序訪問Customer代理類實例的getId()方法時,Hibernate不會初始化代理類實例,因為在創(chuàng)建代理類實例時OID就存在了,不必到數(shù)據(jù)庫中去查詢。

提示:Hibernate采用CGLIB工具來生成持久化類的代理類。CGLIB是一個功能強(qiáng)大的Java字節(jié)碼生成工具,它能夠在程序運(yùn)行時動態(tài)生成擴(kuò)展 Java類或者實現(xiàn)Java接口的代理類。關(guān)于CGLIB的更多知識,請參考:http://cglib.sourceforge.net/。

以下代碼先通過Session的load()方法加載Customer對象,然后訪問它的name屬性:

tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,new Long(1));
customer.getName();
tx.commit();

在運(yùn)行session.load()方法時Hibernate不執(zhí)行任何select語句,僅僅返回Customer類的代理類的實例,它的OID為1,這是由load()方法的第二個參數(shù)指定的。當(dāng)應(yīng)用程序調(diào)用customer.getName()方法時,Hibernate會初始化Customer代理類實例,從數(shù)據(jù)庫中加載Customer對象的數(shù)據(jù),執(zhí)行以下select語句:

select * from CUSTOMERS where ID=1;
select * from ORDERS where CUSTOMER_ID=1;

當(dāng)<class>元素的lazy屬性為true,會影響Session的load()方法的各種運(yùn)行時行為,下面舉例說明。

1.如果加載的Customer對象在數(shù)據(jù)庫中不存在,Session的load()方法不會拋出異常,只有當(dāng)運(yùn)行customer.getName()方法時才會拋出以下異常:

ERROR LazyInitializer:63 - Exception initializing proxy
net.sf.hibernate.ObjectNotFoundException: No row with the given identifier exists: 1, of class:
mypack.Customer

2.如果在整個Session范圍內(nèi),應(yīng)用程序沒有訪問過Customer對象,那么Customer代理類的實例一直不會被初始化,Hibernate不會執(zhí)行任何select語句。以下代碼試圖在關(guān)閉Session后訪問Customer游離對象:

tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,new Long(1));
tx.commit();
session.close();
customer.getName();

由于引用變量customer引用的Customer代理類的實例在Session范圍內(nèi)始終沒有被初始化,因此在執(zhí)行customer.getName()方法時,Hibernate會拋出以下異常:

ERROR LazyInitializer:63 - Exception initializing proxy
net.sf.hibernate.HibernateException: Could not initialize proxy - the owning Session was closed

由此可見,Customer代理類的實例只有在當(dāng)前Session范圍內(nèi)才能被初始化。

3.net.sf.hibernate.Hibernate類的initialize()靜態(tài)方法用于在Session范圍內(nèi)顯式初始化代理類實例,isInitialized()方法用于判斷代理類實例是否已經(jīng)被初始化。例如:

tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,new Long(1));
if(!Hibernate.isInitialized(customer))
Hibernate.initialize(customer);
tx.commit();
session.close();
customer.getName();

以上代碼在Session范圍內(nèi)通過Hibernate類的initialize()方法顯式初始化了Customer代理類實例,因此當(dāng)Session關(guān)閉后,可以正常訪問Customer游離對象。

4.當(dāng)應(yīng)用程序訪問代理類實例的getId()方法時,不會觸發(fā)Hibernate初始化代理類實例的行為,例如:

tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,new Long(1));
customer.getId();
tx.commit();
session.close();
customer.getName();

當(dāng)應(yīng)用程序訪問customer.getId()方法時,該方法直接返回Customer代理類實例的OID值,無需查詢數(shù)據(jù)庫。由于引用變量 customer始終引用的是沒有被初始化的Customer代理類實例,因此當(dāng)Session關(guān)閉后再執(zhí)行customer.getName()方法, Hibernate會拋出以下異常:

ERROR LazyInitializer:63 - Exception initializing proxy
net.sf.hibernate.HibernateException: Could not initialize proxy - the owning Session was closed


解決方法:

由于hibernate采用了lazy=true,這樣當(dāng)你用hibernate查詢時,返回實際為利用cglib增強(qiáng)的代理類,但其并沒有實際填充;當(dāng)你在前端,利用它來取值(getXXX)時,這時Hibernate才會到數(shù)據(jù)庫執(zhí)行查詢,并填充對象,但此時如果和這個代理類相關(guān)的session已關(guān)閉掉,就會產(chǎn)生種錯誤.
在做一對多時,有時會出現(xiàn)"could not initialize proxy - clothe owning Session was sed,這個好像是hibernate的緩存問題.問題解決:需要在<many-to-one>里設(shè)置lazy="false". 但有可能會引發(fā)另一個異常叫

failed to lazily initialize a collection of role: XXXXXXXX, no session or session was closed

此異常解決方案請察看本人博客(http://hi.baidu.com/kekemao1)的Hibernate異常中的《failed to lazily initialize a collection of role異常》

?
解決方法:在web.xml中加入
<filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>
     org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    </filter-class>
</filter
<filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>*.do</url-pattern>
</filter-mapping>
就可以了;

參考了:
Hibernate與延遲加載:

Hibernate對象關(guān)系映射提供延遲的與非延遲的對象初始化。非延遲加載在讀取一個對象的時候會將與這個對象所有相關(guān)的其他對象一起讀取出來。這有時會導(dǎo)致成百的(如果不是成千的話)select語句在讀取對象的時候執(zhí)行。這個問題有時出現(xiàn)在使用雙向關(guān)系的時候,經(jīng)常會導(dǎo)致整個數(shù)據(jù)庫都在初始化的階段被讀出來了。當(dāng)然,你可以不厭其煩地檢查每一個對象與其他對象的關(guān)系,并把那些最昂貴的刪除,但是到最后,我們可能會因此失去了本想在ORM工具中獲得的便利。


一個明顯的解決方法是使用Hibernate提供的延遲加載機(jī)制。這種初始化策略只在一個對象調(diào)用它的一對多或多對多關(guān)系時才將關(guān)系對象讀取出來。這個過程對開發(fā)者來說是透明的,而且只進(jìn)行了很少的數(shù)據(jù)庫操作請求,因此會得到比較明顯的性能提升。這項技術(shù)的一個缺陷是延遲加載技術(shù)要求一個Hibernate會話要在對象使用的時候一直開著。這會成為通過使用DAO模式將持久層抽象出來時的一個主要問題。為了將持久化機(jī)制完全地抽象出來,所有的數(shù)據(jù)庫邏輯,包括打開或關(guān)閉會話,都不能在應(yīng)用層出現(xiàn)。最常見的是,一些實現(xiàn)了簡單接口的DAO實現(xiàn)類將數(shù)據(jù)庫邏輯完全封裝起來了。一種快速但是笨拙的解決方法是放棄DAO模式,將數(shù)據(jù)庫連接邏輯加到應(yīng)用層中來。這可能對一些小的應(yīng)用程序有效,但是在大的系統(tǒng)中,這是一個嚴(yán)重的設(shè)計缺陷,妨礙了系統(tǒng)的可擴(kuò)展性。

在Web層進(jìn)行延遲加載

幸運(yùn)的是,Spring框架為Hibernate延遲加載與DAO模式的整合提供了一種方便的解決方法。對那些不熟悉Spring與Hibernate集成使用的人,我不會在這里討論過多的細(xì)節(jié),但是我建議你去了解Hibernate與Spring集成的數(shù)據(jù)訪問。以一個Web應(yīng)用為例,Spring提供了OpenSessionInViewFilter和OpenSessionInViewInterceptor。我們可以隨意選擇一個類來實現(xiàn)相同的功能。兩種方法唯一的不同就在于interceptor在Spring容器中運(yùn)行并被配置在web應(yīng)用的上下文中,而Filter在Spring之前運(yùn)行并被配置在web.xml中。不管用哪個,他們都在請求將當(dāng)前會話與當(dāng)前(數(shù)據(jù)庫)線程綁定時打開Hibernate會話。一旦已綁定到線程,這個打開了的Hibernate會話可以在DAO實現(xiàn)類中透明地使用。這個會話會為延遲加載數(shù)據(jù)庫中值對象的視圖保持打開狀態(tài)。一旦這個邏輯視圖完成了,Hibernate會話會在Filter的doFilter方法或者Interceptor的postHandle方法中被關(guān)閉。下面是每個組件的配置示例:



Interceptor的配置:


<beans>
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="openSessionInViewInterceptor"/>
</list>
</property>
<property name="mappings">

</bean>

<bean name="openSessionInViewInterceptor"
class="org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
</beans>

Filter的配置


<web-app>

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate.support.OpenSessionInViewFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*. spring </url-pattern>
</filter-mapping>

</web-app>


實現(xiàn)Hibernate的Dao接口來使用打開的會話是很容易的。事實上,如果你已經(jīng)使用了Spring框架來實現(xiàn)你的Hibernate Dao,很可能你不需要改變?nèi)魏螙|西。方便的HibernateTemplate公用組件使訪問數(shù)據(jù)庫變成小菜一碟,而DAO接口只有通過這個組件才可以訪問到數(shù)據(jù)庫。下面是一個示例的DAO:


public class HibernateProductDAO extends HibernateDaoSupport implements ProductDAO {

public Product getProduct(Integer productId) {
return (Product)getHibernateTemplate().load(Product.class, productId);
}

public Integer saveProduct(Product product) {
return (Integer) getHibernateTemplate().save(product);
}

public void updateProduct(Product product) {
getHibernateTemplate().update(product);
}
}


在業(yè)務(wù)邏輯層中使用延遲加載

即使在視圖外面,Spring框架也通過使用AOP 攔截器 HibernateInterceptor來使得延遲加載變得很容易實現(xiàn)。這個Hibernate 攔截器透明地將調(diào)用配置在Spring應(yīng)用程序上下文中的業(yè)務(wù)對象中方法的請求攔截下來,在調(diào)用方法之前打開一個Hibernate會話,然后在方法執(zhí)行完之后將會話關(guān)閉。讓我們來看一個簡單的例子,假設(shè)我們有一個接口BussinessObject:


public     interface    BusinessObject     {
public     void    doSomethingThatInvolvesDaos();
}
類BusinessObjectImpl實現(xiàn)了BusinessObject接口:

public     class    BusinessObjectImpl    implements    BusinessObject     {
public     void    doSomethingThatInvolvesDaos()     {
//    lots of logic that calls
//    DAO classes Which access
//    data objects lazily 





通過在Spring應(yīng)用程序上下文中的一些配置,我們可以讓將調(diào)用BusinessObject的方法攔截下來,再令它的方法支持延遲加載。看看下面的一個程序片段:



<beans>
<bean id="hibernateInterceptor" class="org.springframework.orm.hibernate.HibernateInterceptor">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="businessObjectTarget" class="com.acompany.BusinessObjectImpl">
<property name="someDAO"><ref bean="someDAO"/></property>
</bean>
<bean id="businessObject" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target"><ref bean="businessObjectTarget"/></property>
<property name="proxyInterfaces">
<value>com.acompany.BusinessObject</value>
</property>
<property name="interceptorNames">
<list>
<value>hibernateInterceptor</value>
</list>
</property>
</bean>
</beans>

當(dāng)businessObject被調(diào)用的時候,HibernateInterceptor打開一個Hibernate會話,并將調(diào)用請求傳遞給BusinessObjectImpl對象。當(dāng)BusinessObjectImpl執(zhí)行完成后,HibernateInterceptor透明地關(guān)閉了會話。應(yīng)用層的代碼不用了解任何持久層邏輯,還是實現(xiàn)了延遲加載。


在單元測試中測試延遲加載

最后,我們需要用J-Unit來測試我們的延遲加載程序。我們可以輕易地通過重寫TestCase類中的setUp和tearDown方法來實現(xiàn)這個要求。我比較喜歡用這個方便的抽象類作為我所有測試類的基類。


public abstract class MyLazyTestCase extends TestCase {

private SessionFactory sessionFactory;
private Session session;

public void setUp() throws Exception {
super.setUp();
SessionFactory sessionFactory = (SessionFactory) getBean("sessionFactory");
session = SessionFactoryUtils.getSession(sessionFactory, true);
Session s = sessionFactory.openSession();
TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(s));

}

protected Object getBean(String beanName) {
//Code to get objects from Spring application context
}

public void tearDown() throws Exception {
super.tearDown();
SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
Session s = holder.getSession();
s.flush();
TransactionSynchronizationManager.unbindResource(sessionFactory);
SessionFactoryUtils.closeSessionIfNecessary(s, sessionFactory);
}

--------------------------------------------------------------
--------------------------------------------------------------

Java代碼 復(fù)制代碼 收藏代碼
  1. <?xml version="1.0"?> 
  2. <!DOCTYPE hibernate-mapping PUBLIC 
  3.     "-//Hibernate/Hibernate Mapping DTD//EN" 
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
  5. <hibernate-mapping package="com.isoftstone.lms.model"
  6.     <class name="Order" table="sv_order"
  7.         <id name="orderId" column="sv_order_id" type="string"
  8.             <generator class="sequence"
  9.                 <param name="sequence">SEQ_ORDERID</param> 
  10.             </generator> 
  11.         </id> 
  12.          
  13.         many-to-one name="style" column="sv_style_id" lazy="false" /> 
  14.         <many-to-one name="state" column="sv_state_id"  lazy="false"/> 
  15.         <many-to-one name="client" column="sv_client_id" lazy="false" /> 
  16.         <many-to-one name="baseOrder" column="sv_order_baseid"  lazy="false"/> 
  17.         <property name="orderNo" column="sv_order_orderno" type="long" /> 
  18.         <property name="createDate" column="sv_order_createdate" type="date" /> 
  19.         <property name="sendDate" column="sv_order_senddate" type="string" /> 
  20.         <property name="sendAddress" column="sv_order_sendAddress" type="string" /> 
  21.         <property name="accepter" column="sv_order_accepter" type="string" /> 
  22.         <property name="postNo" column="sv_order_postNo" type="string" /> 
  23.         <property name="phone" column="sv_order_phone" type="string" /> 
  24.         <property name="totalMoney" column="sv_order_totalmoney" type="double" /> 
  25.         <property name="isinvoice" column="sv_order_isinvoice" type="int" /> 
  26.         <property name="remark" column="sv_order_remark" type="string" /> 
  27.          
  28.         <set name="orderGoodss" inverse="true" lazy="extra" cascade="all"
  29.             <key column="sv_order_id"/> 
  30.             <one-to-many class="OrderGoods"/> 
  31.         </set> 
  32.     </class
  33. </hibernate-mapping> 

[color=red]
Java代碼 復(fù)制代碼 收藏代碼
  1. <many-to-one name="style" column="sv_style_id" lazy="false" /> 
  2. <many-to-one name="state" column="sv_state_id"  lazy="false"/> 
  3. <many-to-one name="client" column="sv_client_id" lazy="false" /> 
  4. <many-to-one name="baseOrder" column="sv_order_baseid"  lazy="false"/> 
[/color]

zx_bing 2012-07-27 14:13 發(fā)表評論
]]>
Hibernate基于外鍵查詢 http://www.tkk7.com/zxb90study/archive/2012/07/27/384152.htmlzx_bingzx_bingFri, 27 Jul 2012 06:11:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384152.html
Java代碼 復(fù)制代碼 收藏代碼
  1. public List<Order> getClientOrder(String clientId) { 
  2.  
  3.         Session session = null
  4.         List<Order> orderList = null
  5.         try
  6.             session = HibernateUtil.getSession(); 
  7.             session.beginTransaction(); 
  8.             orderList = session.createQuery("from Order o where o.client.clientId = ?"
  9.                                 .setParameter(1,clientId) 
  10.                                 .list(); 
  11.             session.getTransaction().commit(); 
  12.         } catch (Exception e) { 
  13.             e.printStackTrace(); 
  14.             session.getTransaction().rollback(); 
  15.         } finally
  16.             HibernateUtil.closeSession(session); 
  17.         } 
  18.  
  19.         return orderList; 
  20.     } 


zx_bing 2012-07-27 14:11 發(fā)表評論
]]>
hibernate 多條件查詢 http://www.tkk7.com/zxb90study/archive/2012/07/27/384151.htmlzx_bingzx_bingFri, 27 Jul 2012 06:08:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384151.html
Java代碼 復(fù)制代碼 收藏代碼
  1. public List<Client> searchClients(String clientName, String tel, 
  2.             String identityNo) { 
  3.  
  4.         StringBuffer sb = new StringBuffer("from Client c where 1=1"); 
  5.          
  6.         if(clientName != null && !"".equals(clientName) ){ 
  7.             sb.append("and c.name like '%" + clientName + "%'"); 
  8.         } 
  9.         if(tel != null && !"".equals(tel)){ 
  10.             sb.append("and c.tel = " + tel); 
  11.         } 
  12.         if(identityNo != null && !"".equals(identityNo)){ 
  13.             sb.append("and c.identityNo = " + identityNo); 
  14.         } 
  15.         return clientDao.searchClients(sb.toString()); 


zx_bing 2012-07-27 14:08 發(fā)表評論
]]>
輸入框要求用JAVASCRIPT去驗證不能超過12個數(shù)字或英文或數(shù)字英文組合,還要求不能超過6個漢字,還要驗證漢字和字母,數(shù)字的組合 http://www.tkk7.com/zxb90study/archive/2012/07/27/384150.htmlzx_bingzx_bingFri, 27 Jul 2012 06:06:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384150.html數(shù)據(jù)庫里面username vachar2(12)

這個輸入框要求用JAVASCRIPT去驗證不能超過12個數(shù)字或英文或數(shù)字英文組合,還要求不能超過6個漢字,還要驗證漢字和字母,數(shù)字的組合

如:用戶名1999(就可以),麥克斯韋1999(就不行)

因為數(shù)據(jù)庫里面要求的長度是12,一個漢字就占兩個,但是在頁面可以輸入12個漢字
請用JAVASCRIPT寫出你的解決方案?



Js代碼 復(fù)制代碼 收藏代碼
  1. <html>   
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">   
  3. 輸入待測字串: &nbsp;<input type="text" onblur="test(this.value);">   
  4. </html>   
  5. <script language="javascript">   
  6. <!--    
  7. //測試匹配情況    
  8. function test(inputVal)    
  9. {    
  10.     //去除首尾空格    
  11.     inputValinputVal = inputVal.replace(/^\s*|\s*$/g,"");    
  12.     //零長字串不作處理    
  13.     if ( inputVal.length == 0 )    
  14.     {    
  15.         return;    
  16.     }    
  17.     //只能匹配數(shù)字,字母或漢字    
  18.     var _match = inputVal.match(/^[a-zA-Z0-9\u4e00-\u9fa5]+$/g);    
  19.     //匹配數(shù)字或字母(包括大小寫)    
  20.     var codeMatch = inputVal.match(/[a-zA-Z0-9]/g);    
  21.     //匹配漢字    
  22.     var charMatch = inputVal.match(/[\u4e00-\u9fa5]/g);    
  23.     //數(shù)字或字母個數(shù)    
  24.     var codeNum = codeMatch ? codeMatch.length : 0;    
  25.     //漢字個數(shù)    
  26.     var charNum = charMatch ? charMatch.length : 0;    
  27.     //成功    
  28.     if ( _match && codeNum + 2*charNum <= 12 )    
  29.     {    
  30.         alert("輸入正確!");    
  31.         return;    
  32.     }    
  33.     //失敗    
  34.     alert("輸入錯誤!");     
  35. }    
  36. //-->   
  37. </script> 


zx_bing 2012-07-27 14:06 發(fā)表評論
]]>
Ajax 模擬動態(tài)列表 http://www.tkk7.com/zxb90study/archive/2012/07/27/384149.htmlzx_bingzx_bingFri, 27 Jul 2012 06:04:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384149.html
Java代碼 復(fù)制代碼 收藏代碼
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. <html> 
  3.     <head> 
  4.         <title>index.html</title> 
  5.         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"
  6.         <meta http-equiv="description" content="this is my page"
  7.         <meta http-equiv="content-type" content="text/html; charset=GBK"
  8.         <script type="text/javascript"
  9.         var xmlhttp; 
  10.         function loadXMLDoc(valueFromSelect1){ 
  11.             var url = "three.jsp?valueFromSelect=" + valueFromSelect1 + "&" + Math.random(); 
  12.             alert(url); 
  13.             xmlhttp=null
  14.             if (window.XMLHttpRequest){ 
  15.               xmlhttp=new XMLHttpRequest(); 
  16.             } 
  17.             else if (window.ActiveXObject){ 
  18.               xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
  19.             } 
  20.             if (xmlhttp!=null){ 
  21.               xmlhttp.onreadystatechange=updatePage; 
  22.               xmlhttp.open("GET",url,true); 
  23.               xmlhttp.send(null); 
  24.             } 
  25.             else
  26.               alert("Your browser does not support XMLHTTP."); 
  27.             } 
  28.         } 
  29.          
  30.         function state_Change(){ 
  31.             if (xmlhttp.readyState==4){ 
  32.                 if (xmlhttp.status==200){ 
  33.                     updatePage(); 
  34.                 } 
  35.                 else
  36.                     alert("Problem retrieving XML data"); 
  37.                 } 
  38.             } 
  39.         } 
  40.          
  41.         function updatePage(){             
  42.             // 清空select2 
  43.             while(select2.options[0] != null){ 
  44.                 select2.options[0] = null
  45.             } 
  46.              
  47.             // 設(shè)置select2 
  48.             var xmlDoc = xmlhttp.responseXML; 
  49.             alert(xmlDoc); 
  50.             var labelValueBeanElements = xmlDoc.getElementsByTagName("labelValueBean"); 
  51.            
  52.             for (var i = 0; i < labelValueBeanElements.length; i++){ 
  53.                 var entityValue = xmlDoc.getElementsByTagName("value")[i].childNodes[0].nodeValue; 
  54.                 var entityLabel = xmlDoc.getElementsByTagName("label")[i].childNodes[0].nodeValue; 
  55.                 select2.options[i] = new Option(entityLabel,entityValue,false,false); 
  56.             } 
  57.         } 
  58.         </script> 
  59.     </head> 
  60.  
  61.     <body> 
  62.         select1: 
  63.         <select id="select1" onchange="loadXMLDoc(this.value)"
  64.             <option value="1">1</option> 
  65.             <option value="2">2</option> 
  66.         </select> 
  67.         <br/> 
  68.         select2: 
  69.         <select id="select2"
  70.         </select> 
  71.         <input type="button" value="顯示select2的值" onclick="alert(select2.value)"
  72.     </body> 
  73. </html> 






three.jsp
Java代碼 復(fù)制代碼 收藏代碼
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" 
  2.     pageEncoding="UTF-8"%> 
  3.      
  4. <%! 
  5.     private String fromDB (String valueFromSelect)  { 
  6.         StringBuffer sb = new StringBuffer(); 
  7.  
  8.         if (valueFromSelect.equals("1")) { 
  9.             sb.append("    <labelValueBean>\n"); 
  10.             sb.append("        <value>haha</value>\n"); 
  11.             sb.append("        <label>哈哈</label>\n"); 
  12.             sb.append("    </labelValueBean>\n"); 
  13.             sb.append("    <labelValueBean>\n"); 
  14.             sb.append("        <value>hehe</value>\n"); 
  15.             sb.append("        <label>呵呵</label>\n"); 
  16.             sb.append("    </labelValueBean>\n"); 
  17.         } else if (valueFromSelect.equals("2")) { 
  18.             sb.append("    <labelValueBean>\n"); 
  19.             sb.append("        <value>heihei</value>\n"); 
  20.             sb.append("        <label>嘿嘿</label>\n"); 
  21.             sb.append("    </labelValueBean>\n"); 
  22.             sb.append("    <labelValueBean>\n"); 
  23.             sb.append("        <value>gaga</value>\n"); 
  24.             sb.append("        <label>嘎嘎</label>\n"); 
  25.             sb.append("    </labelValueBean>\n"); 
  26.             sb.append("    <labelValueBean>\n"); 
  27.             sb.append("        <value>woyun</value>\n"); 
  28.             sb.append("        <label>我暈</label>\n"); 
  29.             sb.append("    </labelValueBean>\n"); 
  30.             sb.append("    <labelValueBean>\n"); 
  31.             sb.append("        <value>123</value>\n"); 
  32.             sb.append("        <label>456</label>\n"); 
  33.             sb.append("    </labelValueBean>\n"); 
  34.         } 
  35.         return sb.toString(); 
  36.     } 
  37.  
  38. %> 
  39. <% 
  40.     String valueFromSelect = request.getParameter("valueFromSelect"); 
  41.  
  42.     StringBuffer sb = new StringBuffer(); 
  43.     sb.append("<?xml version=\"1.0\" encoding=\"gb2312\"?>\n"); 
  44.     sb.append("<resultFromDB>\n"); 
  45.     sb.append(fromDB(valueFromSelect)); 
  46.     sb.append("</resultFromDB>\n"); 
  47.     response.setHeader("content-type", "text/xml;charset=GBK"); 
  48.     System.out.println(sb); 
  49.     out.println(sb.toString()); 
  50.     //out.flush(); 
  51.     out.close(); 
  52.      
  53.     %> 


zx_bing 2012-07-27 14:04 發(fā)表評論
]]>
全選調(diào)用的JS函數(shù) http://www.tkk7.com/zxb90study/archive/2012/07/27/384148.htmlzx_bingzx_bingFri, 27 Jul 2012 06:03:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384148.html
Java代碼 復(fù)制代碼 收藏代碼
  1. function selectall()  
  2. {  
  3.     //獲取頁面上所有的輸入元素 
  4.     var a = document.getElementsByTagName("input");  
  5.     //如果全選按鈕按上 
  6.     if(document.getElementById("quanxuanbutton").checked == true
  7.     { 
  8.         //循環(huán)是checkbox類型的,就設(shè)置為true 
  9.         for (var i=0; i<a.length; i++) 
  10.         { 
  11.             if (a[i].type == "checkbox"
  12.             { 
  13.                 a[i].checked =true
  14.             } 
  15.         }        
  16.          
  17.     }else{ //如果全選按鈕沒有按上 
  18.       for (var i=0; i<a.length; i++) 
  19.         { 
  20.             if (a[i].type == "checkbox"
  21.             { 
  22.                  
  23.                 a[i].checked =false
  24.             } 
  25.         }   
  26.     } 
  27. }  


zx_bing 2012-07-27 14:03 發(fā)表評論
]]>
dwr 實現(xiàn)二級聯(lián)動 js http://www.tkk7.com/zxb90study/archive/2012/07/27/384147.htmlzx_bingzx_bingFri, 27 Jul 2012 06:02:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384147.html
Java代碼 復(fù)制代碼 收藏代碼
  1. //省市聯(lián)動  
  2. var c_cigy = ''
  3. //記錄第二個列表id,以備回調(diào)函數(shù)用 
  4. var cityItemName = ''
  5.  
  6. function  changeCityOyp(province,city,relateItemName) { 
  7.     ServerDwrUtil.getCityList(province.value,setCityOption); 
  8.     //記錄二級下拉的 id relateItemName 供回調(diào)函數(shù)使用 
  9.     cityItemName = relateItemName; 
  10.     // 中國 則 二級下拉 不能選擇 
  11.     if(province.value == '0001') { 
  12.         document.getElementById(cityItemName).disabled = true
  13.     } else
  14.         document.getElementById(cityItemName).disabled = false
  15.     } 
  16.     //省份在一個單元格里,省份前面有個input輸入框,得到input對象,再把省份傳進(jìn)去 
  17.     var provinceInput  = province.parentNode.firstChild; 
  18.     //如果省份為空,則單元格為空 
  19.     if (province.value == '') { 
  20.         provinceInput.value = ''
  21.         return
  22.     } 
  23.     provinceInput.value = province.options[province.selectedIndex].text; 
  24.      
  25. // 回調(diào)函數(shù) args返回的是list.add(Map) map中{id},經(jīng)過 spring配置 對于一些特例返回的Class,且dwr不能識別的, 
  26. //</dwr:configuration> 
  27. // 設(shè)置二級下拉列表 
  28. function setCityOption (args) { 
  29.     alert(args.toString()); 
  30.     DWRUtil.removeAllOptions(cityItemName); 
  31.     DWRUtil.addOptions(cityItemName, [ "" ]); 
  32.     //id和name怎么確保的   args{[id:xxx,name:yyy],[id:xxx,name:yyyy]} 
  33.     DWRUtil.addOptions(cityItemName, args, "id", "name"); 


zx_bing 2012-07-27 14:02 發(fā)表評論
]]>
javascript獲取select的值全解 http://www.tkk7.com/zxb90study/archive/2012/07/27/384146.htmlzx_bingzx_bingFri, 27 Jul 2012 06:01:00 GMThttp://www.tkk7.com/zxb90study/archive/2012/07/27/384146.html
Js代碼 復(fù)制代碼 收藏代碼
  1. 獲取顯示的漢字 
  2.  
  3. document.getElementById("bigclass").options[window.document.getElementById("bigclass").selectedIndex].text 
  4.  
  5. 獲取數(shù)據(jù)庫中的id 
  6.  
  7. window.document.getElementById("bigclass").value 
  8.  
  9. 獲取select組分配的索引id 
  10.  
  11. window.document.getElementById("bigclass").selectedIndex 
  12.  
  13.  
  14. 例子: 
  15.  
  16. <select name="bigclass" id="bigclass" onChange="javascript:updatePage2();"
  17. <option value="" selected="selected">ajax實驗</option> 
  18. <option value="4">我適宜市哈</option> 
  19. </select> 
  20.  
  21.  
  22. 使用 
  23. document.getElementById("bigclass").options[window.document.getElementById("bigclass").selectedIndex].text 
  24. 的結(jié)果是:我適宜市哈 
  25.  
  26. 使用 
  27. window.document.getElementById("bigclass").value 
  28. 的結(jié)果是:4 
  29.  
  30. 使用 
  31. window.document.getElementById("bigclass").selectedIndex 
  32. 的結(jié)果是:1 


zx_bing 2012-07-27 14:01 發(fā)表評論
]]>
主站蜘蛛池模板: 国产午夜无码精品免费看| av在线亚洲欧洲日产一区二区| av片在线观看永久免费| 国产成人亚洲综合一区| 亚洲AV无码久久精品蜜桃| 亚洲国产午夜中文字幕精品黄网站| 国产h视频在线观看免费| 久久久久一级精品亚洲国产成人综合AV区| 亚州免费一级毛片| 日本一道本不卡免费| aa在线免费观看| 免费人成视频在线播放| 亚洲av成人中文无码专区| 亚洲制服丝袜在线播放| 久久亚洲AV无码精品色午夜麻豆| 亚洲精品亚洲人成在线观看| 亚洲av麻豆aⅴ无码电影| 日韩免费视频一区| 国内一级一级毛片a免费| 国产免费毛不卡片| 91精品免费在线观看| 国产h肉在线视频免费观看| 99热在线免费播放| 久久综合国产乱子伦精品免费| 永久在线观看免费视频| 三级黄色在线免费观看| a级毛片免费观看网站| 一本大道一卡二大卡三卡免费| 免费大片黄在线观看| 高h视频在线免费观看| 狼色精品人妻在线视频免费| 色屁屁在线观看视频免费| 污视频网站在线观看免费| 黄色大片免费网站| 日韩在线一区二区三区免费视频 | 国产免费高清69式视频在线观看| 深夜a级毛片免费视频| 国产成人无码精品久久久免费| 一区二区三区免费视频网站| 免费很黄无遮挡的视频毛片| 深夜久久AAAAA级毛片免费看|