<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>入门讨论论坛最新讨论 - JavaEye</title>
    <description>基础知识，入门问题，简单技术问题交流和讨论版面 - Java编程，Ruby编程，微软.net，AJAX，敏捷软件开发，综合软件技术</description>
    <link>http://www.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>弄个简单的带下划线的JLabel</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://laiseeme.javaeye.com">laiseeme</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/238111" style="color:red;">http://www.javaeye.com/topic/238111</a>&nbsp;
          发表时间: 2008年09月07日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          项目里面弄的，就是简单的把JLabel的paintComponent重写一下，画个线<br /><pre name="code" class="java">
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JLabel;

/**
 * 带下划线的label
 * @author Administrator
 *
 */
public class LineLabel extends JLabel{
	
	public LineLabel(){
		super();
	}
	
	public LineLabel(String str){
		super(str);
	}
	
	@Override
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		int y = getHeight() - 1;
		g.setColor(new Color(156,154,140));
		g.drawLine(0, y, getWidth(), y);
	}
}</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/238111" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 07 Sep 2008 17:20:06 +0800</pubDate>
        <link>http://www.javaeye.com/topic/238111</link>
        <guid>http://www.javaeye.com/topic/238111</guid>
      </item>
      <item>
        <title>关于js的prototype一个问题</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wzhxhj.javaeye.com">wzhxhj</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/238187" style="color:red;">http://www.javaeye.com/topic/238187</a>&nbsp;
          发表时间: 2008年09月07日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天写了一个例子，先写了一个js文件 <br />hello.js<br /><pre name="code" class="js">
HelloWorld = function() {
}
HelloWorld.prototype =  function() {
   sayHello:function() {
     alert ("hello"); 
   }
   sayWelcome:function() {
     alert("welcome");
   }
}
</pre><br />然后在另一个htm文件中hello.html 引用这个js文件<br /><pre name="code" class="html">
&lt;script type="text/javascript" src="example/hello.js"> 
&lt;/script>
&lt;button dojoType="dijit.form.Button" id="helloButton">
        Hello World!
        &lt;script type="dojo/method" event="onClick">
        	var hello = new HelloWorld();       	 	
       		hello.sayHello();
       		
        &lt;/script>
   &lt;/button>	
</pre><br />这样做，会报一个错误，"hello未定义"<br />所以我js改动一下<br />今天写了一个例子，先写了一个js文件 <br />hello.js<br /><pre name="code" class="js">
function HelloWorld() {
}
HelloWorld.prototype.sayHello =  function() { 
     alert ("hello");    
}
</pre><br />这样就能通过，现在还不知道什么原因。
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/238187" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 07 Sep 2008 21:42:58 +0800</pubDate>
        <link>http://www.javaeye.com/topic/238187</link>
        <guid>http://www.javaeye.com/topic/238187</guid>
      </item>
      <item>
        <title>多对多(用hibernate的自动生成)</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://694415514-qq-com.javaeye.com">尧舜大帝</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/238032" style="color:red;">http://www.javaeye.com/topic/238032</a>&nbsp;
          发表时间: 2008年09月07日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: xx-large">第一步：在数据库中建立三个表：</span>STUDENT ,BOOK,NUMS<br />-- Create table<br />create table STUDENT<br />(<br />  STUDENTID   NUMBER not null,<br />  STUDENTNAME VARCHAR2(20)<br />)<br />tablespace SYSTEM<br />  pctfree 10<br />  pctused 40<br />  initrans 1<br />  maxtrans 255<br />  storage<br />  (<br />    initial 64K<br />    minextents 1<br />    maxextents unlimited<br />  );<br />-- Create/Recreate primary, unique and foreign key constraints <br />alter table STUDENT<br />  add constraint W1 primary key (STUDENTID)<br />  using index <br />  tablespace SYSTEM<br />  pctfree 10<br />  initrans 2<br />  maxtrans 255<br />  storage<br />  (<br />    initial 64K<br />    minextents 1<br />    maxextents unlimited<br />  );<br />-- Create table<br />create table NUMS<br />(<br />  BOOKID      NUMBER,<br />  STUDENTID   NUMBER,<br />  TUSHULIANG  NUMBER,<br />  JIESHULIANG NUMBER,<br />  ID          NUMBER not null<br />)<br />tablespace SYSTEM<br />  pctfree 10<br />  pctused 40<br />  initrans 1<br />  maxtrans 255<br />  storage<br />  (<br />    initial 64K<br />    minextents 1<br />    maxextents unlimited<br />  );<br />-- Create/Recreate primary, unique and foreign key constraints <br />alter table NUMS<br />  add constraint Q5 primary key (ID)<br />  using index <br />  tablespace SYSTEM<br />  pctfree 10<br />  initrans 2<br />  maxtrans 255<br />  storage<br />  (<br />    initial 64K<br />    minextents 1<br />    maxextents unlimited<br />  );<br />alter table NUMS<br />  add constraint Q1 foreign key (BOOKID)<br />  references BOOK (BOOKID);<br />alter table NUMS<br />  add constraint Q2 foreign key (STUDENTID)<br />  references STUDENT (STUDENTID);<br />-- Create table<br />create table BOOK<br />(<br />  BOOKID   NUMBER not null,<br />  BOOKNAME VARCHAR2(20)<br />)<br />tablespace SYSTEM<br />  pctfree 10<br />  pctused 40<br />  initrans 1<br />  maxtrans 255<br />  storage<br />  (<br />    initial 64K<br />    minextents 1<br />    maxextents unlimited<br />  );<br />-- Create/Recreate primary, unique and foreign key constraints <br />alter table BOOK<br />  add constraint A3 primary key (BOOKID)<br />  using index <br />  tablespace SYSTEM<br />  pctfree 10<br />  initrans 2<br />  maxtrans 255<br />  storage<br />  (<br />    initial 64K<br />    minextents 1<br />    maxextents unlimited<br />  );<br /><span style="font-size: xx-large">第二步：写三个PO对象</span>package po;<br /><br />import java.util.HashSet;<br />import java.util.Set;<br /><br />/**<br /> * Student generated by MyEclipse Persistence Tools<br /> */<br /><br />public class Student implements java.io.Serializable {<br /><br />	// Fields<br /><br />	private Long studentid;<br /><br />	private String studentname;<br /><br />	private Set nums = new HashSet(0);<br /><br />	private Set numses = new HashSet(0);<br /><br />	// Constructors<br /><br />	/** default constructor */<br />	public Student() {<br />	}<br /><br />	/** minimal constructor */<br />	public Student(Long studentid) {<br />		this.studentid = studentid;<br />	}<br /><br />	/** full constructor */<br />	public Student(Long studentid, String studentname, Set nums, Set numses) {<br />		this.studentid = studentid;<br />		this.studentname = studentname;<br />		this.nums = nums;<br />		this.numses = numses;<br />	}<br /><br />	// Property accessors<br /><br />	public Long getStudentid() {<br />		return this.studentid;<br />	}<br /><br />	public void setStudentid(Long studentid) {<br />		this.studentid = studentid;<br />	}<br /><br />	public String getStudentname() {<br />		return this.studentname;<br />	}<br /><br />	public void setStudentname(String studentname) {<br />		this.studentname = studentname;<br />	}<br /><br />	public Set getNums() {<br />		return this.nums;<br />	}<br /><br />	public void setNums(Set nums) {<br />		this.nums = nums;<br />	}<br /><br />	public Set getNumses() {<br />		return this.numses;<br />	}<br /><br />	public void setNumses(Set numses) {<br />		this.numses = numses;<br />	}<br /><br />}<br /><br /><br />package po;<br /><br />import java.util.HashSet;<br />import java.util.Set;<br /><br />/**<br /> * Book generated by MyEclipse Persistence Tools<br /> */<br /><br />public class Book implements java.io.Serializable {<br /><br />	// Fields<br /><br />	private Long bookid;<br /><br />	private String bookname;<br /><br />	private Set nums = new HashSet(0);<br /><br />	private Set numses = new HashSet(0);<br /><br />	// Constructors<br /><br />	/** default constructor */<br />	public Book() {<br />	}<br /><br />	/** minimal constructor */<br />	public Book(Long bookid) {<br />		this.bookid = bookid;<br />	}<br /><br />	/** full constructor */<br />	public Book(Long bookid, String bookname, Set nums, Set numses) {<br />		this.bookid = bookid;<br />		this.bookname = bookname;<br />		this.nums = nums;<br />		this.numses = numses;<br />	}<br /><br />	// Property accessors<br /><br />	public Long getBookid() {<br />		return this.bookid;<br />	}<br /><br />	public void setBookid(Long bookid) {<br />		this.bookid = bookid;<br />	}<br /><br />	public String getBookname() {<br />		return this.bookname;<br />	}<br /><br />	public void setBookname(String bookname) {<br />		this.bookname = bookname;<br />	}<br /><br />	public Set getNums() {<br />		return this.nums;<br />	}<br /><br />	public void setNums(Set nums) {<br />		this.nums = nums;<br />	}<br /><br />	public Set getNumses() {<br />		return this.numses;<br />	}<br /><br />	public void setNumses(Set numses) {<br />		this.numses = numses;<br />	}<br /><br />}<br /><br /><br /><br /><br /><br /><br />package po;<br /><br />/**<br /> * Nums generated by MyEclipse Persistence Tools<br /> */<br /><br />public class Nums implements java.io.Serializable {<br /><br />	// Fields<br /><br />	private Long id;<br /><br />	private Book book;<br /><br />	private Student student;<br /><br />	private Long tushuliang;<br /><br />	private Long jieshuliang;<br /><br />	// Constructors<br /><br />	/** default constructor */<br />	public Nums() {<br />	}<br /><br />	/** minimal constructor */<br />	public Nums(Long id) {<br />		this.id = id;<br />	}<br /><br />	/** full constructor */<br />	public Nums(Long id, Book book, Student student, Long tushuliang,<br />			Long jieshuliang) {<br />		this.id = id;<br />		this.book = book;<br />		this.student = student;<br />		this.tushuliang = tushuliang;<br />		this.jieshuliang = jieshuliang;<br />	}<br /><br />	// Property accessors<br /><br />	public Long getId() {<br />		return this.id;<br />	}<br /><br />	public void setId(Long id) {<br />		this.id = id;<br />	}<br /><br />	public Book getBook() {<br />		return this.book;<br />	}<br /><br />	public void setBook(Book book) {<br />		this.book = book;<br />	}<br /><br />	public Student getStudent() {<br />		return this.student;<br />	}<br /><br />	public void setStudent(Student student) {<br />		this.student = student;<br />	}<br /><br />	public Long getTushuliang() {<br />		return this.tushuliang;<br />	}<br /><br />	public void setTushuliang(Long tushuliang) {<br />		this.tushuliang = tushuliang;<br />	}<br /><br />	public Long getJieshuliang() {<br />		return this.jieshuliang;<br />	}<br /><br />	public void setJieshuliang(Long jieshuliang) {<br />		this.jieshuliang = jieshuliang;<br />	}<br /><br />}<br /><span style="font-size: xx-large">第三步：分别写三个数据库中表的字段和PO对象的映射文件：</span>&lt;?xml version="1.0" encoding="utf-8"?><br />&lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><br />&lt;!-- <br />    Mapping file autogenerated by MyEclipse Persistence Tools<br />--><br />&lt;hibernate-mapping><br />    &lt;class name="po.Student" table="STUDENT" schema="SCOTT"><br />        &lt;id name="studentid" type="java.lang.Long"><br />            &lt;column name="STUDENTID" precision="22" scale="0" /><br />            &lt;generator class="assigned" /><br />        &lt;/id><br />        &lt;property name="studentname" type="java.lang.String"><br />            &lt;column name="STUDENTNAME" length="20" /><br />        &lt;/property><br />        &lt;set name="nums" inverse="true"><br />            &lt;key><br />                &lt;column name="STUDENTID" precision="22" scale="0" /><br />            &lt;/key><br />            &lt;one-to-many class="po.Nums" /><br />        &lt;/set><br />        &lt;set name="numses" inverse="true"><br />            &lt;key><br />                &lt;column name="STUDENTID" precision="22" scale="0" /><br />            &lt;/key><br />            &lt;one-to-many class="po.Nums" /><br />        &lt;/set><br />    &lt;/class><br />&lt;/hibernate-mapping><br />&lt;?xml version="1.0" encoding="utf-8"?><br />&lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><br />&lt;!-- <br />    Mapping file autogenerated by MyEclipse Persistence Tools<br />--><br />&lt;hibernate-mapping><br />    &lt;class name="po.Book" table="BOOK" schema="SCOTT"><br />        &lt;id name="bookid" type="java.lang.Long"><br />            &lt;column name="BOOKID" precision="22" scale="0" /><br />            &lt;generator class="assigned" /><br />        &lt;/id><br />        &lt;property name="bookname" type="java.lang.String"><br />            &lt;column name="BOOKNAME" length="20" /><br />        &lt;/property><br />        &lt;set name="nums" inverse="true" cascade="delete"><br />            &lt;key><br />                &lt;column name="BOOKID" precision="22" scale="0" /><br />            &lt;/key><br />            &lt;one-to-many class="po.Nums" /><br />        &lt;/set><br />        &lt;set name="numses" inverse="true"><br />            &lt;key><br />                &lt;column name="BOOKID" precision="22" scale="0" not-null="true" /><br />            &lt;/key><br />            &lt;one-to-many class="po.Nums" /><br />        &lt;/set><br />    &lt;/class><br />&lt;/hibernate-mapping><br /><br /><br /><br /><br /><br /><br /><br />&lt;?xml version="1.0" encoding="utf-8"?><br />&lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><br />&lt;!-- <br />    Mapping file autogenerated by MyEclipse Persistence Tools<br />--><br />&lt;hibernate-mapping><br />    &lt;class name="po.Nums" table="NUMS" schema="SCOTT"><br />        &lt;id name="id" type="java.lang.Long"><br />            &lt;column name="ID" precision="22" scale="0" /><br />            &lt;generator class="assigned" /><br />        &lt;/id><br />        &lt;many-to-one name="book" class="po.Book" fetch="select"><br />            &lt;column name="BOOKID" precision="22" scale="0" /><br />        &lt;/many-to-one><br />        &lt;many-to-one name="student" class="po.Student" fetch="select"><br />            &lt;column name="STUDENTID" precision="22" scale="0" /><br />        &lt;/many-to-one><br />        &lt;property name="tushuliang" type="java.lang.Long"><br />            &lt;column name="TUSHULIANG" precision="22" scale="0" /><br />        &lt;/property><br />        &lt;property name="jieshuliang" type="java.lang.Long"><br />            &lt;column name="JIESHULIANG" precision="22" scale="0" /><br />        &lt;/property><br />    &lt;/class><br />&lt;/hibernate-mapping><br /><span style="font-size: xx-large">第四步：hibernate.cfg.xml文件中把三个映射文件加入，进行调和。</span>&lt;?xml version='1.0' encoding='UTF-8'?><br />&lt;!DOCTYPE hibernate-configuration PUBLIC<br />          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"<br />          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><br /><br />&lt;!-- Generated by MyEclipse Hibernate Tools.                   --><br />&lt;hibernate-configuration><br /><br />	&lt;session-factory><br />		&lt;property name="connection.username">scott&lt;/property><br />		&lt;property name="connection.url"><br />			jdbc:oracle:thin:@localhost:1521:ora<br />		&lt;/property><br />		&lt;property name="dialect"><br />			org.hibernate.dialect.Oracle9Dialect<br />		&lt;/property><br />		&lt;property name="myeclipse.connection.profile">oracle&lt;/property><br />		&lt;property name="connection.password">tiger&lt;/property><br />		&lt;property name="connection.driver_class"><br />			oracle.jdbc.driver.OracleDriver<br />		&lt;/property><br />		&lt;mapping resource="po/Student.hbm.xml" /><br />		&lt;mapping resource="po/Book.hbm.xml" /><br />		&lt;mapping resource="po/Nums.hbm.xml" /><br /><br />	&lt;/session-factory><br /><br />&lt;/hibernate-configuration><br /><br /><br /><br /><br /><br /><span style="font-size: xx-large"><br />最后一步：在Main 方法中测试：</span>import java.util.Iterator;<br />import java.util.Set;<br /><br />import org.hibernate.Session;<br />import org.hibernate.SessionFactory;<br />import org.hibernate.cfg.Configuration;<br /><br />import po.*;<br /><br />public class Test {<br />	public static void main(String[] args) {<br />		Configuration cfg = new Configuration().configure();<br />		SessionFactory sf = cfg.buildSessionFactory();<br />		Session session = sf.openSession();<br />		Nums n = (Nums) session.get(Nums.class, new Long(2));<br />		System.out.println(n.getStudent().getStudentname() + "         "<br />				+ n.getBook().getBookname() + "         " + n.getJieshuliang()<br />				+ "      " + n.getTushuliang());<br />		Student s = (Student) session.get(Student.class, new Long(1));<br />		Set set = s.getNums();<br />		Iterator it = set.iterator();<br />		while (it.hasNext()) {<br />			Nums num=(Nums) it.next() ;<br />			 System.out.println( num.getTushuliang()+"     "+num.getJieshuliang()+"      "+num.getBook().getBookname()+"      "+num.getStudent().getStudentname());<br />		}<br />		System.out.println("*************************");<br />		Set set2 = s.getNumses();<br />		Iterator it2 = set2.iterator();<br />		while (it2.hasNext()) {<br />			System.out.println(it2.next());<br />		}<br />	}<br />}
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/238032" style="color:red;">已有 <strong>1</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 07 Sep 2008 00:18:00 +0800</pubDate>
        <link>http://www.javaeye.com/topic/238032</link>
        <guid>http://www.javaeye.com/topic/238032</guid>
      </item>
      <item>
        <title>数据库连接方法总结</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://doing19852810.javaeye.com">doing19852810</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237852" style="color:red;">http://www.javaeye.com/topic/237852</a>&nbsp;
          发表时间: 2008年09月06日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p style="text-align: center;"><strong><span style="font-size: medium;">自我总结的数据库连接方法</span></strong></p>
