• 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中的四句就可以注释掉了。
  • 相关阅读:
    【NOIP2009】【Vijos1752】潜伏者
    【NOIP2008】【Vijos1493】传纸条
    【NOIP2007】【Vijos1378】矩阵取数游戏
    【NOIP2006】【Luogu1063】能量项链
    【NOIP2004】【Luogu1091】合唱队形
    【NOIP2004】【Luogu1089】津津的储蓄计划
    【NOIP2005】【Luogu1052】过河
    【NOIP2004】【Luogu1090】合并果子
    【NOI2002】【Luogu1196】银河英雄传说(并查集带边权)
    【POJ3190】Stall Reservations
  • 原文地址:https://www.cnblogs.com/huapox/p/3172683.html
Copyright © 2020-2023  润新知