??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品久久久久无码AV片软件,亚洲激情在线观看,中日韩亚洲人成无码网站http://www.tkk7.com/Jkallen/ 人生若只如初见,何事U风悲画扇?/description>zh-cnSat, 10 May 2025 23:29:15 GMTSat, 10 May 2025 23:29:15 GMT60是JVMDWeblogic异常l止嘛?http://www.tkk7.com/Jkallen/archive/2009/10/16/298493.htmlJkallenJkallenFri, 16 Oct 2009 00:58:00 GMThttp://www.tkk7.com/Jkallen/archive/2009/10/16/298493.htmlhttp://www.tkk7.com/Jkallen/comments/298493.htmlhttp://www.tkk7.com/Jkallen/archive/2009/10/16/298493.html#Feedback0http://www.tkk7.com/Jkallen/comments/commentRss/298493.htmlhttp://www.tkk7.com/Jkallen/services/trackbacks/298493.html阅读全文

Jkallen 2009-10-16 08:58 发表评论
]]>
咨询一个自认ؓ很奇怪的问题(在java中获取数据库q接时相?http://www.tkk7.com/Jkallen/archive/2008/07/15/215001.htmlJkallenJkallenTue, 15 Jul 2008 08:28:00 GMThttp://www.tkk7.com/Jkallen/archive/2008/07/15/215001.htmlhttp://www.tkk7.com/Jkallen/comments/215001.htmlhttp://www.tkk7.com/Jkallen/archive/2008/07/15/215001.html#Feedback3http://www.tkk7.com/Jkallen/comments/commentRss/215001.htmlhttp://www.tkk7.com/Jkallen/services/trackbacks/215001.html我用以下代码用来试数据库连接是否正常:

 try {
            logger.info("start to registerDriver...");
            DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
            logger.info(pros.getProperty("dbURL")+"--"+pros.getProperty("user")+"--"+ pros.getProperty("password"));
            con = DriverManager.getConnection(pros.getProperty("dbURL"), pros.getProperty("user"), pros.getProperty("password"));;
            if (con != null) {
                st = con.createStatement();
                rs = st.executeQuery("select 1 from dual");
                rs.next();
                if (rs.getInt(1) == 1) {
                    res = true;
                }
            }
        }

 

然后我做了一?/span>java application桌面应用程序(extends FrameViewQ,在小应用E序中点M件触发此D代码,如下Q?/span>

private void dbTestMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                              
    //
从配|文件中dq接相关属?/span>
    String info = "
数据库连接异常,L认配|文件是参数是否正确?/span>";
    Properties per = new Properties();
    try {
        logger.info("start to test the db connection...");
        per.load(new FileInputStream(Content.configFile));
        logger.info("system have loaded the config files successfully");
      
        DbOper db = new DbOper();
        if (db.checkDBConnect(per)) {
            info = "
数据库连接正?/span>";
        }
        logger.info("
数据q接试l果Q?/span>" + info);
    } catch (Exception e) {
        logger.error("Exception when test the DB connection, ",e);
    }

 

    if (aboutBox == null) {
        JFrame mainFrame = AnalyseExcelApp.getApplication().getMainFrame();
        aboutBox = new DBTestResultBox(mainFrame, info);
        aboutBox.setLocationRelativeTo(mainFrame);
    }
    AnalyseExcelApp.getApplication().show(aboutBox);
}
     

 

但在q行ӞE序头也不回地直接死了,调试时发现程序是?/span>

con = DriverManager.getConnection(pros.getProperty("dbURL"), pros.getProperty("user"), pros.getProperty("password"));;
q一行,不行了,也不报错Q就直接在此行一直呆着Q啥也不?/span>...

 

另外q有二种情况Q也让我比较奇怪:

1. 若同栯用此D|试代码,但不是在java application中,而是直接在一个普通的javamainҎ中,可以测试通过?/span>

2. 若数据库边的是本机的数据库,那么此段试代码也可以通过Q在java application?/span>javamainҎ中均可以?/span>

 

Z么,q接q程数据Ӟ?/span>java application中会无故down掉呢Q?/span>

 

ps. 排除数据库地址Q用户名Q密码等错误Q我的JDBC驱动是ojdbc14.jarQJDK 1.5



Jkallen 2008-07-15 16:28 发表评论
]]>
再次握手log4jhttp://www.tkk7.com/Jkallen/archive/2008/07/11/214155.htmlJkallenJkallenThu, 10 Jul 2008 23:42:00 GMThttp://www.tkk7.com/Jkallen/archive/2008/07/11/214155.htmlhttp://www.tkk7.com/Jkallen/comments/214155.htmlhttp://www.tkk7.com/Jkallen/archive/2008/07/11/214155.html#Feedback2http://www.tkk7.com/Jkallen/comments/commentRss/214155.htmlhttp://www.tkk7.com/Jkallen/services/trackbacks/214155.html阅读全文

Jkallen 2008-07-11 07:42 发表评论
]]>
Ajax拾荒http://www.tkk7.com/Jkallen/archive/2007/04/11/109882.htmlJkallenJkallenWed, 11 Apr 2007 05:53:00 GMThttp://www.tkk7.com/Jkallen/archive/2007/04/11/109882.htmlhttp://www.tkk7.com/Jkallen/comments/109882.htmlhttp://www.tkk7.com/Jkallen/archive/2007/04/11/109882.html#Feedback0http://www.tkk7.com/Jkallen/comments/commentRss/109882.htmlhttp://www.tkk7.com/Jkallen/services/trackbacks/109882.html用ajax有段旉了ȝ一下:

用xmlhttp去server取数据的时?有如下二U方?br>1:在server端通过response向流里写数据

private void sendMsg2Stream(HttpServletResponse response,String message){
  
try{
   response.setHeader(
"charset""gb2312");
   response.setHeader(
"Cache-Control""no-cache");
   response.setHeader(
"Pragma""no-cache");
   response.setContentType(
"text/xml");
   response.getOutputStream().write(StringUtil.getUTF8Bytes(message));
  }
catch(Exception e){
   e.printStackTrace();
  }

 }


 
 StringUtil.getUTF8Bytes是自写的一个类Q因为xmlhttp中传数据的时候默认是UTF-8传的?br> q样可以防止q出现?br> 
 在客LJS中:

  function finishedAction(originalRequest){
    var res 
= originalRequest.responseText;//当然也可以返回xml
    $('dbrglqx').innerHTML = res;
 }

 
在server中假如返回一些字W串q样很方便,但如何想动态组合成一些list的optionӞ可能不太方便了,
q时可以通过JS的evalҎ直接取一个页面内宏V具体如下:
在server中返回的是一个页面,如在spring MVC中可能如下:
return new ModelAndView("redirect:data.html");
在返回前d以做一些别的手术,典型的如request.setAttribute(name,value);
然后在JSP中进行解?如JSP?q种情况下,把它当时在js文gOK?Q?br>

<%
  response.setHeader(
"Pragma""No-cache");
  response.setHeader(
"Cache-Control""no-cache");
  response.setDateHeader(
"Expires"0);
%>

var targetOrgObj
=document.myForm.targetOrgId;
var optionsCount
=targetOrgObj.options.length;
for (var i=optionsCount-1; i>0; i--){
 targetOrgObj.options[i]
=null;
}

<c:forEach var="varValue" items="${values}">
 var oOption
=document.createElement("option");
 oOption.text
="<c:out value="${varValue.orgName}" />";
 oOption.value
="<c:out value="${varValue.orgId}"/>";
   
<c:if test="${id==6}">
  
<c:if test="${varValue.departmentCode == currentMeterRd}"> 
   oOption.selected
=true;
 

 

myForm的定义要弄清楚,它应该在你所(发?h的页面的document里的对象

JS?没什么好想的)

function showResponse(originalRequest){
  eval(originalRequest.responseText);
}

 

 
其它Q?br>以上都是通过xmlhttp来用AJAX的,q样可以通过参数直接控制同步q是异步?br>

var dbgl = new Ajax.Request(
  uri, 
  
{
   method: 
'get',
   parameters: 
'method=getYearFhqx&userId='+userId+'&timeStamp='+new Date().getTime(),
   asynchronous: 
true,
   onComplete: showResponse
  }
); 

  
最q用DWR用感觉不错,挺好的!它的util中还提供了不的有用 & 常用的方法。不q一直不知道DWR中如何同步传输,今天扑ֈ了:
在DWR的engine.js文gQ有setAsyncҎQ就是设|调用是否是同步的,q是异步的?/p>

js 代码
 

DWREngine.setAsync(false);  
   
DWREngine.setAsync(
true);

 

 