<p style="text-align: center;"><strong><span style="font-size: medium;">(以查询全部为例)</span></strong></p>
<p style="text-align: left;"><span style="font-size: x-small;"><strong>一、传统连接</strong></span></p>
<p style="text-align: left;"><strong></strong></p>
<p style="text-align: left;"><span style="font-size: x-small;"><span style="color: #ff0000;"><strong>1.类</strong>DBConnection ，用于得到Connection 对象</span></span></p>
<p style="text-align: left;">public class DBConnection {<br />&nbsp;private final String DBDRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver" ;<br />&nbsp;private final String DBURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JSP" ;<br />&nbsp;private final String DBUSER = "sa" ;<br />&nbsp;private final String DBPASSWORD = "123456" ;<br />&nbsp;private Connection conn = null ;<br />&nbsp;<br />&nbsp;public DBConnection()<br />&nbsp;{<br />&nbsp;&nbsp;try<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;">Class.forName(DBDRIVER) ;<br />&nbsp;&nbsp;&nbsp;this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;&nbsp;<br /></span>&nbsp;&nbsp;}<br />&nbsp;&nbsp;catch (Exception e)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;}<br />&nbsp;}</p>
<p style="text-align: left;">&nbsp;// 取得数据库连接<br />&nbsp;public Connection getConnection()<br />&nbsp;{<br />&nbsp;&nbsp;return this.conn ;<br />&nbsp;}</p>
<p style="text-align: left;">&nbsp;// 关闭数据库连接<br />&nbsp;public void close()<br />&nbsp;{<br />&nbsp;&nbsp;try<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.conn.close() ;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;catch (Exception e)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;}</p>
<p style="text-align: left;">}<br /><span style="color: #ff0000;">2.查询全部的代码</span></p>
<p style="text-align: left;">public List queryAll() throws Exception {<br />&nbsp;&nbsp;// TODO Auto-generated method stub<br />&nbsp;&nbsp;List all = new ArrayList() ;<br />&nbsp;&nbsp;String sql = "SELECT id,title,author,content FROM note" ;<br />&nbsp;&nbsp;PreparedStatement pstmt = null ;<br />&nbsp;&nbsp;DBConnection dbc = null ;<br />&nbsp;&nbsp;dbc = new DBConnection() ;<br />&nbsp;&nbsp;try<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;pstmt = dbc.getConnection().prepareStatement(sql) ;<br />&nbsp;&nbsp;&nbsp;ResultSet rs = pstmt.executeQuery() ;<br />&nbsp;&nbsp;&nbsp;while(rs.next())<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;Note note = new Note() ;<br />&nbsp;&nbsp;&nbsp;&nbsp;note.setId(rs.getInt(1)) ;<br />&nbsp;&nbsp;&nbsp;&nbsp;note.setTitle(rs.getString(2)) ;<br />&nbsp;&nbsp;&nbsp;&nbsp;note.setAuthor(rs.getString(3)) ;<br />&nbsp;&nbsp;&nbsp;&nbsp;note.setContent(rs.getString(4)) ;<br />&nbsp;&nbsp;&nbsp;&nbsp;all.add(note) ;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;rs.close() ;<br />&nbsp;&nbsp;&nbsp;pstmt.close() ;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;catch (Exception e)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;System.out.println(e) ;<br />&nbsp;&nbsp;&nbsp;throw new Exception("操作中出现错误！！！") ;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;finally<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;dbc.close() ;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return all ;</p>
<p style="text-align: left;">&nbsp;}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: left;"><span style="font-size: x-small;"><strong>二、采用数据源连接</strong></span></p>
<p style="text-align: left;"><span style="font-size: x-small;"><span style="color: #ff0000;"><strong>1.类</strong>DBConnection ，用于得到Connection 对象</span></span></p>
<p><span style="font-size: x-small;">
<p style="text-align: left;">public class DBConnection {<br />&nbsp;<br />&nbsp;private Connection conn = null ;<br />&nbsp;<br />&nbsp;public DBConnection()<br />&nbsp;{<br />&nbsp;&nbsp;try<br />&nbsp;&nbsp;{</p>
<p style="text-align: left;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;"> Context initContext=new InitialContext();</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context context=(Context)initContext.lookup("java:/comp/env");</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSource ds=(Context)context.lookup("jdbc/sqlds");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.conn = ds.getConnection();&nbsp;<br /></span>&nbsp;&nbsp;}<br />&nbsp;&nbsp;catch (Exception e)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;}<br />&nbsp;}</p>
<p>
<p style="text-align: left;">&nbsp;// 取得数据库连接<br />&nbsp;public Connection getConnection()<br />&nbsp;{<br />&nbsp;&nbsp;return this.conn ;<br />&nbsp;}</p>
<p style="text-align: left;">&nbsp;// 关闭数据库连接<br />&nbsp;public void close()<br />&nbsp;{<br />&nbsp;&nbsp;try<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.conn.close() ;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;catch (Exception e)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;}</p>
</p>
<p style="text-align: left;">}<br /><span style="color: #ff0000;">2.查询全部的代码(同&ldquo;一&rdquo;中)</span></p>
<p style="text-align: left;">&nbsp;</p>
<p><span style="color: #ff0000;">
<p style="text-align: left;"><strong><span style="color: #000000;">三、采用Commons-DbUtils组件(不应用数据源)</span></strong></p>
<p style="text-align: left;"><strong></strong>&nbsp;</p>
<p><span style="font-size: x-small;"><span style="color: #ff0000;">
<p style="text-align: left;"><span style="color: #000000;">public class DBConnection {<br />&nbsp;private final String DBDRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver" ;<br />&nbsp;private final String DBURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JSP" ;<br />&nbsp;private final String DBUSER = "sa" ;<br />&nbsp;private final String DBPASSWORD = "123456" ;<br />&nbsp;private Connection conn = null ;<br />&nbsp;<br />&nbsp;public DBConnection()<br />&nbsp;{<br />&nbsp;&nbsp;try<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #ff0000;">DbUtils.loadDriver(DBDRIVER )&nbsp;;</span></p>
<p style="text-align: left;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp; this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;&nbsp;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;catch (Exception e)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;}<br />&nbsp;}</span></p>
<font size="2"><font color="#ff0000">
<p>
<p style="text-align: left;"><span style="color: #000000;">&nbsp;// 取得数据库连接<br />&nbsp;public Connection getConnection()<br />&nbsp;{<br />&nbsp;&nbsp;return this.conn ;<br />&nbsp;}</span></p>
<p style="text-align: left;"><span style="color: #000000;">&nbsp;&nbsp;}</span></p>
<p style="text-align: left;"><span style="color: #000000;">}</span></p>
<p style="text-align: left;">&nbsp;</p>
</p>
</font></font></span><font size="2">
<p>
<p style="text-align: left;">&nbsp;</p>
</p>
</font></span>
<p>
<p style="text-align: left;">&nbsp;</p>
</p>
</p>
<p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><span style="font-size: x-small;"><span style="color: #ff0000;">2.查询全部的代码</span></span></p>
</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><span style="color: #000000;">public List queryAll() throws Exception {<br />&nbsp;&nbsp;// TODO Auto-generated method stub<br />&nbsp;&nbsp;List all = new ArrayList() ;<br />&nbsp;&nbsp;String sql = "SELECT id,title,author,content FROM note" ;<br /><br />&nbsp; DBConnection&nbsp;dbc = new DBConnection() ;</span></p>
<p style="text-align: left;"><span style="color: #000000;">&nbsp; Connection conn=dbc.getConnection();</span></p>
<p style="text-align: left;"><span style="color: #000000;">&nbsp;&nbsp;QueryRunner qr=new QueryRunner();</span></p>
<p style="text-align: left;"><span style="color: #000000;">&nbsp; all=(List)qr.query(conn,sql,new BeanListHandler(Note.class));<br /><br />&nbsp;&nbsp;return all ;</span></p>
<p style="text-align: left;"><span style="color: #000000;">&nbsp;}</span></p>
<p style="text-align: left;">&nbsp;</p>
<p>
<p style="text-align: left;">&nbsp;</p>
</p>
<font color="#ff0000">
<p>&nbsp;</p>
</font></span></p>
<p>&nbsp;</p>
<p style="text-align: left;"><strong>四、采用Commons-DbUtils组件(应用数据源)</strong></p>
<p style="text-align: left;"><strong></strong></p>
<p style="text-align: left;"><span style="font-size: x-small;"><span style="color: #ff0000;"><strong>1.类</strong>DBDataSource ，用于得到DataSource 对象</span></span></p>
<p><span style="font-size: x-small;">
<p style="text-align: left;">public class DBDataSource {<br /><br />&nbsp;private <span style="color: #0000ff;">DataSource ds</span> = null ;<br />&nbsp;<br />&nbsp;public DBDataSource()<br />&nbsp;{<br />&nbsp;</p>
<p style="text-align: left;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;"> Context initContext=new InitialContext();</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context context=(Context)initContext.lookup("java:/comp/env");</span></p>
<p>&nbsp;</p>
<p style="text-align: left;"><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ds=(Context)context.lookup("jdbc/sqlds");<br />&nbsp;&nbsp;</span>&nbsp;}</p>
<p>&nbsp;</p>
<p style="text-align: left;">&nbsp;// 取得数据源</p>
<p style="text-align: left;">&nbsp;public DataSource getDataSource()<br />&nbsp;{<br />&nbsp;&nbsp;return this.ds ;<br />&nbsp;}</p>
<p>&nbsp;</p>
<p style="text-align: left;">}</p>
<p style="text-align: left;"><span style="color: #ff0000;">2.查询全部的代码</span></p>
<p style="text-align: left;">public List queryAll() throws Exception {<br />&nbsp;&nbsp;// TODO Auto-generated method stub<br />&nbsp;&nbsp;List all = new ArrayList() ;<br />&nbsp;&nbsp;String sql = "SELECT id,title,author,content FROM note" ;<br /><br /><span style="color: #0000ff;">&nbsp; DBDataSource&nbsp;dbc = new DBDataSource() ;</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">&nbsp; DataSource ds=dbc.getDataSource();</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">&nbsp;&nbsp;QueryRunner qr=new QueryRunner(ds);</span></p>
<p style="text-align: left;"><span style="color: #0000ff;">&nbsp; all=(List)qr.query(sql,new BeanListHandler(Note.class));</span><br /><br />&nbsp;&nbsp;return all ;</p>
<p style="text-align: left;">&nbsp;}</p>
<p style="text-align: left;">&nbsp;</p>
</span></p>
<p style="text-align: left;"><strong></strong></p>
</span></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237852" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 06 Sep 2008 11:09:25 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237852</link>
        <guid>http://www.javaeye.com/topic/237852</guid>
      </item>
      <item>
        <title>我要成长</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://programming.javaeye.com">programming</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/238041" style="color:red;">http://www.javaeye.com/topic/238041</a>&nbsp;
          发表时间: 2008年09月07日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          开发也有一些时间,发现在我们开发当中有这种现象(工作态度没有刚出来的那种激情,总是在偏面的借口去做事情,工作态度不好,总说这里不好,那里不好,为什么不在自身找原因呢?又有几个真正了解自己,)当然这个现象也不能全怪其人本身,大多数原因是由环境所影响.在中国很难做好,环境,素质,牛A和牛A  在中国软件开发当中,一个组里面只能出现一个牛A,哎.....就由如.......
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/238041" style="color:red;">已有 <strong>1</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 07 Sep 2008 01:27:34 +0800</pubDate>
        <link>http://www.javaeye.com/topic/238041</link>
        <guid>http://www.javaeye.com/topic/238041</guid>
      </item>
      <item>
        <title>一对多/多对一双向关联</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://694415514-qq-com.javaeye.com">尧舜大帝</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237320" style="color:red;">http://www.javaeye.com/topic/237320</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          第一步：在数据库里建两张表，例如：一张表名是CLASS 有STUDENTCLASSID,STUDENTCLASSNAME,另一张表名是STUDENT 有 STUDENTID,STUDENTCLASSID,STUDENTNAME,<br />第二步：创建两个PO对象，Class ,Student.<br />package po;<br /><br />import java.util.Set;<br /><br />public class Class {<br />	private  int studentclassid;<br />	private String studentclassname;<br />	private Set student;<br />	public Set getStudent() {<br />		return student;<br />	}<br />	public void setStudent(Set student) {<br />		this.student = student;<br />	}<br />	public int getStudentclassid() {<br />		return studentclassid;<br />	}<br />	public void setStudentclassid(int studentclassid) {<br />		this.studentclassid = studentclassid;<br />	}<br />	public String getStudentclassname() {<br />		return studentclassname;<br />	}<br />	public void setStudentclassname(String studentclassname) {<br />		this.studentclassname = studentclassname;<br />	}<br />}<br /><br /><br /><br /><br /><br /><br /><br />package po;<br /><br />public class Student {<br />	private int studentid;<br />	private String studentname;<br />	private int studentclassid;<br />	private Class clases;<br />	public int getStudentclassid() {<br />		return studentclassid;<br />	}<br />	public void setStudentclassid(int studentclassid) {<br />		this.studentclassid = studentclassid;<br />	}<br />	public int getStudentid() {<br />		return studentid;<br />	}<br />	public void setStudentid(int studentid) {<br />		this.studentid = studentid;<br />	}<br />	public String getStudentname() {<br />		return studentname;<br />	}<br />	public void setStudentname(String studentname) {<br />		this.studentname = studentname;<br />	}<br />	public Class getClases() {<br />		return clases;<br />	}<br />	public void setClases(Class clases) {<br />		this.clases = clases;<br />	}<br />}<br />  <br /><span style="font-size: large">[size=xx-small]<span style="color: black"><br />第三步：创建两个映射文件，分别对应两个表；<br />注意了：两个映射文件的Set属性，和Class属性 之间也有关联；<br />通过两个表间共有的东西去关联的！即STUDENTCLASSID<br />&lt;set name="student" inverse="true" ><br />			&lt;key><br />				&lt;column name="STUDENTCLASSID">&lt;/column><br />			&lt;/key><br />			&lt;one-to-many class="po.Student" /><br />		&lt;/set><br />&lt;many-to-one name="clases" class="po.Class" fetch="select"<br />			insert="false" update="false"><br />			&lt;column name="STUDENTCLASSID">&lt;/column><br />		&lt;/many-to-one></span></span>第四步：把Class.hbm.xml 和 Student.hbm.xml 加入到hibernate-cfg.xml文件中&lt;mapping resource="po/Class.hbm.xml">&lt;/mapping><br />&lt;mapping resource="po/Student.hbm.xml">&lt;/mapping>[/size]第五步：测试学生的班级的名称和某个班级的学生分别是谁？<br />首相import  po.Student ,Student stu=(Student)get (Student.class,new Integer(1));<br />	System.out.println(student.getClases().getStudentclassname());先得到学生的班级属性，然后班级属性还有班级名称属性；<br /><br /><br />获得班级的学生人数属性<br />通过Set.iterator()把Set里的内容全部迭代出来返回值是Student类型的，<br />Class clases=(Class) session.get(Class.class, new Integer(3));<br />	 	Set set =clases.getStudent();<br />	 	Iterator it= set.iterator();<br />	 	while (it.hasNext()){<br />	 		Student stu=(Student)it.next();<br />	 		System.out.println(stu.getStudentname());<br />	 	}<br />源代码：import java.util.Iterator;<br />import java.util.Set;<br /><br />import org.hibernate.Session;<br />import org.hibernate.Transaction;<br /><br />import po.Student;<br />import po.Class;<br />public class Test {<br /><br /> <br />	public static void main(String[] args) {<br />		HibernateTools tool = new HibernateTools();<br />		Session session = tool.getSession();<br />		Transaction traa = session.beginTransaction();<br />		traa.begin();<br />		 Student student = (Student) session.get(Student.class, new Integer(1));<br />	 	System.out.println(student.getClases().getStudentclassname());<br />	 	Class clases=(Class) session.get(Class.class, new Integer(3));<br />	 	Set set =clases.getStudent();<br />	 	Iterator it= set.iterator();<br />	 	while (it.hasNext()){<br />	 		Student stu=(Student)it.next();<br />	 		System.out.println(stu.getStudentname());<br />	 	}<br />		 <br />	}<br />}
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237320" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 10:18:13 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237320</link>
        <guid>http://www.javaeye.com/topic/237320</guid>
      </item>
      <item>
        <title>外键+主键</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://694415514-qq-com.javaeye.com">尧舜大帝</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/238035" style="color:red;">http://www.javaeye.com/topic/238035</a>&nbsp;
          发表时间: 2008年09月07日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          例如三张表。STUDENT,BOOK,NUMS<br />STUDENTID,BOOKID 都要设成主键<br />NUMS中的STUDENTID,BOOKID 要设成外键，与STUDENT ,BOOK 联系产生关系<br />还要在NUMS 的ID字段设置为主键；<br />“多”的一方要设置外键和主键。<br />“一”的一方要设置主键；
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/238035" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 07 Sep 2008 00:34:24 +0800</pubDate>
        <link>http://www.javaeye.com/topic/238035</link>
        <guid>http://www.javaeye.com/topic/238035</guid>
      </item>
      <item>
        <title>创建Java3D程序步骤</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://niceo.javaeye.com">niceo</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/238002" style="color:red;">http://www.javaeye.com/topic/238002</a>&nbsp;
          发表时间: 2008年09月06日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">

