hibernate环境搭建笔记

环境前提:jdk1.5,tomcat5,jdk+tomcat环境变量,tomcatplugin插件, eclipse,myEclipse(只取其特性和插件),MySQL,以及Hibernate3的11个包(hibernate3.jar和其余10个必备包)。
一、  eclipse安装完毕后,安装myEclipse,注册后,拷贝myEclipse的features和plugins文件夹覆盖eclipse程序所在目录下的对应文件夹。
二、  eclipse中,Window-Preferences-Java-Installed JREs,配置jdk,如果默认的不对(可能会指向jre1.5或jre6),应另外新增,使指向jdk1.5所在目录。
三、  Window-Preferences-MyEclipse-Application servers-tomcat5,配置tomcat启用及目录,并在Window-Preferences-MyEclipse-Application servers-tomcat5-JDK中选择第二步所配JDK。
四、  安装tomcatpluginV31插件。安装完成后,Window-Preferences-Tomcat中,设置版本、目录、服务器配置文件和JDK。
五、  安装MySQL,并启动,mysql –uroot –p命令进入,创建数据库,及测试表。
六、  启动eclipse,创建tomcat project,项目建立后,进入项目所在目录文件夹下的WEB-INF\lib,创建mysql数据驱动依赖库的文件夹和hibernate依赖库的文件夹,可以分别命名为db和hibernate3,db目录拷入mysql-connector-java5.0.5.jar,hibernate3目录拷入前面所述的11个包。
七、  Window-Preferences-Java-Build Path-User Libraries,新增db和hibernate3为名的两个用户库,并分别添加刚才拷贝到lib\db和lib\hibernate3两个目录下的包。这一步在项目属性设置界面下也可做此步。
附注:由于其他项目也可共享和引用该用户库,所以库文件是否可以放到公用的目录下,如tomcat_home\common\lib下(即所谓全局类路径)?
八、  在项目属性界面下,设置构建路径(build path)处,引入这两个用户库(如果不想引用用户库,直接导入第七步所述两个目录下的jar文件也可)。
附注:上述六、七、八三步可以使用eclipse中add hibernate capabilites功能自动来实现,添加时应勾选“添加到构建路径”和“拷贝包到lib目录”之类的选项。
九、  进入hibernate3安装程序(bin)压缩包解压后的文件夹下的etc文件夹,拷贝log4j.properties文件到项目文件夹下的WEB-INF\src目录,一般无需改动。
十、  进入代码编写阶段。WEB-INF\src目录下放置hibernate配置文件(hibernate.cfg.xml)、POJO类文件、映射文件(Student.hbm.xml),以及主测试类(含main方法),如果不想手工创建和设置session工厂,可以从网上拷贝代码建一个HibernateUtil.java工具类,以封装session工厂细节。
十一、          Hibernate.cfg.xml配置主要分三部分
11.1数据库连接参数。可以先通过代码测试连接是否通过然后再配置到该文件。
         <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
         <property name="connection.url">jdbc:mysql://localhost/evlily</property>
         <property name="connection.username">root</property>
         <property name="connection.password">sa</property>
注意,数据驱动类为org.gjt.mm.mysql.Driver,evlily是数据库名。
11.2附加参数
<property name="connection.pool_size">1</property>
         <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
         <property name="show_sql">true</property>
         <property name="hbm2ddl.auto">create</property>
其中show_sql是表示是否在控制台输出hibernate框架自动生成的标准SQL语句。
Hbm2ddl.auto表示映射对数据库构成何种影响,如果是create,即所谓正向工程,则每次执行都会先删除表,然后重新创建然后执行数据操作,所以发布时应使用validate。
(反向工程指框架工具依据数据库模型,自动创建对应的POJO实体类和映射文件。)
11.3映射文件
格式如<mapping resource="Student.hbm.xml" />
十二、映射文件
          <class name="Student" table="StudentInfo">
          <id name="sid" column="Student_ID">
          <generator class="increment"></generator>
          </id>
          <property name="logindate" type="timestamp" column="LOGIN_DATE"></property>
          <property name="sname"></property>
          </class>
其中generator类别常用的有native和increment。
十三、主测试类主要代码如下:
Student si = new Student();
                   si.setSname(sname);
                   si.setLogindate(loginDate);
                   //session工厂可以封装到HibernateUtil类
                   SessionFactory sf = new Configuration().configure().buildSessionFactory();
                   Session s = sf.openSession();
                   new ThreadLocal().set(s);
                   
                   Transaction tx = s.beginTransaction();
                   s.save(si);
                   tx.commit();
十四、如果数据连接采用JNDI方式,则需在 tomcat_home\conf\catalina\localhost\项目名.xml或tomcat_home\conf\server.xml(推荐在此文件中)中<Host></Host>之间添加如下样式的JNDI数据驱动配置:
 
<Context path="/HibernateExam" reloadable="true" docBase="C:\Documents and Settings\Administrator\workspace\HibernateExam" workDir="C:\Documents and Settings\Administrator\workspace\HibernateExam\work">
        <Resource name="jdbc/mysqlJNDI" auth="Container" type="javax.sql.DataSource"/>
                   <ResourceParams name="jdbc/mysqlJNDI">
                            <parameter>
                                     <name>factory</name>
                                     <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
                            </parameter>
                             <parameter>
                                    <name>driverClassName</name>
                                     <value>org.gjt.mm.mysql.Driver</value>
                            </parameter>
                            <parameter>
                                     <name>url</name>
                                     <value>jdbc:mysql://localhost/evlily</value>
                            </parameter>
                            <parameter>
                                     <name>username</name>
                                     <value>root</value>
                            </parameter>
                            <parameter>
                                     <name>password</name>
                                     <value>sa</value>
                            </parameter>
                            <parameter>
                                     <name>maxActive</name>
                                     <value>1000</value>
                            </parameter>
                            <parameter>
                                     <name>maxIdle</name>
                                     <value>50</value>
                            </parameter>
                            <parameter>
                                     <name>maxWait</name>
                                     <value>50</value>
                            </parameter>
                   </ResourceParams>
</Context>
系统可能会自动添加该项目的上下文根节点(context),所以,所以通常只需拷贝里面的子节点集即可。
而后程序中可用下面两句测试该连接配置:
InitialContext ctx = new InitialContext();
//JNDI名为jdbc/mysqlJNDI
DataSource ds = (DataSource)ctx.lookup(“java: comp/env/ jdbc/mysqlJNDI”);
Connection conn = ds.getConnection();
测试通过,在hibernate.cfg.xml配置文件中增加如下参数段即可使用该JNDI连接:<property name=”connection.datasource”> java: comp/env/ jdbc/mysqlJNDI</property>,那么前面11.1中的四句就可以注释掉了。
posted @ 2012-05-15 09:12  linux,dev  阅读(230)  评论(0编辑  收藏  举报