Jkallen 2007-04-11 13:53 发表评论
]]>
在servlet JSP applet与JS之间I梭http://www.tkk7.com/Jkallen/archive/2007/03/30/107373.htmlJkallenJkallenThu, 29 Mar 2007 21:47:00 GMThttp://www.tkk7.com/Jkallen/archive/2007/03/30/107373.htmlhttp://www.tkk7.com/Jkallen/comments/107373.htmlhttp://www.tkk7.com/Jkallen/archive/2007/03/30/107373.html#Feedback0http://www.tkk7.com/Jkallen/comments/commentRss/107373.htmlhttp://www.tkk7.com/Jkallen/services/trackbacks/107373.html  一直想来涂些东西,来感觉自己好多好多东襉K不懂Q懂的东西又好肤!惭愧Q惭愧!

   q儿涂些关于applet的东ѝ时间不多,希望涂完后还可以休息下,开始吧Q?br />
  首先自己做一个appletQ然后打成JAR?在Eclipse中可以用fatjarq个插g来完?q里涉及到给applet{֐Q?br />
  如何lapplet{֐(参?Q?br />
  没有l过数字{֐的Applet在默认情况下没有写本地文件的权限。那么让我们准备{֐代码吧?br />首先用keytool命o产生用来{֐的key。下面这个命令生一个叫"mykey"的keyQ它存储在我们新建的?mystore"的keystore中?br />
  keytool -genkey -alias mykey -keystore mystore

  接下来它会问一些问题包括keystore的密码,key的密码等Q如下所C:

  输入keystore密码Q?storepass
  您的名字与姓氏是什么?
    [Unknown]Q?AYellow
  您的l织单位名称是什么?
    [Unknown]Q?我的l织单位
  您的l织名称是什么?
    [Unknown]Q?我的l织
  您所在的城市或区域名U是什么?
    [Unknown]Q?北京
  您所在的州或省䆾名称是什么?
    [Unknown]Q?北京
  该单位的两字母国家代码是什?br />    [Unknown]Q?CN
  CN=AYellow, OU=我的l织单位, O=我的l织, L=北京, ST=北京, C=CN 正确吗?
    [否]Q?Y

  输入<mykey>的主密码
        Q如果和 keystore 密码相同Q按回RQ:  keypass

  完成后会在当前目录下生成一个叫mystore的文Ӟq个文g包含了我们的key。用jarsigner命o{֐我们的代码test.jarQ需要输入keystore和key的密码)Q?br />
  
jarsigner  - keystore mystore myJarName.jar mykey

  Enter Passphrase 
for  keystore: storepass
  Enter key password 
for  mykey: keypass


  再次q行AppletQ在Applet加蝲的时候会出现一个对话框Q说该Applet׃可信ȝ发行者签名ƈ宣称代码是安全的Q是不是要对Applet授权。选择"授权于会?Q然后点L们的按钮Q看看是不是成功的创Z文gQ?br />
  辅助:写一个CLASSQ通过其可在applet中调用JSP中的JS代码
public   class  CallJavascript {
    
public  CallJavascript() {
    }

    
/**
     *
     * 
@param  ob Object q是一个applet对象
     * 
@param  str String
     
*/
    
public  String callJs(Object ob, String str) {
        String jscmd 
=  str;
        System.out.println(
" javasriptL "   +  str);
        String jsresult 
=   null ;
        
boolean  success  =   false ;
        
try  {
            Method getw 
=   null , eval  =   null ;
            Object jswin 
=   null ;
            Class c 
=  Class.forName( " netscape.javascript.JSObject " );
            
/*  does it in IE too  */
            Method ms[] 
=  c.getMethods();
            
for  ( int  i  =   0 ; i  <  ms.length; i ++ ) {
                
if  (ms[i].getName().compareTo( " getWindow " ==   0 )
                    getw 
=  ms[i];
                
else   if  (ms[i].getName().compareTo( " eval " ==   0 )
                    eval 
=  ms[i];
            }

            Object a[] 
=   new  Object[ 1 ];
            a[
0 =  ob;  /*  this is the applet  */
            jswin 
=  getw.invoke(c, a);  /*  this yields the JSObject  */
            a[
0 =  jscmd;
            Object result 
=  eval.invoke(jswin, a);
            
if (result != null ){
                
if  (result  instanceof  String){
                    jsresult 
=  (String) result;
                }
else {
                    jsresult 
=  result.toString();
                }
            }
            
            success 
=   true ;
        }
catch  (InvocationTargetException ite) {
            ite.printStackTrace();
            jsresult 
=   ""   +  ite.getTargetException();
        } 
catch  (Exception ex) {
            ex.printStackTrace();
            jsresult 
=   ""   +  ex;
        }

        
if  (success){
            System.out.println(
" eval succeeded, result is  "   +  jsresult);
        }
else {
            System.out.println(
" eval failed with error  "   +  jsresult);
        }
        
return  jsresult;
    }
}


  可以看到其中主要用到了netscape.javascript.JSObjectq个objectQ?lt;%=jdk_home%>\jre\lib\plugin.jar(jdk1.5)Q,它允?Java 代码讉K JavaScript Ҏ和属?br />主要通过反射用到了JsObject的getWindow与evel二个Ҏ来完成此c?br />JSObject主要Ҏ如下Q?br />
Method         描述
call               Calls a JavaScript Ҏ
eval              Evaluates a JavaScript expression
getMember         Retrieves a named member of a JavaScript object
getSlot          Retrieves an indexed member of a JavaScript object
removeMember    Removes a named member of a JavaScript object
setMember          Sets a named member of a JavaScript object
setSlot          Sets an indexed member of a JavaScript object
toString          Converts a JSObject to a string


  可想而知Q用CallJS如下所CZQ?br />
CallJavascript calljs  =   new  CallJavascript();
String type 
=  calljs.callJs( this " document.pmMstForm.type.value; " );
or
calljs.callJs(
this " waiting() " );



  如何通过APPLET与Servlet通信Q这个很单了。因为applet本来是一个jar包了。不q,欲传输的对象序列化到流里面(较大些的Q?br />如持久化对象)Q也可以攑ֈ一个请?request)?相对较小的字W串{?。如下所C:

import  java.net.URL;
import  java.net.URLConnection;
import  java.io.ObjectInputStream;
import  java.io.IOException;
import  java.util.Map;
import  java.io.ObjectOutputStream;
import  java.util.List;
import  java.util.Iterator;

/**
 *
 * <p>Title:</p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * 
@author  not attributable
 * 
@version  1.0
 
*/
public   class  DataTransferUtil {
    
public  DataTransferUtil() {
    }

    
public   static  Map getData(Map paraMap, List list, URL strURL) {

        URL url 
=   null ;
        URLConnection urlcon 
=   null ;
        ObjectInputStream ois 
=   null ;
        ObjectOutputStream oos 
=   null ;
        
try  {
            url 
=  strURL;
            urlcon 
=  url.openConnection();
            Iterator iter 
=  paraMap.keySet().iterator();
            
while  (iter.hasNext()) {
                String key 
=  (String) iter.next();
                urlcon.addRequestProperty(key, (String) paraMap.get(key));
            }
            urlcon.setUseCaches(
false );
            urlcon.setDoInput(
true );
            urlcon.setDoOutput(
true );

            urlcon.setRequestProperty(
" Content-type " " application/octest-stream " );
            oos 
=   new  ObjectOutputStream(urlcon.getOutputStream());
            oos.writeObject(list);
            
if  (oos  !=   null ) {
                oos.flush();
                oos.close();
            }

            ois 
=   new  ObjectInputStream(urlcon.getInputStream()); // 开始取得servlet中返回的数据

            Map mapRtn 
=  (Map) ois.readObject();

            
return  mapRtn;

        } 
catch  (IOException ioe) {
            ioe.printStackTrace();
            
return   null ;
        } 
catch  (ClassNotFoundException cnfe) {
            cnfe.printStackTrace();
            
return   null ;
        } 
finally  {
            
try  {
                
if  (ois  !=   null ) {
                    ois.close();
                }
            } 
catch  (IOException ioe) {
                ioe.printStackTrace();
            }
        }
    }
}


  应用的时候可以如下:
DataTransferUtil util = new  DataTransferUtil();
Map paraMap
= new  HashMap();
paraMap.put(
" method " , " import " );
Map map
= util.getData(paraMap,list,url); // 取得servletq回的数据(l过装Q?/span>


  q儿W二个参数放了一个LISTQ可以根据具体情况用。只是到了Servet端的servlet获取的时候做相应的处理就OK了(马上可以看到Q?br />q样applet把数据传输到url的servlet中去了?br />servlet中发生了些什么呢Q?br />
response.setContentType( " application/octest-stream " );
        
// req.setCharacterEncoding("gb2312");
        log.debug( " is handlRequest. " );
        
// 准备传输数据
        ObjectOutputStream oos  =   null ;
        ObjectInputStream ois 
=   null ;
        Map rtnMap 
=   new  HashMap();


        
// 执行Ҏ
         try  {
            String method 
=  (String)request.getHeader( " method " );
            ois 
=   new  ObjectInputStream( new  BufferedInputStream(request.getInputStream()));
            .

            
  呵呵Q放在request中的数据request.getHeader取了出来Q流中的数据也取了出来?br />  最后要惛_applet中返回结果,则同样做如下处理卛_Q?br />
oos  =   new  ObjectOutputStream(response.getOutputStream());
oos.writeObject(rtnMap);   
 

   OKQ?差不多啦Q序列化也要注意些问题,如对象类型,前后序?


  结Q通过以上Q可以实现如下功能:
  1Q将做好的APPLET打成JAR包后Q通过{֐可以其工嵌入到JSP中运行?br />  2: 可以实现在applet中调用JSP中JSQ对E序做出相应的处理?br />  3: 数据在applet与servelt通信?br />
   最后我们就可以在JSP Applet与Servlet三者之间就以放心地跑了?br />

  做项目过E看到的好的代码丢了q真舍不得!写得比较急,可能有蛮多的地方q语句都不通。敬误?
   
    q来加班狂多(现在天都已经亮了Q相信也有不同仁跟我一?Q又不能上网Q都好几个月没更C。挺惛_q儿的,真的Q愿与君共勉!







Jkallen 2007-03-30 05:47 发表评论
]]>
在HQL中绕q中文ؕ码查?/title><link>http://www.tkk7.com/Jkallen/archive/2006/10/13/74946.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Fri, 13 Oct 2006 03:44:00 GMT</pubDate><guid>http://www.tkk7.com/Jkallen/archive/2006/10/13/74946.html</guid><wfw:comment>http://www.tkk7.com/Jkallen/comments/74946.html</wfw:comment><comments>http://www.tkk7.com/Jkallen/archive/2006/10/13/74946.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/Jkallen/comments/commentRss/74946.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Jkallen/services/trackbacks/74946.html</trackback:ping><description><![CDATA[ <p>  以下是我在hibernate查询(通过Spring)中碰到的一个小问题及其解决ҎQ简单但实用Q希望也有益于各同友。 <br /><br />  在用hibernate查询中假如用C个带中文的参敎ͼ如:</p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">String hql </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">from Customer user where 1=1 and userr.mc like '%惠止南国%'</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />Session session </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> getHibernateTemplate().getSessionFactory().openSession();</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">Spring</span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #000000">Transaction tx </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> session.beginTransaction();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />Query qry </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> session.createQuery(sql);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />List returnList </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> qry.list();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />tx.commit();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />session.close();</span> </div> <p> <br />  在执行过E中在eclpise的consoleC可以看到hibernatel过底层其译成SQL后成?<br /><br />  select ... from Customer user  where 1=1 and userr.hh like '%??????%'<br /><br />  的样子。我试过其以不同的方式~码Q可是都没有其最l以正确的结果返回。暂且不谈此Ҏ应该如何写,我主要是惌通过用另外一U查询方?在HQL中绑定参数预~译机制来解册个ؕ码问题?br /><br />  参数l定机制有如下优点:<br />  a 安全感,防止恶意用户非法调用DB的存储过E?br />  b 利用底层数据库编译SQL的功能,提高数据库查询性能。预~译是指底层数据库系l只能编译SQL语句一ơ,把编译出来的可执行代码保存在~存中,如果有多ơ执行相同的SQL语句Q不需要重新编译,只要从缓存中d卛_?br /><br />  上面的执行q程Ҏ如下Q?br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">List params </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> ArrayList();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />String hql </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">from Customer user where 1=1 and userr.mc like ?</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />params.add(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">'%</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000"> form.get(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">zdmlmc</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">).toString() </span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">%'</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />Object[] objs </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> params.toArray();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />Session session </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> getHibernateTemplate().getSessionFactory().openSession();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />Transaction tx </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> session.beginTransaction();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />Query qry </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> session.createQuery(sql);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000"> (objs </span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">) </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000"> 判断是否认参数名称</span> <span style="COLOR: #008000"> <br /> <img id="Codehighlighter1_378_473_Open_Image" onclick="this.style.display='none'; Codehighlighter1_378_473_Open_Text.style.display='none'; Codehighlighter1_378_473_Closed_Image.style.display='inline'; Codehighlighter1_378_473_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_378_473_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_378_473_Closed_Text.style.display='none'; Codehighlighter1_378_473_Open_Image.style.display='inline'; Codehighlighter1_378_473_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span> <span id="Codehighlighter1_378_473_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_378_473_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">(objs.length</span> <span style="COLOR: #000000">></span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">)<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />  </span> <span style="COLOR: #0000ff">for</span> <span style="COLOR: #000000"> (</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000"> i </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">; i </span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000"> objs.length; i</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">) <br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />   qry.setParameter(i, objs[i]);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />List returnList </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> qry.list();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />tx.commit();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />session.close();</span> </div> <p> <br />  q样可以看到在console中最后所执行的SQL:<br /><br />  select ... from Customer user  where 1=1 and userr.mc like '%惠止南国%'</p> <p>  在上面中有这L语句Q?br /><br />  qry.setParameter(i, objs[i]);<br /><br />  q是属于按参C|绑定中的绑定Q意的参数cd?br /><br />  <font color="#000080"><strong>org.hibernate.Query的参数绑定Ş式可以分?br /><br /></strong>  1 按参C|绑?br /><br />  2 按参C|绑?br /></font><font style="BACKGROUND-COLOR: #000080"><br /></font>  <font color="#000080"><strong>Queryl定参数cd可以分ؓQ?br /></strong></font><br />  <font color="#000080">1 参数与持久化cd体绑?br /></font></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">Customer cus </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> Customer();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />  </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">省略其它初始?img src="http://www.tkk7.com/images/dot.gif" /><br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />  </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">以下是按参数位置l定</span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #000000">  query.setEntity(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">pa_name</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">,customer);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />  </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000"> or <br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />       </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">按参C|绑?/span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #000000">  query.setEntity(index_location,customer);</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">index_location是其在HQL中的下标位置Q从0开?/span> </div> <p> <br /> <font color="#000080"> 2 l定Lcd参数<br /></font><br />  上面中的qry.setParameter(...)是q种cd,我们qry.setParameter(i, objs[i]);中是省略了第三个参数即Hibernate映射cd,如:<br /><br />  qry.setParameter(i, objs[i],Hibernate.STRING);<br /><br />  对于有些参数QHibernate能根据参数值的javacd推断出对应的映射cdQ此时不再要在setParameter()中显式指定映类型。如?br /><br />  <font color="#000080">3 命名参C一个对象属性绑?br /></font><br />  setProperties()Ҏ<br /><br />  个h觉得q个跟ORM技术的ibatis中的SQLMAP有些许相伹{它是用setProperties()Ҏ。如Q?/p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">String hql </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">from Customer user where 1=1 and userr.mc like :sna</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />Customer cus </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> Customer();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />cus.setMc(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">惠止南国</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />Session session </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> getHibernateTemplate().getSessionFactory().openSession();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />Transaction tx </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> session.beginTransaction();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />List returnList </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> session.createQuery(sql).setProperties(cus).list();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />tx.commit();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />session.close();</span> </div> <p> <font color="#ff0000">AttentionQ对于日期型数据不能用setProperties()Ҏ通过实体来绑定?/font> </p> <p> <br /> </p> <img src ="http://www.tkk7.com/Jkallen/aggbug/74946.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Jkallen/" target="_blank">Jkallen</a> 2006-10-13 11:44 <a href="http://www.tkk7.com/Jkallen/archive/2006/10/13/74946.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CVSNT配置及其与eclipse集成开发项目管?/title><link>http://www.tkk7.com/Jkallen/archive/2006/09/17/70127.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Sun, 17 Sep 2006 05:00:00 GMT</pubDate><guid>http://www.tkk7.com/Jkallen/archive/2006/09/17/70127.html</guid><wfw:comment>http://www.tkk7.com/Jkallen/comments/70127.html</wfw:comment><comments>http://www.tkk7.com/Jkallen/archive/2006/09/17/70127.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.tkk7.com/Jkallen/comments/commentRss/70127.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Jkallen/services/trackbacks/70127.html</trackback:ping><description><![CDATA[ <p>  CVSNT是服务器理工具,再在客户端下个WINCVS可?关于wincvs使用,可以在网上找下,因ؓeclipse已经很好地集成了cvs)可以一起协同工作了。这二天我从下蝲CVSNT到用eclipse新徏目Q共享项目,不同的客L导入目都在公司局域网内的不同机子上测试通过。记录如下:<br /><br />  首先?a >http://www.cvsnt.org</a>处下得你惌的cvsnt版本Q我下的?.5.03Q安装完成后。从E序中打开cvsnt control panelQCVSNT 控制面板Q。下面开始配|CVSNTQ主要是创徏资源q让它可以通过客户端的IDE QeclipseQ来讉K?/p> <p>  <strong>开始配|cvsnt</strong>Q?br /></p> <p>  <font color="#008000">a 查看q行状态:<br /></font>  在about面板有个cvsnt  ?cvsnt lock二个选项Q这儿可以对其进行start,stop服务</p> <p>  <font color="#008000">b d资源<br /></font>  在repository config面板中可以添加删除资源,q儿主要讑֮了repository 的name and  root倹{如我在q儿name讄为\mycvsQroot为e:\mycvs。创建后会在对应的目录下生成cvsroot文g夹及cvs相关配置文g。 OK,定。这个地方可以要重启服务才能生效</p> <p>  <font color="#008000">c 兼容Q?br /></font>  在conpatibility option 面板上选择兼容的版本,<font color="#ff1493">注意一定要勾上respond as cvs 1.11.2 to version request</font>Qؓ了与eclipse中的cvs兼容(在eclipse中的cvs版本很可能与你cvsnt版本不同)?br /><br />  好了Q现在服务器上的资源路径已经讑֮好了?br /><br /><br />  <strong>通过IDE׃n一个工E?/strong>  <br /><br /><br />  打开eclipse新徏一个项目,然后在项目上叛_/team/share project Q小l?׃n目Q,在弹出的share  project whith cvs reposity对话框中选择一个cvs路径(W一ơ当然是新徏?Q在host中填入CVSNT的主机地址如:192.168.12.17Q在repository path中填入cvsnt中的name值如Q?mycvs。user中写cvsnt所分配的用户名Qpassword中写入密?下面会讲些cvs中如何管理用?。在connection type中一般选择pserverq接cd。然后就是记住密码什么的...  :-)。OK ,NEXT提示一路完成!<br /><br />    <br />  <strong>在客L从cvs上导入共享工E:<br /></strong><br /><br />  在客L的eclipse中打开cvs视图Q根据CVSNT的\径及其给你所分配的用L关信息新Z个CVS的资源\径。ok,开始引入共享工E了Q?br /><br />  可以直接从cvs中check out出来Q也可以从new/project/cvs/projects from cvs。选中你刚刚把建立cvsnt资源路径,你可以在use an existing module中看到所有的׃n目了。然后选择一个你惛_入的目check out出来到本?...</p> <p>  全部完成^_^Q本来想剪几个图上来的,有些ȝQ太不方便了。不q过E比较简单,很快可以搞定。客Lcvsnt上的工程出是比较单的。主要是在cvsnt上的相关配置。我在网上找了些资料Q完成了如添加不同的用户。介l有个cvsnt的GUI工具可以直接囑Ş化操作。看介绍很easy ,下蝲URL:<a >http://www.kdeopen.com</a>(偶一直打不开Q郁P希望各位q气比我? 。我只好在控制台下添加删除用户了?br /></p> <p>  <strong>cvsnt用户理<br /><br /></strong>  在用L理中以下是cvs的一些命令参?br />  Usage: cvs passwd [-a] [-x] [-X] [-r real_user] [-R] [-D domain] [username]<br />         -a      Add user<br />         -x      Disable user<br />         -X      Delete user<br />         -r      Alias username to real system user<br />         -R      Remove alias to real system user<br />         -D      Use domain password<br /></p> <p>  服务器工作在CVSNT用户单一验证方式下的时候,文gpasswd定义了CVSNT的用户信息,q里面保存着用户名,用户密码Q以及别名信息。默认状态下 没有该文Ӟ但是我们可以在CVSNTq工作在混合验证方式下时Q用pȝ理员登录,通过d用户命o来让CVSNT自动建立一个passwd文g?br /><br /> <font color="#008000"> dQlogin <br /></font>  cvs -d :pserver:administrator@127.0.0.1:/mycvs login<br /><br /> <font color="#008000"> d用户<br /></font>  cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -a zyx<br />  <br />  之后pȝ提示输入密码Q输入后服务器会新徏一个passwd文g。该文g的内容很单,形式如下Q?br />  <br />  zyx:YT2p2NmdmUlEg:</p> <p>  以第一行ؓ例:zyx为用户名QYT2p2NmdmUlEg为CVS使用UNIX标准加密函数对密码进行加密后的结果?br /></p> <p>  若想以؜合验证的方式验证得对应一个window的系l用户名(zyinxin)Q这时就用参?r来指?如:<br />      cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -r zyinxin -a zyx <br /><br />  q时生成文g内容如下Q?br />  zyx:YT2p2NmdmUlEg:zyinxin <br />  zyinxin用户的别?它是参考系l用?Q?br /><br />  注意Q这个文件是不能在客Lq行修改的,不能checkout出来?/p> <p>  d完成后你可以通过login来测试用户zyx是否创徏成功</p> <p> <font color="#008000"><em> </em>删除用户:<br /></font>  cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -x zyx<br /><br /><br /><br /><br />  <em>附:参考了|上一些资料,刚刚学习Q愿一赯步。谢谢!</em></p> <img src ="http://www.tkk7.com/Jkallen/aggbug/70127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Jkallen/" target="_blank">Jkallen</a> 2006-09-17 13:00 <a href="http://www.tkk7.com/Jkallen/archive/2006/09/17/70127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jakarta Commons(?http://www.tkk7.com/Jkallen/archive/2006/08/24/65438.htmlJkallenJkallenThu, 24 Aug 2006 01:43:00 GMThttp://www.tkk7.com/Jkallen/archive/2006/08/24/65438.htmlhttp://www.tkk7.com/Jkallen/comments/65438.htmlhttp://www.tkk7.com/Jkallen/archive/2006/08/24/65438.html#Feedback0http://www.tkk7.com/Jkallen/comments/commentRss/65438.htmlhttp://www.tkk7.com/Jkallen/services/trackbacks/65438.html阅读全文

Jkallen 2006-08-24 09:43 发表评论
]]>
oracle select语句学习http://www.tkk7.com/Jkallen/archive/2006/07/28/60508.htmlJkallenJkallenFri, 28 Jul 2006 02:56:00 GMThttp://www.tkk7.com/Jkallen/archive/2006/07/28/60508.htmlhttp://www.tkk7.com/Jkallen/comments/60508.htmlhttp://www.tkk7.com/Jkallen/archive/2006/07/28/60508.html#Feedback1http://www.tkk7.com/Jkallen/comments/commentRss/60508.htmlhttp://www.tkk7.com/Jkallen/services/trackbacks/60508.html来了CQ?关于数据查询分析pȝ?所以重温一下相关东?ZC下?br />
刚刚看了下racle单行函数Q主要是字符Q数字,日期Q{换,通用五个斚w?br />
1>字符处理

upper(str)---字W串str全部转换成大?br />lower(str)---字W串str全部转换成小?br />initcap(str)---字W串中每个单词的首字母大?br />concat(str1,str2)---字W串str1与str2q接h(也可以通过'||'L接相q?
substr(str,a,b)---取字W串str中的指定字符Q从位置a开始取长度为b的字W串Q假如a为正则从左边开始,否则从右边开?br />instr(str,'z')---取得str字符串中从左边开始每一ơ出现z字符的下标位|?下标?开?
lpad(str,12,'*')---左填充,卛_字符串str长度填充?2Q假如其不12位则在左边以*号填?br />rpad(str,12,'*')---叛_充,同上
length(str)---计算字符串str的长?br />
2>数字函数

round(45.926,2)---前一C留指定的数位,q四舍五?45.93)Q假如指定位是负数则意ؓ在小数点左边保留指定?如round(45.923,-1)=50,rount(45.923,0)=46,round(45.93,-2)=0,round(55.93,-2)=100
trunc(45.926,2)---同上Q得不四舍五?45.92)
mod(1600,300)---求余(100)

3>日期型函?br />
oracle中默认的格式是:DD-MON-RR?br />oracle中有个到当前pȝ旉--sysdateQ如Q?br />select sysdate from dual

可对日期q行自述q算Q?br />select (sysdate-mybirthday)/7 from person

months_between('01-sep-95','11-jan-94')---取得二个日期之间的间隔月?19.6774194)
add_months('11-jan-94',6)---l指定日期加上指定的月䆾后得C个新的日?11-jul-94)
next_day('01-sep-85','friday')---取得当前日期中下个周五的日期(01-jul-95)
last_day('01-feb-95')---取得当前日期中月份的最后一?28-feb-95)

roundq行四舍五入Qtrunc则否,以下是我的操作结果:
sysdate为:
SYSDATE
----------
28-7?-06

 select
 round(sysdate,'month') RM,
 round(sysdate,'year') RY,
 trunc(sysdate,'month') TM,
 trunc(sysdate,'year') TY
 from dual;

RM         RY         TM         TY
---------- ---------- ---------- ----------
01-8?-06 01-1?-07 01-7?-06 01-1?-06


4>转换函数

隐式转换:pȝ自动转换,如:
varchar2 or char to number
varchar2 or char to date
number to varchar2
date to varchar2

昑ּ转换QhZ函数加以转换
日期Q字W,数据三者之间可以相互{?日期<-->字符<-->数据
日期格式:YYYY

日期-->字符
select to_char(sysdate,'yyyy-mm-dd') ch from dual

CH
----------
2006-07-28

数字-->字符
to_char(number,'format_model'),oramat_model有如下:
9---用对应数字表C?br />0---强制用0表示
$---加一$W号
L---前加本地货币单位表示
.---十进制点
,---千进制点

select to_char(0917,'l9999.99') local from dual
LOCAL
------------------
         RMB917.00

字符-->日期
tselect to_date('19830917','yyyy-mm-dd') bir from dual
BIR
----------
17-9?-83

字符-->数字
select to_number('19821217','999999999') mybr from dual
      MYBR
----------
  19821217

注:所有函数均可以嵌套使用

5>通用函数

nvl(expr1,expr2)---expr1为空则显Cexpr2,否则昄expr1
nvl2(expr1,expr2,expr3)---expr1为空则显Cexpr2,否则昄expr3
nullif(expr1,expr2)---二个相等则显C空W?否则昄expr1
coalesce(expr1,expr2,...,exprn)---从expr1开始依ơ找C为空的exprQ找到就昄Q直到最后,否则?/p>

Cexprn
case表达式,如下?

 

6>多表查询
Ҏ通的多表查询Q也是不加where条g的时候实际上查询l果是各表的W卡集
外连接:oracle实现外连接时?L二边?号就OKQ当+在左ҎUCؓ双接,反之为左q接,它常常用来当要求未受限制对象的表数据也要求显C时Q如下:
select * from student

ID NAME                 ADDRESS
-------------------- --------------
1 zhangshan            zhejiang
3 lishi                hangzhou
7 lily                 guangzhou

select * from person

ID NAME                 ADDRESS
- -------------------- -----------
1 zhangshan            zhejiang
3 lishi                hangzhou
7 lily                 guangzhou

select p.id,p.sex,s.id,s.name,s.address from person p ,student s where p.id(+) = s.id

ID SEX          ID NAME                 ADDRESS
-- ---- ---------- -------------------- ------------
 1 boy           1 zhangshan            zhejiang
 3 girl          3 lishi                hangzhou
                 7 lily                 guangzhou

select p.id,p.sex,s.id,s.name,s.address from person p ,student s where p.id = s.id(+)

ID SEX          ID NAME                 ADDRESS
-- ---- ---------- -------------------- --------------
 1 boy           1 zhangshan            zhejiang
 2 girl
 3 girl          3 lishi                hangzhou
 4 boy
 5 girl

self-joinQ就是同一张表q接Q用自连接的时候要注意排除重复的记录(自nQ@环重复等Q,比如说找出student表中所有住在同一个地方的人?br />select * from student

 ID NAME                 ADDRESS
--- -------------------- ---------
  1 zhangshan            zhejiang
  3 lishi                hangzhou
  7 lily                 guangzhou
  2 name2                guangzhou
  4 name4                guangzhou
  5 name5                hangzhou
  6 name6                shanghai
  8 name8                shanghai

没有排除重复记录时的l果Q?br /> select t1.name,t2.name
 from student t1, student t2
 where t1.address = t2.address

NAME                 NAME
-------------------- --------------
lily                 lily
name2                lily
name4                lily
lily                 name2
name2                name2
name4                name2
lily                 name4
name2                name4
name4                name4
lishi                lishi
name5                lishi

NAME                 NAME
-------------------- --------------
lishi                name5
name5                name5
name6                name6
name8                name6
name6                name8
name8                name8
zhangshan            zhangshan

已选择18?/p>

排除重复与@环记录之后:
select t1.name,t2.name,t1.address
 from student t1, student t2
 where t1.address = t2.address
and t1.id > t2.id

NAME                 NAME                 ADDRESS
-------------------- -------------------- -------------------
lily                 name2                guangzhou
name4                name2                guangzhou
lily                 name4                guangzhou
name5                lishi                hangzhou
name8                name6                shanghai

cross join,无条件连接,实际上跟不带where时一样得到的是笛卡尔?/p>

natural joinQ也可以直接CjoinQ,Ҏ表中同名栏位来连接记?若表中可能出现多个同名栏位,则用using(col_name)来指定所栏位。colname不能指定表的别名Q限制条件用on来指?br />select id,p.sex,id,s.name from person p join student s using(id);

  ID SEX          ID NAME
---- ---- ---------- --------------------
   1 boy           1 zhangshan
   2 girl          2 name2
   3 girl          3 lishi
   4 boy           4 name4
   5 girl          5 name5

在sql标准语法???q接用left(right) out join,限制条g用on可以了?/p>

full out join完全外连?֐思义是左外q接与右外连接都?br />select id,p.sex,id,s.name from person p full join student s using(id);

  ID SEX          ID NAME
---- ---- ---------- ------------------
   1 boy           1 zhangshan
   3 girl          3 lishi
   2 girl          2 name2
   4 boy           4 name4
   5 girl          5 name5
   8               8 name8
   6               6 name6
   7               7 lily




Jkallen 2006-07-28 10:56 发表评论
]]>
prototype.js之ajax.request学习W记(一)http://www.tkk7.com/Jkallen/archive/2006/07/21/59445.htmlJkallenJkallenFri, 21 Jul 2006 08:47:00 GMThttp://www.tkk7.com/Jkallen/archive/2006/07/21/59445.htmlhttp://www.tkk7.com/Jkallen/comments/59445.htmlhttp://www.tkk7.com/Jkallen/archive/2006/07/21/59445.html#Feedback20http://www.tkk7.com/Jkallen/comments/commentRss/59445.htmlhttp://www.tkk7.com/Jkallen/services/trackbacks/59445.html阅读全文

Jkallen 2006-07-21 16:47 发表评论
]]>
վ֩ģ壺 ޹91Ʒר| Ʒ޾Ʒۿ| ޹˰av߲ | ѹۿԭվ| ͤͤѸ| Ƶ| ҰһƵ | Ƶ| þ91ۿ| йëƬѹۿƵ| պӰ߹ۿַ| ޹| ޹˱ɫ| ˾Ʒ˳| ޾Ʒվ| ۺɫ鶹| ƵѲ| ձvaҹĻһ| ޳AVƬһ| ĻۺϾþò| ޸͵һ| պƵ| 91ѹƷ| һëƬѹۿƵ| | baoyu777Ƶ| Ƶһ| Ļþ2020| 91Ƶ91| ŮƵ | AV뾫Ʒվ߹ۿ| þԭavapp| ˳ɵӰ | ޹˾Ʒþþùһ | þþþþaŷAV| ޲122021鶹| ޾Ʒavˮ| ݹѹۿ| ĻmvӰ| ҹaëƬ| ۺϽ|