前一段时间做了一个有关于3D方面的项目。
真是的发现Java3D方面的资料并不是想象中的那样多，而且大部分都是前辈们在很久以前写的code

还好找了几个测试代码，和当前的jdk版本兼容性还可以的。
可是在Swing、Awt和Java3D 整合是那可是把我累坏啦！！
忙了还几天将就这整合在一起啦！
可是Canvas3D并不像我们想像中的Canvas一样啊？
那个困难的进啊!就不细说啦！
这里给大家介绍一下Java3D开发的步骤。
当让这行经验并不是我一个人总结出来的，那都是前辈们的血汗啊！大家要好好的学习啊！
</pre><br />--------------------------------------------------------------------------------------<br />JAVA3D的 一般步骤<br />1.获得面版<br />      ----- 这方面和Java进行Swing、Awt和2D开发一样是最为重要的一步。<br /><pre name="code" class="java">
    Container contentPane = getContentPane();
    contentPane.setLayout(new BorderLayout());
/*这一步也可以这样写:(前提:你的类继承JApplet或者JFrame,一般都会这样)
this.setLayout(new BorderLayout());//sun公司规范教材是这样的
*/
</pre><br />2.生成画布<br />    ------Java3D 一定要有自己的场景。<br /><pre name="code" class="java">
/*   一下也可以这样:
      GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration();
      Canvas3D canvas=new Canvas3D(config);
      this.add("Center",canvas);
*/
    Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration);
    contentPane.add("Center",canvas);//Center字符或其它方位字符是不能拼写错误,千万不要以为是个简单的字符窜
