ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Hibernateのやり方 まとめ2 <<検索>>

2009-11-12 15:20:00 | Weblog

 Hibernateのやり方のつづき。

・ダウンロードしてきて
・Tomcatホームのwebappsの下に、Hiというフォルダを作って
・Hiの下にWEB-INFを作って、その下にlibつくって、
・ダウンロードしたhibernate3.jarと、libの下にあるjarをコピー

したところまできた。なお、Tomcat,java,MySQL,MySQLのJDBCは
入っているものとします。テーブルもJavaでHelloWorld JDBC(MySQL)編
のテーブルが作成されていて、データが入っているものとします。

 今回は、

   設定ファイル hibernate.cfg.xml
   マッピングファイル map.hbm.xml
   マッピングクラス HelloWorldTable.class
   呼び出すJSPファイル

 を作って、検索表示するところです。




■設定ファイル hibernate.cfg.xml

以下のファイルを作成して、hibernate.cfg.xmlという名前で、
Hi/WEB-INF/classes
の下に保存します(classesというフォルダを作成する)

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory name="mysqltest">
		<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///hellodb</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">password</property>
		<property name="hibernate.connection.dialect">org.hibernate.dialect.MySQLDialect</property>
		<mapping resource="map.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

(上記< >は本当は半角)

なお、この例は、ユーザー名root,パスワードpasswordの場合です。
DBは、hellodbにあります。




■マッピングファイル map.hbm.xml
 設定ファイルのmappingタグで指定したマッピングファイル(ここではmap.hbm.xml)を下記のとおり作成し、map.hbm.xmlという名前で
Hi/WEB-INF/classes
の下に保存します

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="table.HelloWorldTable" table="HELLO_WORLD_TABLE">
        <id name="no" type="int" >
            <column name="no" sql-type="int" not-null="true"/>
            <generator class="assigned"/>
        </id>
        <property name="language" type="string" column="LANGUAGE" />
        <property name="message" type="string" column="MESSAGE" />
    </class>
</hibernate-mapping>

(上記< >は本当は半角)




■マッピングクラス HelloWorldTable.class

 テーブル構造に対応したbeanをマッピンググラスとして作成します。今回は、HelloWorldTable.classというクラスを、tableのパッケージの下におきます。

 つまり、HelloWorldTable.javaというファイルを以下のように作成し
package table;

public class HelloWorldTable {
	private static final long serialVersionUID = 1L;
	private	int	no;
	private	String	language;
	private	String	message;
	
	public void setNo(int no)
	{
		this.no	=	no;
	}
	
	public	int	getNo()
	{
		return	no;
	}

	public void setLanguage(String language)
	{
		this.language	=	language;
	}
	
	public	String	getLanguage()
	{
		return	language;
	}

	public void setMessage(String message)
	{
		this.message	=	message;
	}
	
	public	String	getMessage()
	{
		return	message;
	}

}


(上記< >は本当は半角)
それを、コンパイルしてできたクラスファイルHelloWorldTable.classを
Hi/WEB-INF/classes/table/HelloWorldTable.class
の下に保存します




■呼び出すJSPファイル

 上記までで、hibernateに関する設定はおしまいなのですが、これを呼び出さないと確かめられないので、呼び出します。

 以下のJSPを作成し、Hiフォルダの下にindex.jspというファイル名でおきます。
<%@ page contentType="text/plain; charset=utf-8" %>
<%@ page import="java.util.*" %>
<%@ page import="org.hibernate.*" %>
<%@ page import="org.hibernate.cfg.Configuration" %>
<%@ page import="table.*" %>

<%

Configuration conf = new Configuration().configure();
SessionFactory sf = conf.buildSessionFactory();
Session s = sf.openSession();
List list = s.createCriteria(HelloWorldTable.class).list();
%>

検索結果:<%=list.size()%>件

<%
for (int i = 0; i < list.size(); i++)
{
	HelloWorldTable myTable = (HelloWorldTable)list.get(i);
%>

<%=myTable.getNo()%>	<%=myTable.getLanguage()%>		<%=myTable.getMessage()%>

<%
}
%>

(上記< >は本当は半角)




■呼び出し

Tomcatを再起動して
ブラウザから
http://127.0.0.1:8080/Hi/
と入力すると・・・・

おおおおお!表示されましたね!

(上記斜体は、JavaでHelloWorld JDBC(MySQL)編より引用)


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Google Chrome 拡張(Extensi... | トップ | IPhoneシミュレーターとか、W... »
最新の画像もっと見る

Weblog」カテゴリの最新記事