﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-JAVA历程-随笔分类-JAVA</title><link>http://www.blogjava.net/shichengjun1984/category/26120.html</link><description>希望我的这个博客能给那些想在java的海洋中拼搏的人有所帮助。谢谢光临！</description><language>zh-cn</language><lastBuildDate>Fri, 19 Oct 2007 22:04:34 GMT</lastBuildDate><pubDate>Fri, 19 Oct 2007 22:04:34 GMT</pubDate><ttl>60</ttl><item><title>用Java转化汉字为拼音全拼</title><link>http://www.blogjava.net/shichengjun1984/archive/2007/10/09/151458.html</link><dc:creator>I LOVE JAVA</dc:creator><author>I LOVE JAVA</author><pubDate>Tue, 09 Oct 2007 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/shichengjun1984/archive/2007/10/09/151458.html</guid><wfw:comment>http://www.blogjava.net/shichengjun1984/comments/151458.html</wfw:comment><comments>http://www.blogjava.net/shichengjun1984/archive/2007/10/09/151458.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/shichengjun1984/comments/commentRss/151458.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shichengjun1984/services/trackbacks/151458.html</trackback:ping><description><![CDATA[<div class="NewsContent" id="NewsContentLabel">package com.easydozer.commons.util;<br />
<br />
import java.util.Iterator;<br />
import java.util.LinkedHashMap;<br />
import java.util.Set;<br />
<br />
/**<br />
* &lt;pre&gt;汉字转化为全拼&lt;/pre&gt;<br />
* &lt;BR&gt;&lt;DL&gt;&lt;DT&gt;&lt;B&gt;JDK版本:&lt;/B&gt;&lt;/DT&gt;&lt;BR&gt;&lt;DD&gt;1.4&lt;/DD&gt;&lt;/DL&gt;<br />
* @author 谢计生<br />
* @version 1.0<br />
* @see <br />
* @since 1.0<br />
*/<br />
public class CnToSpell<br />
{<br />
private static LinkedHashMap spellMap = null;<br />
<br />
static<br />
{<br />
if(spellMap == null){<br />
spellMap = new LinkedHashMap(400);<br />
}<br />
initialize();<br />
System.out.println("Chinese transfer Spell Done.");<br />
}<br />
<br />
private CnToSpell()<br />
{<br />
}<br />
<br />
private static void spellPut(String spell,int ascii)<br />
{<br />
spellMap.put(spell,new Integer(ascii));<br />
}<br />
<br />
private static void initialize()<br />
{<br />
spellPut("a", -20319);<br />
spellPut("ai", -20317);<br />
spellPut("an", -20304);<br />
spellPut("ang", -20295);<br />
spellPut("ao", -20292);<br />
spellPut("ba", -20283);<br />
spellPut("bai", -20265);<br />
spellPut("ban", -20257);<br />
spellPut("bang", -20242);<br />
spellPut("bao", -20230);<br />
spellPut("bei", -20051);<br />
spellPut("ben", -20036);<br />
spellPut("beng", -20032);<br />
spellPut("bi", -20026);<br />
spellPut("bian", -20002);<br />
spellPut("biao", -19990);<br />
spellPut("bie", -19986);<br />
spellPut("bin", -19982);<br />
spellPut("bing", -19976);<br />
spellPut("bo", -19805);<br />
spellPut("bu", -19784);<br />
spellPut("ca", -19775);<br />
spellPut("cai", -19774);<br />
spellPut("can", -19763);<br />
spellPut("cang", -19756);<br />
spellPut("cao", -19751);<br />
spellPut("ce", -19746);<br />
spellPut("ceng", -19741);<br />
spellPut("cha", -19739);<br />
spellPut("chai", -19728);<br />
spellPut("chan", -19725);<br />
spellPut("chang", -19715);<br />
spellPut("chao", -19540);<br />
spellPut("che", -19531);<br />
spellPut("chen", -19525);<br />
spellPut("cheng", -19515);<br />
spellPut("chi", -19500);<br />
spellPut("chong", -19484);<br />
spellPut("chou", -19479);<br />
spellPut("chu", -19467);<br />
spellPut("chuai", -19289);<br />
spellPut("chuan", -19288);<br />
spellPut("chuang", -19281);<br />
spellPut("chui", -19275);<br />
spellPut("chun", -19270);<br />
spellPut("chuo", -19263);<br />
spellPut("ci", -19261);<br />
spellPut("cong", -19249);<br />
spellPut("cou", -19243);<br />
spellPut("cu", -19242);<br />
spellPut("cuan", -19238);<br />
spellPut("cui", -19235);<br />
spellPut("cun", -19227);<br />
spellPut("cuo", -19224);<br />
spellPut("da", -19218);<br />
spellPut("dai", -19212);<br />
spellPut("dan", -19038);<br />
spellPut("dang", -19023);<br />
spellPut("dao", -19018);<br />
spellPut("de", -19006);<br />
spellPut("deng", -19003);<br />
spellPut("di", -18996);<br />
spellPut("dian", -18977);<br />
spellPut("diao", -18961);<br />
spellPut("die", -18952);<br />
spellPut("ding", -18783);<br />
spellPut("diu", -18774);<br />
spellPut("dong", -18773);<br />
spellPut("dou", -18763);<br />
spellPut("du", -18756);<br />
spellPut("duan", -18741);<br />
spellPut("dui", -18735);<br />
spellPut("dun", -18731);<br />
spellPut("duo", -18722);<br />
spellPut("e", -18710);<br />
spellPut("en", -18697);<br />
spellPut("er", -18696);<br />
spellPut("fa", -18526);<br />
spellPut("fan", -18518);<br />
spellPut("fang", -18501);<br />
spellPut("fei", -18490);<br />
spellPut("fen", -18478);<br />
spellPut("feng", -18463);<br />
spellPut("fo", -18448);<br />
spellPut("fou", -18447);<br />
spellPut("fu", -18446);<br />
spellPut("ga", -18239);<br />
spellPut("gai", -18237);<br />
spellPut("gan", -18231);<br />
spellPut("gang", -18220);<br />
spellPut("gao", -18211);<br />
spellPut("ge", -18201);<br />
spellPut("gei", -18184);<br />
spellPut("gen", -18183);<br />
spellPut("geng", -18181);<br />
spellPut("gong", -18012);<br />
spellPut("gou", -17997);<br />
spellPut("gu", -17988);<br />
spellPut("gua", -17970);<br />
spellPut("guai", -17964);<br />
spellPut("guan", -17961);<br />
spellPut("guang", -17950);<br />
spellPut("gui", -17947);<br />
spellPut("gun", -17931);<br />
spellPut("guo", -17928);<br />
spellPut("ha", -17922);<br />
spellPut("hai", -17759);<br />
spellPut("han", -17752);<br />
spellPut("hang", -17733);<br />
spellPut("hao", -17730);<br />
spellPut("he", -17721);<br />
spellPut("hei", -17703);<br />
spellPut("hen", -17701);<br />
spellPut("heng", -17697);<br />
spellPut("hong", -17692);<br />
spellPut("hou", -17683);<br />
spellPut("hu", -17676);<br />
spellPut("hua", -17496);<br />
spellPut("huai", -17487);<br />
spellPut("huan", -17482);<br />
spellPut("huang", -17468);<br />
spellPut("hui", -17454);<br />
spellPut("hun", -17433);<br />
spellPut("huo", -17427);<br />
spellPut("ji", -17417);<br />
spellPut("jia", -17202);<br />
spellPut("jian", -17185);<br />
spellPut("jiang", -16983);<br />
spellPut("jiao", -16970);<br />
spellPut("jie", -16942);<br />
spellPut("jin", -16915);<br />
spellPut("jing", -16733);<br />
spellPut("jiong", -16708);<br />
spellPut("jiu", -16706);<br />
spellPut("ju", -16689);<br />
spellPut("juan", -16664);<br />
spellPut("jue", -16657);<br />
spellPut("jun", -16647);<br />
spellPut("ka", -16474);<br />
spellPut("kai", -16470);<br />
spellPut("kan", -16465);<br />
spellPut("kang", -16459);<br />
spellPut("kao", -16452);<br />
spellPut("ke", -16448);<br />
spellPut("ken", -16433);<br />
spellPut("keng", -16429);<br />
spellPut("kong", -16427);<br />
spellPut("kou", -16423);<br />
spellPut("ku", -16419);<br />
spellPut("kua", -16412);<br />
spellPut("kuai", -16407);<br />
spellPut("kuan", -16403);<br />
spellPut("kuang", -16401);<br />
spellPut("kui", -16393);<br />
spellPut("kun", -16220);<br />
spellPut("kuo", -16216);<br />
spellPut("la", -16212);<br />
spellPut("lai", -16205);<br />
spellPut("lan", -16202);<br />
spellPut("lang", -16187);<br />
spellPut("lao", -16180);<br />
spellPut("le", -16171);<br />
spellPut("lei", -16169);<br />
spellPut("leng", -16158);<br />
spellPut("li", -16155);<br />
spellPut("lia", -15959);<br />
spellPut("lian", -15958);<br />
spellPut("liang", -15944);<br />
spellPut("liao", -15933);<br />
spellPut("lie", -15920);<br />
spellPut("lin", -15915);<br />
spellPut("ling", -15903);<br />
spellPut("liu", -15889);<br />
spellPut("long", -15878);<br />
spellPut("lou", -15707);<br />
spellPut("lu", -15701);<br />
spellPut("lv", -15681);<br />
spellPut("luan", -15667);<br />
spellPut("lue", -15661);<br />
spellPut("lun", -15659);<br />
spellPut("luo", -15652);<br />
spellPut("ma", -15640);<br />
spellPut("mai", -15631);<br />
spellPut("man", -15625);<br />
spellPut("mang", -15454);<br />
spellPut("mao", -15448);<br />
spellPut("me", -15436);<br />
spellPut("mei", -15435);<br />
spellPut("men", -15419);<br />
spellPut("meng", -15416);<br />
spellPut("mi", -15408);<br />
spellPut("mian", -15394);<br />
spellPut("miao", -15385);<br />
spellPut("mie", -15377);<br />
spellPut("min", -15375);<br />
spellPut("ming", -15369);<br />
spellPut("miu", -15363);<br />
spellPut("mo", -15362);<br />
spellPut("mou", -15183);<br />
spellPut("mu", -15180);<br />
spellPut("na", -15165);<br />
spellPut("nai", -15158);<br />
spellPut("nan", -15153);<br />
spellPut("nang", -15150);<br />
spellPut("nao", -15149);<br />
spellPut("ne", -15144);<br />
spellPut("nei", -15143);<br />
spellPut("nen", -15141);<br />
spellPut("neng", -15140);<br />
spellPut("ni", -15139);<br />
spellPut("nian", -15128);<br />
spellPut("niang", -15121);<br />
spellPut("niao", -15119);<br />
spellPut("nie", -15117);<br />
spellPut("nin", -15110);<br />
spellPut("ning", -15109);<br />
spellPut("niu", -14941);<br />
spellPut("nong", -14937);<br />
spellPut("nu", -14933);<br />
spellPut("nv", -14930);<br />
spellPut("nuan", -14929);<br />
spellPut("nue", -14928);<br />
spellPut("nuo", -14926);<br />
spellPut("o", -14922);<br />
spellPut("ou", -14921);<br />
spellPut("pa", -14914);<br />
spellPut("pai", -14908);<br />
spellPut("pan", -14902);<br />
spellPut("pang", -14894);<br />
spellPut("pao", -14889);<br />
spellPut("pei", -14882);<br />
spellPut("pen", -14873);<br />
spellPut("peng", -14871);<br />
spellPut("pi", -14857);<br />
spellPut("pian", -14678);<br />
spellPut("piao", -14674);<br />
spellPut("pie", -14670);<br />
spellPut("pin", -14668);<br />
spellPut("ping", -14663);<br />
spellPut("po", -14654);<br />
spellPut("pu", -14645);<br />
spellPut("qi", -14630);<br />
spellPut("qia", -14594);<br />
spellPut("qian", -14429);<br />
spellPut("qiang", -14407);<br />
spellPut("qiao", -14399);<br />
spellPut("qie", -14384);<br />
spellPut("qin", -14379);<br />
spellPut("qing", -14368);<br />
spellPut("qiong", -14355);<br />
spellPut("qiu", -14353);<br />
spellPut("qu", -14345);<br />
spellPut("quan", -14170);<br />
spellPut("que", -14159);<br />
spellPut("qun", -14151);<br />
spellPut("ran", -14149);<br />
spellPut("rang", -14145);<br />
spellPut("rao", -14140);<br />
spellPut("re", -14137);<br />
spellPut("ren", -14135);<br />
spellPut("reng", -14125);<br />
spellPut("ri", -14123);<br />
spellPut("rong", -14122);<br />
spellPut("rou", -14112);<br />
spellPut("ru", -14109);<br />
spellPut("ruan", -14099);<br />
spellPut("rui", -14097);<br />
spellPut("run", -14094);<br />
spellPut("ruo", -14092);<br />
spellPut("sa", -14090);<br />
spellPut("sai", -14087);<br />
spellPut("san", -14083);<br />
spellPut("sang", -13917);<br />
spellPut("sao", -13914);<br />
spellPut("se", -13910);<br />
spellPut("sen", -13907);<br />
spellPut("seng", -13906);<br />
spellPut("sha", -13905);<br />
spellPut("shai", -13896);<br />
spellPut("shan", -13894);<br />
spellPut("shang", -13878);<br />
spellPut("shao", -13870);<br />
spellPut("she", -13859);<br />
spellPut("shen", -13847);<br />
spellPut("sheng", -13831);<br />
spellPut("shi", -13658);<br />
spellPut("shou", -13611);<br />
spellPut("shu", -13601);<br />
spellPut("shua", -13406);<br />
spellPut("shuai", -13404);<br />
spellPut("shuan", -13400);<br />
spellPut("shuang", -13398);<br />
spellPut("shui", -13395);<br />
spellPut("shun", -13391);<br />
spellPut("shuo", -13387);<br />
spellPut("si", -13383);<br />
spellPut("song", -13367);<br />
spellPut("sou", -13359);<br />
spellPut("su", -13356);<br />
spellPut("suan", -13343);<br />
spellPut("sui", -13340);<br />
spellPut("sun", -13329);<br />
spellPut("suo", -13326);<br />
spellPut("ta", -13318);<br />
spellPut("tai", -13147);<br />
spellPut("tan", -13138);<br />
spellPut("tang", -13120);<br />
spellPut("tao", -13107);<br />
spellPut("te", -13096);<br />
spellPut("teng", -13095);<br />
spellPut("ti", -13091);<br />
spellPut("tian", -13076);<br />
spellPut("tiao", -13068);<br />
spellPut("tie", -13063);<br />
spellPut("ting", -13060);<br />
spellPut("tong", -12888);<br />
spellPut("tou", -12875);<br />
spellPut("tu", -12871);<br />
spellPut("tuan", -12860);<br />
spellPut("tui", -12858);<br />
spellPut("tun", -12852);<br />
spellPut("tuo", -12849);<br />
spellPut("wa", -12838);<br />
spellPut("wai", -12831);<br />
spellPut("wan", -12829);<br />
spellPut("wang", -12812);<br />
spellPut("wei", -12802);<br />
spellPut("wen", -12607);<br />
spellPut("weng", -12597);<br />
spellPut("wo", -12594);<br />
spellPut("wu", -12585);<br />
spellPut("xi", -12556);<br />
spellPut("xia", -12359);<br />
spellPut("xian", -12346);<br />
spellPut("xiang", -12320);<br />
spellPut("xiao", -12300);<br />
spellPut("xie", -12120);<br />
spellPut("xin", -12099);<br />
spellPut("xing", -12089);<br />
spellPut("xiong", -12074);<br />
spellPut("xiu", -12067);<br />
spellPut("xu", -12058);<br />
spellPut("xuan", -12039);<br />
spellPut("xue", -11867);<br />
spellPut("xun", -11861);<br />
spellPut("ya", -11847);<br />
spellPut("yan", -11831);<br />
spellPut("yang", -11798);<br />
spellPut("yao", -11781);<br />
spellPut("ye", -11604);<br />
spellPut("yi", -11589);<br />
spellPut("yin", -11536);<br />
spellPut("ying", -11358);<br />
spellPut("yo", -11340);<br />
spellPut("yong", -11339);<br />
spellPut("you", -11324);<br />
spellPut("yu", -11303);<br />
spellPut("yuan", -11097);<br />
spellPut("yue", -11077);<br />
spellPut("yun", -11067);<br />
spellPut("za", -11055);<br />
spellPut("zai", -11052);<br />
spellPut("zan", -11045);<br />
spellPut("zang", -11041);<br />
spellPut("zao", -11038);<br />
spellPut("ze", -11024);<br />
spellPut("zei", -11020);<br />
spellPut("zen", -11019);<br />
spellPut("zeng", -11018);<br />
spellPut("zha", -11014);<br />
spellPut("zhai", -10838);<br />
spellPut("zhan", -10832);<br />
spellPut("zhang", -10815);<br />
spellPut("zhao", -10800);<br />
spellPut("zhe", -10790);<br />
spellPut("zhen", -10780);<br />
spellPut("zheng", -10764);<br />
spellPut("zhi", -10587);<br />
spellPut("zhong", -10544);<br />
spellPut("zhou", -10533);<br />
spellPut("zhu", -10519);<br />
spellPut("zhua", -10331);<br />
spellPut("zhuai", -10329);<br />
spellPut("zhuan", -10328);<br />
spellPut("zhuang", -10322);<br />
spellPut("zhui", -10315);<br />
spellPut("zhun", -10309);<br />
spellPut("zhuo", -10307);<br />
spellPut("zi", -10296);<br />
spellPut("zong", -10281);<br />
spellPut("zou", -10274);<br />
spellPut("zu", -10270);<br />
spellPut("zuan", -10262);<br />
spellPut("zui", -10260);<br />
spellPut("zun", -10256);<br />
spellPut("zuo", -10254);<br />
}<br />
<br />
/**<br />
* 获得单个汉字的Ascii.<br />
* @param cn char<br />
* 汉字字符<br />
* @return int<br />
* 错误返回 0,否则返回ascii<br />
*/<br />
public static int getCnAscii(char cn)<br />
{<br />
byte[] bytes = (String.valueOf(cn)).getBytes();<br />
if(bytes == null || bytes.length &gt; 2 || bytes.length &lt;= 0){ //错误<br />
return 0;<br />
}<br />
if(bytes.length == 1){ //英文字符<br />
return bytes[0];<br />
}<br />
if(bytes.length == 2){ //中文字符<br />
int hightByte = 256 + bytes[0];<br />
int lowByte = 256 + bytes[1];<br />
<br />
int ascii = (256 * hightByte + lowByte) - 256 * 256;<br />
<br />
//System.out.println("ASCII=" + ascii);<br />
<br />
return ascii;<br />
}<br />
<br />
return 0; //错误<br />
}<br />
<br />
/**<br />
* 根据ASCII码到SpellMap中查找对应的拼音<br />
* @param ascii int<br />
* 字符对应的ASCII<br />
* @return String<br />
* 拼音,首先判断ASCII是否&gt;0&amp;&lt;160,如果是返回对应的字符,<br />
* &lt;BR&gt;否则到SpellMap中查找,如果没有找到拼音,则返回null,如果找到则返回拼音.<br />
*/<br />
public static String getSpellByAscii(int ascii)<br />
{<br />
if(ascii &gt; 0 &amp;&amp; ascii &lt; 160){ //单字符<br />
return String.valueOf((char)ascii);<br />
}<br />
<br />
if(ascii &lt; -20319 || ascii &gt; -10247){ //不知道的字符<br />
return null;<br />
}<br />
<br />
Set keySet = spellMap.keySet();<br />
Iterator it = keySet.iterator();<br />
<br />
String spell0 = null;;<br />
String spell = null;<br />
<br />
int asciiRang0 = -20319;<br />
int asciiRang;<br />
while(it.hasNext()){<br />
<br />
spell = (String)it.next();<br />
Object valObj = spellMap.get(spell);<br />
if(valObj instanceof Integer){<br />
asciiRang = ((Integer)valObj).intValue();<br />
<br />
if(ascii &gt;= asciiRang0 &amp;&amp; ascii &lt; asciiRang){ //区间找到<br />
return(spell0 == null) ? spell : spell0;<br />
}<br />
else{<br />
spell0 = spell;<br />
asciiRang0 = asciiRang;<br />
}<br />
}<br />
}<br />
<br />
return null;<br />
<br />
}<br />
<br />
/**<br />
* 返回字符串的全拼,是汉字转化为全拼,其它字符不进行转换<br />
* @param cnStr String<br />
* 字符串<br />
* @return String<br />
* 转换成全拼后的字符串<br />
*/<br />
public static String getFullSpell(String cnStr)<br />
{<br />
if(null == cnStr || "".equals(cnStr.trim())){<br />
return cnStr;<br />
}<br />
<br />
char[] chars = cnStr.toCharArray();<br />
StringBuffer retuBuf = new StringBuffer();<br />
for(int i = 0,Len = chars.length;i &lt; Len;i++){<br />
int ascii = getCnAscii(chars[i]);<br />
if(ascii == 0){ //取ascii时出错<br />
retuBuf.append(chars[i]);<br />
}<br />
else{<br />
String spell = getSpellByAscii(ascii);<br />
if(spell == null){<br />
retuBuf.append(chars[i]);<br />
}<br />
else{<br />
retuBuf.append(spell);<br />
} // end of if spell == null<br />
} // end of if ascii &lt;= -20400<br />
} // end of for<br />
<br />
return retuBuf.toString();<br />
}<br />
<br />
public static String getFirstSpell(String cnStr)<br />
{<br />
return null;<br />
}<br />
<br />
public static void main(String[] args)<br />
{<br />
String str = null;<br />
str = "谢海101普降喜雨";<br />
System.out.println("Spell=" + CnToSpell.getFullSpell(str));<br />
<br />
str = "张牙舞爪》。，";<br />
System.out.println("Spell=" + CnToSpell.getFullSpell(str));<br />
<br />
str = "李鹏，可耻下场。";<br />
System.out.println("Spell=" + CnToSpell.getFullSpell(str));<br />
<br />
str = "猪油，猪八戒。";<br />
System.out.println("Spell=" + CnToSpell.getFullSpell(str));<br />
}<br />
}<br />
</div>
<img src ="http://www.blogjava.net/shichengjun1984/aggbug/151458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shichengjun1984/" target="_blank">I LOVE JAVA</a> 2007-10-09 17:17 <a href="http://www.blogjava.net/shichengjun1984/archive/2007/10/09/151458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Criteria 笔记</title><link>http://www.blogjava.net/shichengjun1984/archive/2007/09/24/147793.html</link><dc:creator>I LOVE JAVA</dc:creator><author>I LOVE JAVA</author><pubDate>Mon, 24 Sep 2007 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/shichengjun1984/archive/2007/09/24/147793.html</guid><wfw:comment>http://www.blogjava.net/shichengjun1984/comments/147793.html</wfw:comment><comments>http://www.blogjava.net/shichengjun1984/archive/2007/09/24/147793.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shichengjun1984/comments/commentRss/147793.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shichengjun1984/services/trackbacks/147793.html</trackback:ping><description><![CDATA[<p>来自：<a class="titlink" title="lovefanx的空间 http://hi.baidu.com/lovefanx" href="http://hi.baidu.com/lovefanx">徽骆驼</a><br />
<br />
Criteria Query <br />
可以看作传统sql的对象化表示</p>
<p>Criteria 可以由session创建<br />
Criteria ct= session.createCriteria(TUser.class);</p>
<p>Criteria中可以增加查询条件<br />
ct.add(Expression.eq("name","Erica"));<br />
ct.add(Expression.eq("sex",new Integer(1)));</p>
<p>Criteria中增加的查询条件可以由表达式对象创建<br />
Expression.eq(对象属性名，对象属性值);</p>
<p>查询条件通过Criteria的add方法加入。</p>
<p>表达式对象的方法有：<br />
eq&nbsp;&nbsp;等于，第一个参数是对象属性，第二个参数是值<br />
allEq&nbsp;&nbsp;参数为一个Map对象，相当于多个eq的叠加<br />
gt&nbsp;&nbsp;大于<br />
ge&nbsp;&nbsp;大于等于<br />
lt&nbsp;&nbsp;&lt;<br />
le&nbsp;&nbsp;&lt;=<br />
between&nbsp;&nbsp;在两个值之间Expression.between("age",new Integer(10),new Integer(20));<br />
like&nbsp;&nbsp;like查询<br />
in &nbsp;&nbsp;in查询<br />
eqProperty&nbsp;用于比较两个对象的属性的值是否相等<br />
gtProperty&nbsp;<br />
geProperty<br />
ltProperty<br />
leProperty<br />
and&nbsp;&nbsp;and方法可以嵌套Expression对象，用于and关系<br />
or&nbsp;&nbsp;同上<br />
&nbsp;&nbsp;如：Expression.or(<br />
&nbsp;&nbsp;&nbsp;Expression.eq("name","hulei"),<br />
&nbsp;&nbsp;&nbsp;Expression.eq("name","jane")<br />
&nbsp;&nbsp;&nbsp;);<br />
sql&nbsp;&nbsp;作为Expression对象的补充，本方法提供对原生sql的支持</p>
<p>***注意，在Hibernate3中，引入了Restrictions类作为Expression的替代，以后的版本，不再推荐使用Expression。<br />
***但是，Restrictions类的使用方法和Expression的方法一致。</p>
<p>注意，在查询条件中，Hibernate提供了一个Example查询，当查询条件比较多的时候，<br />
可以用Example查询来简化代码，使用方法如下：<br />
TUser user=new TUser();<br />
user.setLoginName("hulei");<br />
user.setPassword("hulei");<br />
Criteria ct=session.createCriteria(TUser.class);<br />
ct.add(Example.create(user));<br />
return ct.list();</p>
<p><br />
复合查询<br />
Criteria查询可以嵌套Criteria来实现复合查询<br />
如下：<br />
Criteria ct=session.createCriteria(TUser.class);<br />
Criteria ctAddress=ct.createCriteria("addresses");//这里是嵌套了一个Criteria查询,这里的addresses是TUser的属性<br />
ctAddress.add(Expression.like("address","%shanghai%"));<br />
List list=ct.list();</p>
<img src ="http://www.blogjava.net/shichengjun1984/aggbug/147793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shichengjun1984/" target="_blank">I LOVE JAVA</a> 2007-09-24 14:50 <a href="http://www.blogjava.net/shichengjun1984/archive/2007/09/24/147793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]tomcat中MySQL连接池配置 </title><link>http://www.blogjava.net/shichengjun1984/archive/2007/09/24/147787.html</link><dc:creator>I LOVE JAVA</dc:creator><author>I LOVE JAVA</author><pubDate>Mon, 24 Sep 2007 06:29:00 GMT</pubDate><guid>http://www.blogjava.net/shichengjun1984/archive/2007/09/24/147787.html</guid><wfw:comment>http://www.blogjava.net/shichengjun1984/comments/147787.html</wfw:comment><comments>http://www.blogjava.net/shichengjun1984/archive/2007/09/24/147787.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shichengjun1984/comments/commentRss/147787.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shichengjun1984/services/trackbacks/147787.html</trackback:ping><description><![CDATA[来源：feng - BlogJava<br />
<br />
　　由于直接编辑server.xml配置连接池很容易出现错误，我估计是tomcat版本问题，没个版本可能配置有点点差别，所以我建议使用在http://localhost/admin/中进行数据源的配置，下载tomcat的admin包，安装过程如下<br />
<br />
　　下载下来进行解压，得到三个文件，和两个包，一个叫conf包，另外一个叫做server包。<br />
<br />
　　接着进行安装：那三个单独的文件不用管；把conf\Catalina\localhost\下面的一个配置文件admin.xml放在你tomcat安装目录下面的Tomcat 5.5\conf\Catalina\localhost\这个路径下，即跟host-manage.xml,manager.xml放在一起；再把server\webapps\下面的admin包拷贝到你的tomcat安装目录下的Tomcat 5.5\server\webapps\这个路径下面跟host-manager，manager包放在一块。<br />
<br />
　　安装搞定，重新启动tomcat，在地址栏输入http://localhost/admin/,在出现的截面里面输入你安装tomcat的时候你输入的用户名和密码。<br />
<br />
　　登录成功后，会出现Tomcat 的web应用管理界面（Tomcat Web Server Administration Tool）。<br />
<br />
　　然后在左边的目录树点击&#8220;Data Sources&#8221;项，右边可以看到JNDI配置的页面。<br />
<br />
　　在右上角的下拉框中选择&#8220;Create New Data Source&#8221;，接下来填写配置信息：<br />
<br />
JNDI Name: jdbc/feng /*连接池的名称*/ <br />
Data Source URL: jdbc:mysql://localhost:3306/bbs /*bbs为数据库的名称*/<br />
JDBC Driver Class: com.mysql.jdbc.Driver<br />
User Name: root<br />
Password: feng<br />
Max. Active Connections: 可用默认值 <br />
Max. Idle Connections: 可用默认值<br />
Max. Wait for Connection: 可用默认值<br />
Validation Query: 可不填写。<br />
<br />
　　然后，按下&#8220;save&#8221;按钮保存。<br />
<br />
　　再按下&#8220;Commit Changes&#8221;按钮将配置更改提交完成。<br />
<br />
　　下面这步比较重要，不加就会出现错误<br />
<br />
　　在＜Context＞＜/Context＞的描述中加上本web应用对全局连接池的引用说明，如下文字：<br />
<br />
＜ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/＞ <br />
<br />
　　一般都是加在虚拟目录里<br />
<br />
　　类似下面<br />
<br />
＜Context<br />
crossContext="true"<br />
docBase="D:/feng"<br />
path="/feng"<br />
reloadable="true"＞<br />
<br />
<br />
＜ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/＞<br />
＜/Context＞<br />
<br />
　　上面完成后，还需要配置对应虚拟目录WEB应用的web.xml<br />
<br />
　　内容可以参考下面<br />
<br />
＜web-app＞<br />
＜resource-ref＞<br />
＜description＞MySQL DataSource example＜/description＞<br />
＜res-ref-name＞jdbc/feng＜/res-ref-name＞<br />
＜res-type＞javax.sql.DataSource＜/res-type＞<br />
＜res-auth＞Container＜/res-auth＞<br />
＜/resource-ref＞<br />
＜/web-app＞<br />
<br />
　　保存D:\feng\WEB-INF\web.xml 文件<br />
<br />
　　应用示例<br />
<br />
＜%@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%＞<br />
＜%@ page contentType="text/html; charset=GB2312"%＞<br />
＜html＞<br />
＜head＞＜title＞DataSourse Connection Test＜/title＞＜/head＞<br />
＜body＞<br />
＜%<br />
try{<br />
Connection con; <br />
Statement stmt; <br />
ResultSet rs; <br />
<br />
Context ctx = new InitialContext(); <br />
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/feng"); <br />
con=ds.getConnection(); <br />
<br />
stmt=con.createStatement(); <br />
rs=stmt.executeQuery("select * from user"); <br />
while(rs.next()){<br />
out.println(rs.getString(1)); <br />
%＞<br />
＜br＞<br />
<br />
＜%<br />
<br />
out.print(rs.getString(2)); <br />
}<br />
rs.close(); <br />
stmt.close(); <br />
con.close(); <br />
<br />
}catch(Exception e){<br />
out.print(e.getMessage()); <br />
}<br />
<br />
%＞ <br />
<br />
＜/body＞<br />
＜/html＞ 
<img src ="http://www.blogjava.net/shichengjun1984/aggbug/147787.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shichengjun1984/" target="_blank">I LOVE JAVA</a> 2007-09-24 14:29 <a href="http://www.blogjava.net/shichengjun1984/archive/2007/09/24/147787.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>