</pre><br />3.创建虚拟Universe<br /><pre name="code" class="java">
 SimpleUniverse universe = new SimpleUniverse(canvas);
 universe.setJ3DThreadPriority(Thread.NORM_PRIORITY);
</pre><br />4.获得视点对象<br /><pre name="code" class="java">
  ViewingPlatform. viewingPlatform. = universe.getViewingPlatform();
    TransformGroup vpTransGroup = viewingPlatform.getViewPlatformTransform();
    Viewer viewer = universe.getViewer();
    View view = viewer.getView();
</pre><br />5.创建一个节点<br /><pre name="code" class="java">
    BranchGroup sceneRoot = new BranchGroup();
    sceneRoot.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND);
    examineGroup = new TransformGroup();
    examineGroup.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND);
    examineGroup.setCapability(TransformGroup.ALLOW_CHILDREN_READ);
    examineGroup.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE);
    examineGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
    examineGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    examineGroup.setCapability(TransformGroup.ALLOW_LOCAL_TO_VWORLD_READ);
    sceneRoot.addChild(examineGroup);
/*一般这一步许多人更愿意写在一个方法之中:
BranchGroup sceneRoot=CreateBranchGroup()
sceneRoot.compile();
CreateBranchGroup方法大致这样写
      BranchGroup CreateBranchGroup(){
                  BranchGroup Root=new BranchGroup();
                  ...............
                  return Root;
}*/
</pre><br />6.行为作用范围(其实就是边界限制)<br /><pre name="code" class="java">
 BoundingSphere behaviorBounds = new BoundingSphere(new Point3d(),
            Double.MAX_VALUE);
</pre><br />7.鼠标作用<br /><pre name="code" class="java">
 //旋转
        MouseRotate mr = new MouseRotate();
        mr.setTransformGroup(examineGroup);
        mr.setSchedulingBounds(behaviorBounds);
        sceneRoot.addChild(mr);
       /*或者可以这样写:
         MouseRotate mr=new MouseRotate(examineGroup);//常用这个构造函数较多
         mr.setSchedulingBounds(behaviorBounds);
         sceneRoot.addChild(mr);
         //以下同样
      */
 
        //平移
        MouseTranslate mt = new MouseTranslate();
        mt.setTransformGroup(examineGroup);
        mt.setSchedulingBounds(behaviorBounds);
        sceneRoot.addChild(mt);
        //缩放
        MouseZoom mz = new MouseZoom();
        mz.setTransformGroup(examineGroup);
        mz.setSchedulingBounds(behaviorBounds);
        sceneRoot.addChild(mz);
