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)編より引用)