ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>
      在springé‡Œé¢æœ‰å‡ 个ServiceExporteråQŒorg.springframework.remoting.rmi.RmiServiceExporterã€org.springframework.remoting.caucho.HessianServiceExporterã€org.springframework.remoting.caucho.BurlapServiceExporter。丘q‡æ²¡æœ‰xmlrpcçš„serviceExporteråQŒåŽŸæ¥æˆ‘们是自己ž®è£…çš„XmlRpcServer,用servletæä¾›æœåŠ¡ã€?eg:http://localhost:8080/community/service/xmlrpc)没有和spring集æˆè™½ç„¶ç”¨äº†springã€?br />   考虑到spring的便利以åŠé…¾|®çš„åŒæ„我决定将xmlrpcService攑օ¥springä¸ã€‚xmlrpc3.xå’Œxmlrpc2.x的代ç 基本上没有一æ ïLš„。改了很多东è¥Ñ€‚除了类型å˜åŒ–之外,˜q˜æ·»åŠ äº†å¯¹å¼‚å¸¸çš„æ”¯æŒã€‚详¾l†ä¿¡æ¯è¯·å‚ç…§xmlrpc3.xæºä»£ç ã€?br />XmlRpcServiceExporter.java
˜q™æ ·çš„è¯ã€‚所有的schedulerž®±éƒ½ä¸ç®¡ç”¨äº†ã€‚æ‰€ä»¥è¯·å¤§å®¶è¦æ³¨æ„ã€?br />
Â
除ç»ç‰¹åˆ«æ³¨æ˜Žå¤?æœ¬æ–‡ç« ç‰ˆæƒå½’莫多泡æˆö所æœ? ¾|²å,éžå•†ä¸šç”¨é€?ä¿æŒä¸€è‡?   somebody(莫多)   |
对原生SQL查询执行的控制是通过SQLQuery接壘q›è¡Œçš„,通过执行Session.createSQLQuery()获喘q™ä¸ªæŽ¥å£ã€‚最½Ž€å•的情况下,我们å¯ä»¥é‡‡ç”¨ä»¥ä¸‹å½¢å¼åQ?/font>
List cats = sess.createSQLQuery("select * from cats") .addEntity(Cat.class) .list();
˜q™ä¸ªæŸ¥è¯¢æŒ‡å®šäº?
SQL查询å—符ä¸?/font>
查询˜q”回的实ä½?/font>
˜q™é‡ŒåQŒç»“æžœé›†å—æ®µå被å‡è®¾ä¸ÞZ¸Žæ˜ å°„æ–‡äšg䏿Œ‡æ˜Žçš„å—æ®µå相åŒã€‚对于连接了多个表的查询åQŒè¿™ž®±å¯èƒ½é€ æˆé—®é¢˜åQŒå› 为å¯èƒ½åœ¨å¤šä¸ªè¡¨ä¸å‡ºçŽ°åŒæ ·åå—的嗌Düc€‚下é¢çš„æ–ÒŽ³•ž®±å¯ä»¥é¿å…å—ŒDµåé‡å¤çš„é—®é¢?
List cats = sess.createSQLQuery("select {cat.*} from cats cat") .addEntity("cat", Cat.class) .list();
˜q™ä¸ªæŸ¥è¯¢æŒ‡å®šäº?
SQL查询è¯å¥åQŒå®ƒå¸¦ä¸€ä¸ªå ä½ç¬¦åQŒå¯ä»¥è®©Hibernateä½¿ç”¨å—æ®µçš„别å?
查询˜q”回的实体,和它的SQL表的别å.
addEntity()æ–ÒŽ³•ž®†SQL表的别å和实体类è”ç³»èµäh¥åQŒåƈ且确定查询结果集的åÅžæ€ã€?
addJoin()æ–ÒŽ³•å¯ä»¥è¢«ç”¨äºŽè²å…¥å…¶ä»–的实体和集åˆçš„å…Œ™”.
List cats = sess.createSQLQuery( "select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = cat.id" ) .addEntity("cat", Cat.class) .addJoin("kitten", "cat.kittens") .list();
原生的SQL查询å¯èƒ½˜q”回一个简å•çš„æ ‡é‡å€¼æˆ–è€…ä¸€ä¸ªæ ‡é‡å’Œå®žä½“的结åˆä½“ã€?
Double max = (Double) sess.createSQLQuery("select max(cat.weight) as maxWeight from cats cat") .addScalar("maxWeight", Hibernate.DOUBLE); .uniqueResult();
除æ¤ä¹‹å¤–åQŒä½ ˜q˜å¯ä»¥åœ¨ä½ çš„hbmæ–‡äšg䏿˜q°ç»“æžœé›†æ˜ å°„ä¿¡æ¯åQŒåœ¨æŸ¥è¯¢ä¸ä‹É用ã€?/font>
List cats = sess.createSQLQuery( "select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = cat.id" ) .setResultSetMapping("catAndKitten") .list();
å¯ä»¥åœ¨æ˜ ž®„文档ä¸å®šä¹‰æŸ¥è¯¢çš„åå?然厞®±å¯ä»¥è±¡è°ƒç”¨ä¸€ä¸ªå‘½åçš„HQL查询一æ ïL›´æŽ¥è°ƒç”¨å‘½åSQL查询.在这¿U情况下,我们ä¸?/em> 需è¦è°ƒç”?tt class="literal">addEntity()æ–ÒŽ³•.
<sql-query name="persons"> <return alias="person" class="eg.Person"/> SELECT person.NAME AS {person.name}, person.AGE AS {person.age}, person.SEX AS {person.sex} FROM PERSON person WHERE person.NAME LIKE :namePattern </sql-query>
List people = sess.getNamedQuery("persons") .setString("namePattern", namePattern) .setMaxResults(50) .list(); ˜q™é‡Œè¦ç‰¹åˆ«çš„æé†’一下大家åƒä¸‡ä¸è¦æŠŠä¸»é”®å¿˜äº†ã€‚刚开始我ž®±å¿˜äº†ä¸»é”®ï¼ŒåŽæ¥è°ƒè¯•了åŠå¤©æ‰æ‰‘Ö‡ºåŽŸå› æ¥ã€?br />
我觉得这¿Uå‘弿¯”è¾ƒå¥½ã€‚è¿™æ ·å†™å‡ºæ¥çš„sqlå¯ä»¥å¾ˆæ•´é½ã€‚我们的数æ®åº“ä‹É用的是oracleåQŒä¸˜q‡æŒ‰ç…§è¿™ä¸Šé¢çš„写法å‘现sqlè¯å¥æœ‰é”™è¯¯ã€?br />åŽæ¥æ‹¿åˆ°æŽ§åˆ¶å°æ‰§è¡Œä¹ŸæŠ±é”™ã€‚å› ä¸ºåŽŸæ¥éƒ½ç”¨sqlserveråQŒè€Œsqlserver都是å¯ä»¥çš„ã€‚åŽæ¥å‘现是表ä¸èƒ½æœ‰åˆ«åæ”ÒŽˆ˜q™æ ·ž®±å¥½äº†ã€?br />            SELECT T_PAY.sys_id as {pay.sysId},
                   T_PAY.sys_flag as {pay.sysFlag},
                   T_PAY.sys_domain as {pay.sysDomain},
                   T_PAY.sys_owner as {pay.sysOwner},
                   T_PAY.sys_create_date as {pay.sysCreateDate},
                   T_PAY.sys_update_date as {pay.sysUpdateDate},
                   T_PAY.pay_id as {pay.payId},
                   T_PAY.pay_name as {pay.payName},
                   T_PAY.pay_type_id as {pay.payTypeId},
                   T_PAY.pay_date as {pay.payDate},
                   T_PAY.money_type_id as {pay.moneyTypeId},
                   T_PAY.amount as {pay.amount},
                   T_PAY.payer_id as {pay.payerId},
                   T_PAY.payer_name as {pay.payerName},
                   T_PAY.accept_id as {pay.acceptId},
                   T_PAY.accept_name as {pay.acceptName},
                   T_PAY.pay_state_id as {pay.payStateId},
                   T_PAY.remark as {pay.remark}
            FROM   T_PAY
            JOIN   T_BIZ_PAY
            ON       T_PAY.pay_id = T_BIZ_PAY.pay_id
            WHERE  T_BIZ_PAY.biz_id = :bizId
jdev说到"ä¸ÞZ»€ä¹ˆè¦æ”‘Öœ¨˜q™é‡ŒåQŒè€Œä¸æ˜¯æ”¾åˆ°ç³»¾lŸé…¾|®æ–‡ä»¶ä¸åQŒç„¶åŽåœ¨¾pÈ»Ÿè®„¡½®ç•Œé¢ä¸æä¾›è®¾¾|?åQŒåŽæ¥æˆ‘ž®Þq”¨springæ¥æ³¨å…¥äº†ã€‚现在就把值放入propertiesæ–‡äšgä¸äº†ã€?br />
   然åŽåœ¨è{æ¢ç¨‹åºé‡Œé¢get˜q™ä¸ªdataSourceåQŒnew 一个JdbcTemplate(dataSource2)åQŒè¿™æ ·å°±ok了。很½Ž€å•å§ã€?/p>