</pre><br />8.将根节点加入虚拟世界<br /><pre name="code" class="java">
universe.addBranchGraph(sceneRoot); 
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/238002" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 06 Sep 2008 20:47:20 +0800</pubDate>
        <link>http://www.javaeye.com/topic/238002</link>
        <guid>http://www.javaeye.com/topic/238002</guid>
      </item>
      <item>
        <title>org/apache/commons/pool/impl/GenericObjectPool 解决</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ethip.javaeye.com">Ethip</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237119" style="color:red;">http://www.javaeye.com/topic/237119</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          整合Spring、Hibernate、Struts好几次了，反反复复的new Web Project，一直发生这个错误，以为是导入的包有冲突...现在才找到原因。<br />呵呵，搞得上个项目中没有使用Spring。<br /><br />今天下午再继续整合时，才在网上找到症结所在。<br /><br />本文小结参考：<br /><a href="http://www.blogjava.net/lusm/archive/2007/09/28/149363.html" target="_blank">http://www.blogjava.net/lusm/archive/2007/09/28/149363.html</a><br /><br /><br />每次在整合了Spring和Hibernate后，就做了下小测试，发现总是读取spring的配置文件时错误。<br /><br />MyEclipse6.0控制台下的错误提示：<br />Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool<br />Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool<br />	at java.lang.Class.getDeclaredConstructors0(Native Method)<br />	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)<br />	at java.lang.Class.getConstructor0(Class.java:2671)<br />	at java.lang.Class.getDeclaredConstructor(Class.java:1953)<br />	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:54)<br />	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:752)<br />	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:717)<br />	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:386)<br />	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)<br />	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)<br />	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)<br />	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)<br />	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)<br />	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)<br />	at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init>(ClassPathXmlApplicationContext.java:122)<br />	at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init>(ClassPathXmlApplicationContext.java:66)<br />	at org.ethip.fundsystem.test.Test.main(Test.java:8)<br /><br /><span style="color: red">简要分析：</span><br /><br />1.MyEclipse在建立SessionFactory的时候，缺少一个包 commons-pool-1.3.jar<br />工程中少了org/apache/commons/pool/impl/GenericObjectPool 所在的包<br />下载链接：http://mirrors.ibiblio.org/pub/mirrors/maven2/commons-pool/commons-pool/1.3/commons-pool-1.3.jar (或见附件)<br /><br />2.如果加入该包之后还出现问题，请检查你的数据库驱动包是否配置正确(由于是通过MyEclipse配置的，我这里没有出现这个错误)<br /><br /><span style="color: red">解决方法：</span><br />当然是在项目中导入commons-pool-1.3.jar了.<br /><br />如果你的工程中已经有了这个包，请检查你的tomcat和jre中是否有这个包，<br />有的话删除掉，以免因为重复而出现错误。
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237119" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 17:55:06 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237119</link>
        <guid>http://www.javaeye.com/topic/237119</guid>
      </item>
      <item>
        <title>java获得系统信息</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://shsoftit.javaeye.com">shsoftit</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237575" style="color:red;">http://www.javaeye.com/topic/237575</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>import &nbsp; java.util.*; &nbsp; <br />&nbsp; public &nbsp; class &nbsp; listsystem{ &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; public &nbsp; static &nbsp; void &nbsp; main(String &nbsp; args[]){ &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; Properties &nbsp; prop &nbsp; = &nbsp; System.getProperties(); &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; // &nbsp; 获取用户名 &nbsp; <br />&nbsp; System.out.println("\n当前用户名:"+prop.getProperty("user.name")); &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; // &nbsp; 获取操作系统 &nbsp; <br />&nbsp; System.out.println("\n当前系统:"+prop.getProperty("os.name")); &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; // &nbsp; 获取所有信息 &nbsp; <br />&nbsp; //System.getProperties().list(System.out); &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; } &nbsp; <br />&nbsp; }</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237575" style="color:red;">已有 <strong>3</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 14:04:19 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237575</link>
        <guid>http://www.javaeye.com/topic/237575</guid>
      </item>
      <item>
        <title>sitemesh无法装饰freemarker文件</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bellice.javaeye.com">BellIce</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237903" style="color:red;">http://www.javaeye.com/topic/237903</a>&nbsp;
          发表时间: 2008年09月06日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          如题：<br />我的配置文件 <br /><strong>web.xml</strong><br />  &lt;filter><br />    &lt;filter-name>UrlRewriteFilter&lt;/filter-name><br />    &lt;filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter&lt;/filter-class><br />  &lt;/filter>  <br />  &lt;filter><br />    &lt;filter-name>CharacterEncodingFilter&lt;/filter-name><br />    &lt;filter-class>org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class><br />    &lt;init-param><br />      &lt;param-name>encoding&lt;/param-name><br />      &lt;param-value>UTF-8&lt;/param-value><br />    &lt;/init-param><br />    &lt;init-param><br />      &lt;param-name>forceEncoding&lt;/param-name><br />      &lt;param-value>true&lt;/param-value><br />    &lt;/init-param><br />  &lt;/filter><br />  &lt;filter><br />  	&lt;filter-name>struts-cleanup&lt;/filter-name><br />  	&lt;filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp&lt;/filter-class><br />  &lt;/filter><br />  &lt;filter><br />	&lt;filter-name>sitemesh&lt;/filter-name><br />	&lt;filter-class>org.apache.struts2.sitemesh.FreeMarkerPageFilter&lt;/filter-class><br />  &lt;/filter><br />  &lt;filter><br />    &lt;filter-name>Struts2&lt;/filter-name><br />    &lt;filter-class>org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class><br />  &lt;/filter><br />  <br />  &lt;filter-mapping><br />    &lt;filter-name>UrlRewriteFilter&lt;/filter-name><br />    &lt;url-pattern>/*&lt;/url-pattern><br />  &lt;/filter-mapping><br />  &lt;filter-mapping><br />    &lt;filter-name>CharacterEncodingFilter&lt;/filter-name><br />    &lt;url-pattern>/*&lt;/url-pattern><br />  &lt;/filter-mapping><br />  &lt;filter-mapping><br />    &lt;filter-name>struts-cleanup&lt;/filter-name><br />    &lt;url-pattern>/*&lt;/url-pattern><br />  &lt;/filter-mapping><br />  &lt;filter-mapping><br />	&lt;filter-name>sitemesh&lt;/filter-name><br />	&lt;url-pattern>/*&lt;/url-pattern><br />  &lt;/filter-mapping>  <br />  &lt;filter-mapping><br />    &lt;filter-name>Struts2&lt;/filter-name><br />    &lt;url-pattern>*.do&lt;/url-pattern><br />    &lt;dispatcher>REQUEST&lt;/dispatcher><br />    &lt;dispatcher>FORWARD&lt;/dispatcher><br />  &lt;/filter-mapping><br />  &lt;filter-mapping><br />    &lt;filter-name>Struts2&lt;/filter-name><br />    &lt;url-pattern>*.jsp&lt;/url-pattern><br />    &lt;dispatcher>REQUEST&lt;/dispatcher><br />    &lt;dispatcher>FORWARD&lt;/dispatcher><br />  &lt;/filter-mapping><br /><strong>decorators.xml</strong><br />&lt;?xml version="1.0" encoding="utf-8"?><br />&lt;decorators defaultdir="/WEB-INF/decorators"><br />    &lt;excludes>   <br />   	    &lt;pattern>/admin/*&lt;/pattern>   <br />	    &lt;pattern>/admin*.do*&lt;/pattern>   <br />	    &lt;pattern>/FCKeditor/*&lt;/pattern><br />	&lt;/excludes>  <br />	&lt;decorator name="main" page="main.dec"><br />		&lt;pattern>/*&lt;/pattern><br />	&lt;/decorator><br /><br />&lt;/decorators><br /><br />开始我写的action跳转的页面无法装饰，然后我写了个test.jsp页面测试，<br />比如我工程下面有一个test.jsp文件，当我http://localhost:8080/test.jsp的时候能成功装饰，但是改成test.ftl然后用http://localhost:8080/test.ftl的时候不能成功装饰。不知道什么原因？所有配置觉得都是正确的。<br />PS:框架是struts2.0+spring+hibernate
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237903" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 06 Sep 2008 15:24:40 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237903</link>
        <guid>http://www.javaeye.com/topic/237903</guid>
      </item>
      <item>
        <title> 像youtube之类的视频网站的11位随机id是如何生成的？</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://inosin.javaeye.com">inosin</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237614" style="color:red;">http://www.javaeye.com/topic/237614</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          国内很多视频网站也都是用这种id<br />想了解一下是如何产生的能够确保它的唯一性？
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237614" style="color:red;">已有 <strong>4</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 15:02:53 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237614</link>
        <guid>http://www.javaeye.com/topic/237614</guid>
      </item>
      <item>
        <title>判断double大小</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yuyue.javaeye.com">yuyue</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237794" style="color:red;">http://www.javaeye.com/topic/237794</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">/**
	 * 把两个字符类型的参数，转换成double类型进行比较。
	 * 因为，double类型的精度问题，所以，用程序实现。
	 * @param a 传入的参数a
	 * @param b 传入的参数b
	 * @return　a>b return 1 
	 *          a=b return 0  
	 *          a&lt;b return -1 
	 */
	public int compareDouble(String a, String b){
		
		/*第一步比较两个数正负,两种方案，第一种，转换成double类型后与0相比。
		 * 							　第二种，截取字符前是否有"-"
		 * 使用第一种方案
		 */
		double a_double = Double.valueOf(a);
		double b_double = Double.valueOf(b);
		 if(!a.contains(".")){
			a+=".0";
		} if(!b.contains(".")){
			b+=".0";
		}
		if(a_double > 0 && b_double &lt; 0){
			return 1;
		}else if(a_double &lt; 0 && b_double > 0){
			return -1;
		} 
		/*同时为正数的情况比较*/
		else if(a_double >＝ 0 && b_double>＝0){
	        //先比较整数，在比较小数 
			String a_integer = a.split("\\.")[0];
			String a_float = a.split("\\.")[1];
			String b_integer = b.split("\\.")[0];
			String b_float = a.split("\\.")[1];
			
			int integer_a_result = compareEveryData(a_integer,b_integer);
			//只有当结果为0的时候才比较小数
			if(integer_a_result==0){
				int float_a_result = compareEveryData(a_float,b_float);
				return float_a_result;
			}else{
				return integer_a_result;
			}
			    
		}
		
		
		/*同时为负数的情况比较*/
		
		else{
			
			 //先比较整数，在比较小数 
			String a_integer = a.split("\\.")[0];
			String a_float = a.split("\\.")[1];
			String b_integer = b.split("\\.")[0];
			String b_float = a.split("\\.")[1];
			
			int integer_a_result = compareEveryData(a_integer,b_integer);
			//只有当结果为0的时候才比较小数
			if(integer_a_result==0){
				int float_a_result = compareEveryData(a_float,b_float);
				return -float_a_result;
			}else{
				return -integer_a_result;
			}
			    
		}
		
	}
	/**
	 * 比较两个数的大小，不区分正负,不区分小数
	 * @param dataOne
	 * @param dataTwo
	 * @return dataOne > dataTwo return true else return false;
	 */
	public int compareEveryData(String dataOne, String dataTwo){
		 if(dataOne == null && dataTwo == null){
			 return 0;
		 }else if(dataOne == null && dataTwo != null ){
			 return -1;
		 }else if(dataOne != null && dataTwo == null){
			 return 1;
		 }
		 else if(dataOne.length()>dataTwo.length()){
			 return 1;
		 }else if (dataOne.length() &lt; dataTwo.length())
		 {
			 return -1;
		 }else{
			 for(int i = 0 ; i&lt; dataOne.length() ; i++){
				 int a_temp = dataOne.charAt(i);
				 int b_temp = dataTwo.charAt(i);
				 
				 if(a_temp>b_temp){
					 return 1;
				 }else if(a_temp &lt; b_temp){
					 return -1;
				 }
				 
			 }
			 return 0;
		 } 
	}</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237794" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 22:49:16 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237794</link>
        <guid>http://www.javaeye.com/topic/237794</guid>
      </item>
      <item>
        <title>大家得struts2项目如何仿制sql注入得？</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://goinglw.javaeye.com">goinglw</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237197" style="color:red;">http://www.javaeye.com/topic/237197</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          公司得一个网站使用struts2做的，没有使用其他框架，最近发现sql server库中被别人新建了表。<br />不知道大家对这个有什么好的建议吗？<br />我的想法是用一个全局拦截器，拦截所有get，post请求，判断请求中是否有非法字符出现，如果有的话，就跳转到某个页面，不知道这个方法是否可行。如果可行的话请问我应该如何取得post，get方法得内容？<br />或者大家有更好得办法吗？
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237197" style="color:red;">已有 <strong>7</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 22:12:57 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237197</link>
        <guid>http://www.javaeye.com/topic/237197</guid>
      </item>
      <item>
        <title>关于数据库的varchar长度的问题?</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zjumty.javaeye.com">zjumty</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237709" style="color:red;">http://www.javaeye.com/topic/237709</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我看到有些人在建表的时候把varchar长度设置为255, 有些人设置为256. <br />理论上来说, 哪种好一些?
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237709" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 17:01:29 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237709</link>
        <guid>http://www.javaeye.com/topic/237709</guid>
      </item>
      <item>
        <title>有关超类型和子类型编程的设计模式问题</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhangcheng.javaeye.com">zhangcheng</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/235585" style="color:red;">http://www.javaeye.com/topic/235585</a>&nbsp;
          发表时间: 2008年09月02日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在我的程序中，需要多次的重复如下的操作，我有一个超类型，这个超类型有多个子类型（继承关系），在程序实现的过程中，我可是用过某种方法得到超类型（实际上是某种子类型，但是只有返回超类型的返回值的方法），这个时候我要判断这个超类型的具体类型的时候，就要做多次的instanceof判断，我觉得这个比较麻烦，请问有没有更好的方法，或者是不是有这样的设计模式来解决这个问题的。谢谢。
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/235585" style="color:red;">已有 <strong>11</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 02 Sep 2008 09:14:53 +0800</pubDate>
        <link>http://www.javaeye.com/topic/235585</link>
        <guid>http://www.javaeye.com/topic/235585</guid>
      </item>
      <item>
        <title>理性对待目前的Java Framework</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ghostsun.javaeye.com">ghostsun</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237471" style="color:red;">http://www.javaeye.com/topic/237471</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          关于这篇文章，比较赞同楼主的观点。<br />我想楼主提出的观点是理性的对待java framework。<br />在实际工作中发现很多为了framework 而 framework的例子。<br />我说一个例子，这个例子中的开发经理，号称7年经验，在项目中用了，spring，hibernate，等n多的框架，什么流行就用什么，结果发现最后不同模块使用的技术不同，根本没法维护。另外就是开发人员学习成本高，项目一再延期，并且都关注在技术上了，对业务的关注不够，导致最终项目上线后，bug层出，现在bug改了有一年了，还在改呢，呵呵。。。<br /><br />其实我个人很赞同楼主观点的，在一般的项目中技术和所谓的框架并不是起到主导作用的。而且对业务的分析和设计才是最主要的。类，方法，是否能重用，是从业务和设计角度来做的，并不是框架能够做的，一个框架可以简化某些工作，但不能决不是你用了框架就面向对象了，就AOP了。看那些biz层一个接口对应一个实现，做这种设计的人，请问你如何保证接口的稳定性？面向对象不是框架，不是生硬的去套用模式，而且真正从业务和系统的角度去分析和解决问题的一种方法。同样，设计模式滥用也一样会造成拖累而且繁琐的代码。<br /><br />个人觉得，真正的技术是如果分析和解决现实中的问题，而不是你用了多少种框架，呵呵。。。
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237471" style="color:red;">已有 <strong>1</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 11:53:19 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237471</link>
        <guid>http://www.javaeye.com/topic/237471</guid>
      </item>
      <item>
        <title>java初学者到精通需要掌握的知识</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wsjwsj.javaeye.com">wsjwsj</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237469" style="color:red;">http://www.javaeye.com/topic/237469</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一、学习DreamWaveMX中文版的网页设计技术。<br />HTML网页设计，这是最基本的。学习XML的一些基本知识。初步掌握一些JSCRIPT的应用。<br /><br />二、学习JAVA语言。<br />学习Java语言的第一步是安装好JDK，JDK的环境变量的配置，至于如何配置JDK的环境变量，网上关于这样的文章很多，你可以搜索一下，这里就不多说。配置好环境变量以后，写一个Hello World的小程序测试一下JDK是否已安装成功。<br /><br />环境变量配置成功以后就可以着手学习Java的语法了，先找一本系统的java程序设计的书，开始最好不要用eclipse等之类的高度集成的IDE环境，用文本编辑器配合JDK就行了，这样助你理解下列几个基础概念：path，class_path，package ,并熟悉基本命令：<br /><br />JDK的最重要命令行工具： <br />java： 启动JVM执行class <br />javac： Java编译器 <br />jar： Java打包工具 <br />javadoc： Java文档生成器 <br />这些命令行必须要非常熟悉。对于这些命令的学习，JDK Documentation上有详细的文档。下载和你的JDK版本一致的API帮助。<br /><br />三、是学习Java的面向对象的编程语言的特性的地方，比如继承，构造器，抽象类，接口，方法的多态，重载，覆盖，Java的异常处理机制。可以参照《Thinking in java》这本书，对面向对象的讲解很透彻。<br /><br />四、就是开始熟悉Java的类库，Java的基础类库非常多，但是真正对于我们来说最核心的只有4个，分别是  <br />java.lang.*;  <br />java.io.*;  <br />java.util.*;  <br />java.sql.*;  <br />要知道包有哪些方面的类构成的，这些类的用途是什么，最核心的几个类分别是完成什么功能的。<br /><br />五、JDK Documentation。通过上面的学习，如果学的比较扎实的话，就打好了Java的基础了，接着要学习Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步，Java的自学能力已经被培养出来了，可以到了直接学习Documentation的水平了。除了要做GUI编程之外，JDK里面其他会有用处的包是这些：  <br />java.text.*;  <br />java.net.*;  <br />javax.naming.*;  <br />这些包里面真正用的比较多的类其实很少，只有几个，所以不需要花很多时间。<br /><br />六、Java Web 编程<br />学习java web 编程之前要先下载安装应用服务器(App Server)，比较常用的应用服务器(App Server)有Tomcat 、BEA Weblogic、IBM Webshpere、Jboss 。<br /><br />以Tomcat为例，下载安装Tomcat以后设置两个环境变量： <br />JAVA_HOME=C:\j2sdk1.4.2 <br />CATALINA_HOME=D:\tomcat4 (你的Tomcat安装目录)<br /><br />Java的Web应用至少需要安装JDK和一个web容器（例如Tomcat），以及一个多用户数据库，Web应用至少分为三层： <br />Browser层：浏览器显示用户页面 <br />Web层：运行Servlet/JSP <br />DB层：后端数据库，向Java程序提供数据访问服务 <br /><br />七、学习J2EE的基本程序设计。<br /><br />（1）首先学习JSP动态网页设计。掌握JSP、JAVABEANS、JDBC、JSTL等技术，最好以TOMCAT作为实验环境。因为它影响力大，虽然性能不怎么的，很多JSP技术讨论都是以它为背景。<br />（2）学习EJB的程序设计思想。在学习EJB之前要学习对象序列化和RMI，RMI是EJB的基础。接着学习JMS和EJB，对于EJB来说，最关键是要理解EJB是如何通过RMI来实现对远端对象的调用的，以及在什么情况下要用到EJB。<br /><br />八、学习“设计模式”。<br /><br />可以参照《java设计模式》，这本书学习。<br /><br />九、学习一些经典框架的应用：<br />（1）struts1.1、webwork2<br />（2）Hibernate<br />（3）Ibatis/DAO框架<br />（4）Spring<br /><br />十、分析一些经典的应用系统：<br />Jive、XPetstore、JPetstore等。<br /><br />另外在java私塾的网站上有一套图书进销存项目的视频包括源码，从思路上引导学生如何去做项目，供各位自学的同学参考！大家可以到java私塾的网站上免费下载：www.javass.com
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237469" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 11:49:45 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237469</link>
        <guid>http://www.javaeye.com/topic/237469</guid>
      </item>
      <item>
        <title>使用StringTokenizer进行字符串拆分</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://baomw.javaeye.com">sc_1028</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237446" style="color:red;">http://www.javaeye.com/topic/237446</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: small; color: #993300;"><strong>介绍:</strong></span></p>
<p>StringTokenizer类允许应用程序将字符串分解为标记。tokenization 方法比 <code>StreamTokenizer</code> 类所使用的方法更简单。<code>StringTokenizer</code> 方法不区分标识符、数和带引号的字符串，它们也不识别并跳过注释。 </p>
<p>可以在创建时指定，也可以根据每个标记来指定分隔符（分隔标记的字符）集。 </p>
<p><code>StringTokenizer</code> 的实例有两种行为方式，这取决于它在创建时使用的 <code>returnDelims</code> 标志的值是 <code>true</code> 还是 <code>false</code>： </p>
<ul>
<li>如果标志为 <code>false</code>，则分隔符字符用来分隔标记。标记是连续字符（不是分隔符）的最大序列。 </li>
<li>如果标志为 <code>true</code>，则认为那些分隔符字符本身即为标记。因此标记要么是一个分隔符字符，要么是那些连续字符（不是分隔符）的最大序列。 </li>
</ul>
<p><tt>StringTokenizer</tt> 对象在内部维护字符串中要被标记的当前位置。某些操作将此当前位置移至已处理的字符后。 </p>
<p>通过截取字符串的一个子串来返回标记，该字符串用于创建 <tt>StringTokenizer</tt> 对象。</p>
<p>&nbsp;</p>
<p><span style="font-size: small; color: #993300;"><strong>注意:</strong></span></p>
<p><tt>StringTokenizer</tt> 是出于兼容性的原因而被保留的遗留类（虽然在新代码中并不鼓励使用它）。建议所有寻求此功能的人使用 <tt>String</tt> 的 <tt>split</tt> 方法或 java.util.regex 包。 </p>
<p>&nbsp;</p>
<p><strong><span style="color: #993300;">下面介绍StringTokenizer的使用</span></strong></p>
<pre name="code" class="java">StringTokenizer st = new StringTokenizer(strCode, ",");
String[] items = new String[st.countTokens()];
int count = 0;
while (st.hasMoreTokens()) {
	items[count++] = st.nextToken();
}</pre>
<p>&nbsp;<span style="color: #993300;"><strong>说明:</strong></span></p>
<p><span style="color: #000000;">1.<strong>strCode</strong>是一个带有分隔符的字符串变量;</span></p>
<p>2.<strong>countTokens()</strong>将返回一共拆分出多少个字符串;</p>
<p>3.<strong>hasMoreTokens()</strong>测试还还有没有字符串需要分配;</p>
<p>4.<strong>nextToken()</strong>返回下一个字符串值;</p>
<p>&nbsp;</p>
<p><span style="color: #800000;"><strong>总结:</strong></span></p>
<p><span style="color: #000000;">通过<strong>nextToken()</strong>方法,将拆分后的字符串分配个String类型的数组中.</span></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237446" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 11:03:35 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237446</link>
        <guid>http://www.javaeye.com/topic/237446</guid>
      </item>
      <item>
        <title>如何利用lighttpd将rails应用配置到子目录下</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://coolhair.javaeye.com">coolhair</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237444" style="color:red;">http://www.javaeye.com/topic/237444</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近在做一个rails应用，完成后的部署伤透了脑筋。将应用部署在服务器的根目录下没有任何问题，但是一旦部署在某个子目录下就无法正常工作。例如：192.168.120.120是可以的，但是如果部署成192.168.120.120/myapp就不工作了。lighttpd要如何设置才能让rails工作在服务器子目录下？
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237444" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 10:54:42 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237444</link>
        <guid>http://www.javaeye.com/topic/237444</guid>
      </item>
      <item>
        <title>谁知道页面的插件？</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yajie.javaeye.com">yajie</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237439" style="color:red;">http://www.javaeye.com/topic/237439</a>&nbsp;
          发表时间: 2008年09月05日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>我的页面做的不好看，哪位知道美化页面的插件或是其他东东？</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237439" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 05 Sep 2008 10:39:26 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237439</link>
        <guid>http://www.javaeye.com/topic/237439</guid>
      </item>
      <item>
        <title>企业需要是什么样的Linux人才？</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://programming.javaeye.com">programming</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237225" style="color:red;">http://www.javaeye.com/topic/237225</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我学ubuntu 有半年了，在这个系统里面，做java开发一点问题也没有，会一些简单的操作，相对于企业来讲。需要什么样linux知识呢？要达到什么样子，才能成为linux程序员？
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237225" style="color:red;">已有 <strong>2</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 23:47:39 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237225</link>
        <guid>http://www.javaeye.com/topic/237225</guid>
      </item>
      <item>
        <title>限时任务的实现</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://wind007.javaeye.com">wind007</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237180" style="color:red;">http://www.javaeye.com/topic/237180</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>如果按照在JDK1.4里的写法</p>
<pre name="code" class="java">package net.yeah.fanyamin.thread;

import java.util.concurrent.TimeUnit;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * @author walter
 * @version 1.0 2008-08-12
 */

public class TimeoutChecker implements Runnable {

    private static Log logger = LogFactory.getLog(TimeoutChecker.class);

    private Thread thread = null;

    private String result = &quot;&quot;;

    // Record the thread's begin time.
    private volatile long beginTime = 0;

    // Record the thread's end time.
    private volatile long endTime = 0;

    // The four status of the thread.
    enum Status {
        NOTSTART,
        RUNNING,
        FINISH,
        TIMEOUT
    };

    /**
     * Return thread's status according to the value of beginTime and endTime.
     * 
     * @return current thread's Status.
     */
    private Status getStatus(long timeleft) {
        // If don't set the two time variables.
        if (endTime == 0 &amp;&amp; beginTime == 0) {
            return Status.NOTSTART;
            // If only set the beginTime variables.
        } else if (endTime - beginTime &lt; 0) {
            // If the thread's execution time exceeds timeout value.
            if (System.currentTimeMillis() - beginTime &gt; timeleft) {
                return Status.TIMEOUT;
            } else {
                return Status.RUNNING;
            }
        } else {
            return Status.FINISH; // endTime is set
        }
    }

    /**
     * Reset the beginTime and endTime to 0.
     */
    private void resetStatus() {
        beginTime = 0;
        endTime = 0;

    }

    public String getResult(long timeleft) {
        // if need restart timing, not comment the below line
        // resetStatus();
        boolean bStop = false;
        while (!bStop) {
            Status curStatus = getStatus(timeleft);
            switch (curStatus) {
            case NOTSTART:
                if (thread == null || !thread.isAlive()) {
                    thread = new Thread(this);
                    thread.start();
                } else {
                    beginTime = System.currentTimeMillis();
                }
                break;
            case RUNNING:
                try {
                    TimeUnit.MILLISECONDS.sleep(100);
                } catch (InterruptedException e) {
                    logger.fatal(null, e);
                }
                break;
            case TIMEOUT:
                thread.interrupt();
                result = &quot;timeout&quot;;
                bStop = true;
                resetStatus();
                break;

            case FINISH:
                // result = &quot;finish&quot;;
                bStop = true;
                resetStatus();
                break;

            default:
                break;
            }

        }
        return result;

    }

    public void run() {
        beginTime = System.currentTimeMillis();
        try {
            TimeUnit.MILLISECONDS.sleep(1000);
            result = &quot;finish&quot;;
        } catch (Exception e) {
            // TODO: handle exception
        }
        endTime = System.currentTimeMillis();
    }

    public static void main(String[] args) {

        TimeoutChecker checker = new TimeoutChecker();
        System.out.println(&quot;result= &quot; + checker.getResult(100));
        System.out.println(&quot;result= &quot; + checker.getResult(1001));
    }
}
</pre>
&nbsp;
<p>&nbsp;</p>
<p>JDK1.5在并发编程方面有了很大提高, 这不, 用了Callable, Future, Executor, 代码少了, 适用性更好了</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre name="code" class="java">import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * @author walter.fan@gmail.com
 *
 * @param 
 */
public class TimeoutCaller {
	private static Log logger = LogFactory.getLog(TimeoutCaller.class);
	
	private Callable task = null;

	private ExecutorService exec = Executors.newSingleThreadExecutor();

	public TimeoutCaller(Callable task) {
		this.task = task;
	}

	T getResult(long timeoutMS) {
		Future f = exec.submit(task);
		T result = null;
		try {
	        result = f.get(timeoutMS, TimeUnit.MILLISECONDS);
	    } catch (ExecutionException e) {
	    	logger.error(e);
	    	result = null;
	    } catch (TimeoutException e) {
	    	logger.error(e);
	    	result = null;
	        f.cancel(true);
	    } catch(InterruptedException  e) {
	    	logger.error(e);
	    	result = null;
	    }
	    return result;
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		TimeoutCaller caller = new TimeoutCaller(new Callable() {
            public String call() {
            	try {
					TimeUnit.MILLISECONDS.sleep(1000);
				} catch (Exception e) {
					// TODO: handle exception
				}
                return &quot;Haha&quot;;
            }});
		String ret = caller.getResult(500);
		System.out.println(&quot;ret=&quot;+ret);
		
		ret = caller.getResult(1001);
		System.out.println(&quot;ret=&quot;+ret);

	}
}
</pre>
<p>
<br />
执行结果:<br />
<br />
2008-9-4 21:23:32 TimeoutCaller getResult<br />
<br />
严重: java.util.concurrent.TimeoutException<br />
<br />
ret=null<br />
<br />
ret=Haha</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237180" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 21:29:56 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237180</link>
        <guid>http://www.javaeye.com/topic/237180</guid>
      </item>
      <item>
        <title>页面跳转显示倒计时</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angelialily.javaeye.com">Angelialily</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237144" style="color:red;">http://www.javaeye.com/topic/237144</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &lt;%@page language="java" contentType="text/html; charset=GB2312"<br />	pageEncoding="GB2312"%><br />&lt;%@ page import="com.eline.epicc.utils.*" %><br />&lt;%<br />String insurancePId = request.getParameter("insurancePId");<br />int printType = Integer.parseInt(request.getParameter("printType"));//int type=0;<br />if(printType==1){<br />	String lptype = request.getParameter("type");<br />	lptype  = new String(lptype.getBytes("ISO-8859-1"),"GB2312");<br />	if(lptype.equalsIgnoreCase("标的")){<br />		type=1;<br />	}else{<br />		type=2;<br />	}<br />}else{<br />	type = Integer.parseInt(request.getParameter("type"));<br />}<br />String tmpStr;<br />if(printType==1){<br />	tmpStr="/search/pagesPrint.jsp?insurancePId="+insurancePId+"&type="+type+"&printType="+printType+"&printID=1";<br />}else{<br />	if(type==1){<br />	   tmpStr="/printInput/printInput_Bill1.jsp?pId="+insurancePId+"&type="+type+"&printType="+printType+"&printID=1";<br />	}else{<br />	   tmpStr="/printInput/printInput_Bill2.jsp?pId="+insurancePId+"&type="+type+"&printType="+printType+"&printID=1";<br />	}<br />}<br />%><br />&lt;script type="text/javascript"><br />  var abc=5;<br />  function mskip(){<br />         var jump = document.getElementById("jump");<br />         jump.innerHTML=abc;<br />          if(abc-- > 0)<br />            setTimeout("mskip()",1000);<br />  }<br />   window.onload = function(){<br />		mskip();<br />   }<br />&lt;/script><br />&lt;meta http-equiv="Content-Type" content="text/html; charset=GB2312"><br />&lt;meta http-equiv="Refresh" content="5 ; URL=${pageContext.request.contextPath}&lt;%=tmpStr%>"><br />&lt;link rel=stylesheet href="&lt;%=request.getContextPath()%>/styles/default.css" type="text/css" /><br />&lt;img height="5" src="${pageContext.request.contextPath}/images/blank.gif" />&lt;br /><br />		&lt;TABLE height="120" cellSpacing="0" cellPadding="0" width="98%" border="0"><br />			&lt;TR><br />				&lt;TD bgColor="#325380" height="7">&lt;IMG src="${pageContext.request.contextPath}/skin/content-top-left_delt.gif">&lt;/TD><br />				&lt;TD width="7" bgColor="#325380" height="7">&lt;IMG src="${pageContext.request.contextPath}/skin/blank.gif">&lt;/TD><br />			&lt;/TR><br />			&lt;TR><br />				&lt;TD style="BORDER-LEFT: #325380 1px solid; BORDER-BOTTOM: #325380 1px solid; PADDING: 2px;"><br />&lt;table  width="100%" border="0" bgcolor="#ffffff" align="center" ><br />      &lt;tr><br />	    	&lt;td height=20 align="center">&lt;font size="2.5">&nbsp;&nbsp;版本已升级... ...&lt;/font>&lt;/td><br />	  &lt;/tr><br />	  &lt;tr><br />	    	&lt;td  height=25  align="center">&lt;font size="2.5">提示：版本由每页8码升级到每页40码!&lt;/font>&lt;/td><br />      &lt;/tr>	<br />      &lt;tr><br />	    	&lt;td  height=25  align="center">&lt;font size="2.5" color="red">系统将 &lt;span id="jump">5&lt;/span> 秒钟后自动跳转&lt;/font>&lt;/td><br />      &lt;/tr>	<br />	  &lt;tr><br />	   &lt;td align="center" height=20><br />		  &lt;input type="button" class="clsBtn4w"  name="btn" value="确定" onClick="javaScript:window.location.href='${pageContext.request.contextPath}&lt;%=tmpStr%>';"/><br />		&lt;/td><br />	&lt;/tr><br />&lt;/table><br />&lt;/TD><br />	&lt;TD vAlign="bottom" width="7" bgColor="#325380">&lt;IMG src="${pageContext.request.contextPath}/skin/content-right-bottom_delt.gif">&lt;/TD><br />&lt;/TR><br />&lt;/TABLE>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237144" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 19:23:01 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237144</link>
        <guid>http://www.javaeye.com/topic/237144</guid>
      </item>
      <item>
        <title>关于jdbc中事务回滚的疑问，请大侠抽空回复一下</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://aninfeel.javaeye.com">aninfeel</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237127" style="color:red;">http://www.javaeye.com/topic/237127</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          使用mysql。<br />把ParpareStatment和ResultSet close了，调用connection的rollback是不是不能回滚的？
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237127" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 18:08:52 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237127</link>
        <guid>http://www.javaeye.com/topic/237127</guid>
      </item>
      <item>
        <title>jdt解析java文件的BlockComment、LineComment丢失?</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://txy920.javaeye.com">txy920</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237107" style="color:red;">http://www.javaeye.com/topic/237107</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近用jdt的ASTParser解析java源文件得到CompilationUnit，然后通过CompilationUnit对java文件进行操作（如：修改方法参数列表...）。<br />可是将java文件解析成CompilationUnit以后，java文件BlockComment、LineComment就丢失了。问题的原因我找了好久了，jdt的重构源码也找了一部分，可问题依旧没有解决。操作代码如下:<br /><br /><br /><pre name="code" class="java">/*获取CompilationUnit */
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setBindingsRecovery(true);
parser.setSource(contents.toCharArray());//content为java文件反序列化的字符串
CompilationUnit unit = (CompilationUnit) parser.createAST(null); //到这里注释就丢了


/*操作CompilationUnit */
//.......

/*持久化CompilationUnit */
FileUtil.output2JavaFile(javaFileLocalPath,unit .toString());</pre><br /><br /> <br /><br /><br />有哪位大哥路过，指点一下，感激不尽。
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237107" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 17:37:54 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237107</link>
        <guid>http://www.javaeye.com/topic/237107</guid>
      </item>
      <item>
        <title>集合框架-ArrayList源码学习</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://DSH.javaeye.com">dingshuo168</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/237106" style="color:red;">http://www.javaeye.com/topic/237106</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">MIT麻省理工学院讲义上的一段话：</div>
<div class="quote_div">如果没有完全理解 JAVA 库中的具有决定性的部分，你就不可能成为一个优秀的 JAVA 程序员。基本类型都包含在 java.lang 中。java.util包提供了集合（set）、列表（list）和映射（map）等工具，你应该详细的了解它们。java.io 包也是很重要的，但是你只需要大概了解它的内容就可以了。 在本章中，我们将探讨 java.util 的设计，而它常常被称为 java 集合 API（java &lsquo;collections API&rsquo;）。学习它是非常有价值的，这不仅是因为集合类非常的有用，而且因为 API 是一个设计非常好的代码例子。它们很容易理解，而且有很好的文档。ＡＰＩ的代码是由 Joshua Bloch 所写，他同时还出版了我们在开始本门课程时所推荐的 Effective Java这本书。 与此同时，几乎所有的面向对象编程的复杂问题都会在 API 的编写中出现，所以如果你认真的学习 API，你将对自己以前编码时没有考虑过的编程问题有更广泛的理解。事实上可以毫不夸张的讲，如果你能完全掌握一个类（例，ArrayList）是如何工作的，就可以说你已经完全掌握 java 概念。 <br /></div>
<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/237106" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 17:36:34 +0800</pubDate>
        <link>http://www.javaeye.com/topic/237106</link>
        <guid>http://www.javaeye.com/topic/237106</guid>
      </item>
      <item>
        <title>Hibernate与Jdbc的效率测试</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://alfredgao.javaeye.com">alfredgao</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/236784" style="color:red;">http://www.javaeye.com/topic/236784</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>首先，建数据库表，采用MySQL数据库。</p>
<p>CREATE TABLE `t_jobstat` (<br />&nbsp; `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,<br />&nbsp; `jobNo` varchar(45) DEFAULT NULL,<br />&nbsp; `clickSum` int(10) unsigned DEFAULT NULL,<br />&nbsp; `showSum` int(10) unsigned DEFAULT NULL,<br />&nbsp; `mailSum` int(10) unsigned DEFAULT NULL,<br />&nbsp; `locationid` varchar(10) DEFAULT NULL,<br />&nbsp; `logdate` char(8) DEFAULT NULL,<br />&nbsp; PRIMARY KEY (`id`)<br />) ENGINE=MyISAM AUTO_INCREMENT=7320077 DEFAULT CHARSET=gbk MAX_ROWS=500000000;</p>
<p>其次，插入大批量数据，本次测试，插入730万条数据。</p>
<p>&nbsp;</p>
<p><span style="font-size: medium; color: #ff0000;">一.Jdbc测试</span></p>
<p>主要方法如下：</p>
<p>1.数据访问层</p>
<pre name="code" class="java">    /**
	 * 检索前1000条记录
	 * @return
	 * @throws SQLException
	 */
	public List&lt;Jobstat&gt; findAll() throws SQLException {
		String sql = "select * from t_jobstat where locationid like '%530%' limit 0,1000 ";

		// 执行查询
		ps = conn.prepareStatement(sql);
		ResultSet rs = ps.executeQuery();

		// 将查询结果组装至Asset实体对象
		Jobstat jobstat = null;
		List&lt;Jobstat&gt; list = new ArrayList&lt;Jobstat&gt;();
		
		while (rs.next()) {
			jobstat = new Jobstat();
			jobstat.setId(rs.getInt("id"));
			jobstat.setJobNo(rs.getString("jobNo"));
			jobstat.setClickSum(rs.getInt("clickSum"));
			jobstat.setShowSum(rs.getInt("showSum"));
			jobstat.setMailSum(rs.getInt("mailSum"));
			jobstat.setLocationId(rs.getString("locationId"));
			jobstat.setLogdate(rs.getString("logdate"));
			list.add(jobstat);
			jobstat = null;
		}
		
		return list;
	}</pre>
<p>2.Action层</p>
<p>&nbsp;&nbsp; </p>
<pre name="code" class="java">             /**
	 * 检索前1000条记录
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward findTop(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception{

    	JobstatDAO dao = new JobstatDAO();
    	long start = System.currentTimeMillis();
        List&lt;Jobstat&gt;list = dao.findAll();
        request.setAttribute("results", list);
        long end = System.currentTimeMillis();
        System.out.println("取出前1000条数据组装为对象,花费时间为"+(end-start)+"ms");
        return mapping.findForward("top");
}</pre>
<p>&nbsp;3.我们打开一个测试页面，<a href="http://localhost:8080/jdbctest/jobstat.do?p=findTop">http://localhost:8080/jdbctest/jobstat.do?p=findTop</a></p>
<p>&nbsp;然后将默认浏览器设为能打开多Tab页的遨游，狂点测试页，最后数据取出速度稳定在16ms左右。</p>
<p>&nbsp;</p>
<p><span style="font-size: medium; color: #ff0000;">二.Hibernate&nbsp; Test</span></p>
<p><span style="font-size: x-small; color: #000000;">1.DAO访问层</span></p>
<pre name="code" class="java">	public static void main(String[] args) throws UnsupportedEncodingException{
		session = HibernateUtil.currentSession(); // 开启连接
		long start = System.currentTimeMillis();
		String queryString = "from Jobstat as js";
		Query queryObject = session.createQuery(queryString);
		int pageNo =0;
		pageNo = new Random().nextInt(10);
     queryObject.setFirstResult(1000*pageNo);
     queryObject.setMaxResults(1000*(pageNo+1));
     List list = queryObject.list();
     long end = System.currentTimeMillis();
     System.out.println("随机取出前1000条数据组装为对象,花费时间为"+(end-start)+"ms");
	}</pre>
<p>2进行数据量测试，当数据库中未建主键测试中，取出1000条数据花费时间为680ms，当主键索引存在后，取出1000条数据花费时间为530ms</p>
<p>&nbsp;</p>
<p><span style="font-size: small; color: #33cccc;">综上测试，</span></p>
<p>&nbsp;Hibernate作为一个O/R Mapping,比JDBC具备的优势有：</p>
<p>1.编程思想上，更加符合人的逻辑思维习惯，面向对象比面向过程更加容易理解，测试和维护</p>
<p>2.开发维护速度上，Hibernate显著的快，代码量显著小</p>
<p>3.通过Annotation进行数据库的字段加密</p>
<p>4.对Sql不熟的菜鸟来说可以自动调优</p>
<p>5.结合Spring，通过声明式事务可以省略事务的控制，事务以横切面形式出现</p>
<p>&nbsp;</p>
<p>Jdbc比Hibernate具备的优势有：</p>
<p>1.大数据量访问时，Jdbc的效率显著快</p>
<p>2.直接操作数据库比较灵活</p>
<p>&nbsp;</p>
<p>Hibernate比Jdbc慢的地方：</p>
<p>1.将Hql语句转化为标准Sql语句，花费时间可以忽略不急</p>
<p>2.将ResultSet中数据组装为实体对象，如果即所得数据量比较大(比如一次检索1000条数据)，这是效率就会降低，在组装实体对象花费时间较长</p>
<p>&nbsp;</p>
<p>检索单表的1000条数据，Hibernate与Jdbc均不会超过1S钟.</p>
<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/236784" style="color:red;">已有 <strong>6</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 12:29:05 +0800</pubDate>
        <link>http://www.javaeye.com/topic/236784</link>
        <guid>http://www.javaeye.com/topic/236784</guid>
      </item>
      <item>
        <title>java 连接 MySQL数据库</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://niceo.javaeye.com">niceo</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/236903" style="color:red;">http://www.javaeye.com/topic/236903</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          好长时间没有应用Jdbc来连接数据库啦！！<br />用工具时间太长啦我害怕吧一些东西都给忘啦！！<br /><br />呵呵！！！！<br /><br /><br /><pre name="code" class="java">
package net.conn;

import java.sql.*;

public class MySqlDemo {

	/**
	 * @param args
	 * @throws SQLException
	 */
	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub
		String dbName = "root";
		String dbPwd = "admin";
		String sql = "jdbc:mysql://localhost/hibernate?useUnicode=true&characterEncoding=GBK";
		Connection con;
		Statement stmt;
		ResultSet rs;
        //定位驱动
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 // 建立连接
		con = DriverManager.getConnection(sql, dbName, dbPwd);
		stmt = con.createStatement();
		rs = stmt.executeQuery("select * from mocake");

		ResultSetMetaData meta_data = rs.getMetaData();
		for (int i_col = 1; i_col &lt;= meta_data.getColumnCount(); i_col++) {
			System.out.print(meta_data.getColumnLabel(i_col) + "   ");
		}
		System.out.println();
		while (rs.next()) {
			for (int i_col = 1; i_col &lt;= meta_data.getColumnCount(); i_col++) {
				System.out.print(rs.getString(i_col) + "  ");
			}
			System.out.println();
		}
		//关闭流
		rs.close();
		stmt.close();
		con.close();
	}

}

</pre><br /><br />在数据库中必须要有相应的表：<br /><br />mocake.sql<br /><pre name="code" class="java">
create table mocake(
id int  primary key,
name varchar(20)not null,
pwd varchar(20)not null
)

insert into mocake values (1,'niceo_1','12');
insert into mocake values (2,'niceo_2','123');
insert into mocake values (3,'niceo_3','13');
insert into mocake values (4,'niceo_4','23');
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/236903" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 15:53:45 +0800</pubDate>
        <link>http://www.javaeye.com/topic/236903</link>
        <guid>http://www.javaeye.com/topic/236903</guid>
      </item>
      <item>
        <title>String 转oracle.sql.CLOB</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hong-1121.javaeye.com">hong_1121</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/236885" style="color:red;">http://www.javaeye.com/topic/236885</a>&nbsp;
          发表时间: 2008年09月04日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>前两天遇害到一个问题就是需要处理一字符型变量（该变量要作为参数传入存储过程执行），但其长度超长（长度小于32767时正常，大于时就报错）。后来想了很多的解决方案，最后决定先将其转换成CLOB，然后再将其以CLOB的方式传进去。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是如何转换的呢？经过狂搜GOOGLE，BAIDU，并且不停地测试后，终于成功了。我现将其转换代码贴出来，为大家共享，以便后来人和我一样，为其苦闷不已（就为这，我可是花了一整天的时间）</p>
<p>oracle.sql.CLOB clob = oracle.sql.CLOB.createTemporary(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn, false,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oracle.sql.CLOB.DURATION_SESSION);<br />&nbsp;&nbsp;&nbsp;clob.open(oracle.sql.CLOB.MODE_READWRITE);<br />&nbsp;&nbsp;&nbsp;writer = clob.getCharacterOutputStream();<br />&nbsp;&nbsp;&nbsp;writer.write(parmSql.toCharArray());<br />&nbsp;&nbsp;&nbsp;writer.flush();<br />&nbsp;&nbsp;&nbsp;writer.close();</p>
<p>&nbsp;</p>
<p>不要以为这样就行了，其实不然。这个我早就知道，难就难在驱动的问题（不要小看这，这可是个难点，如果你不知道的话，呵呵）。将驱动更换成最新OJDBC14。JAR。这个需要在ORALCE网上去下。</p>
<p>算了还是上传一份吧，现在的懒人也多。</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fuliang.javaeye.com/topic/236885" style="color:red;">已有 <strong>0</strong> 人发表回复，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 15:32:18 +0800</pubDate>
        <link>http://www.javaeye.com/topic/236885</link>
        <guid>http://www.javaeye.com/topic/236885</guid>
      </item>
  </channel>
</rss>
