基于maven管理的SSH框架搭建

来源:互联网 发布:java代码生成jar包 编辑:程序博客网 时间:2024/06/06 01:11

上周六是罗列了搭建SSM(spring-struts-mabatis)框架,因为我们公司用的就是基于这3种框架上封装的DPAP框架。今天的侧重点就是将mybatis框架换成hibernate框架是如何集成进去的。
1、创建maven工程
2、配置hibernate需要的jar包,struts和spring的我就不讲了。
3、配置spring.xml文件.编写测试类。
第一步参考上一篇,直接讲第二步了:

<!-- 使用Hibernate需要的jar -->        <dependency>            <groupId>hibernate</groupId>            <artifactId>hibernate3</artifactId>            <version>3.1.2</version>        </dependency>        <dependency>            <groupId>cglib</groupId>            <artifactId>cglib</artifactId>            <version>2.2_beta1</version>        </dependency>        <dependency>            <groupId>odmg</groupId>            <artifactId>odmg</artifactId>            <version>3.0</version>        </dependency>        <dependency>            <groupId>net.java.dev.spring-annotation</groupId>            <artifactId>spring-annotation</artifactId>            <version>1.0.2</version>            <type>pom</type>        </dependency>        <dependency>            <groupId>commons-dbcp</groupId>            <artifactId>commons-dbcp</artifactId>            <version>1.4</version>        </dependency>        <dependency>            <groupId>net.sf.ehcache</groupId>            <artifactId>ehcache</artifactId>            <version>1.3.0</version>        </dependency>       <dependency>            <groupId>asm</groupId>            <artifactId>asm</artifactId>            <version>1.5.3</version>        </dependency>        <dependency>            <groupId>org.dom4j</groupId>            <artifactId>com.springsource.org.dom4j</artifactId>            <version>1.6.1</version>        </dependency>        <dependency>            <groupId>javax.transaction</groupId>            <artifactId>com.springsource.javax.transaction</artifactId>            <version>1.1.0</version>        </dependency>        <dependency>            <groupId>org.apache.commons</groupId>            <artifactId>com.springsource.org.apache.commons.collections</artifactId>            <version>2.1.1</version>        </dependency>

缺少哪些jar包在你获取sessionFactory的时候会提示你。但是必不可少的jar包有以下这些:

  1. cglib-x.jar、asm-attrs.jar、asm.jar:CGLIB库,Hibernate用它来实现PO字节码的动态生成,是非常核心的库,也是必须使用的jar包;
  2. dom4j-x.jar:dom4j是一个Java的 XML
    API,类似于jdom,用来读写XML文件的。Hibernate用它来读写配置文件;
  3. commons-collections-x.jar:Apache
    Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大;
  4. commons-logging-x.jar、log4j-x.jar:包含了日志功能;

好了,配置完pom.xml文件,首先,还是在根目录下创建spring.xml,需要定义dataSouce 和sessionFactory。

 <!-- 测试spring与hibernate的整合 ,定义dataSource -->    <bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" >       <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />        <property name="url"  value="jdbc:oracle:thin:@ip地址:数据库名" />        <property name="username" value="XXXXXX" />        <property name="password" value="XXXXXX" />    </bean>         <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">          <property name="dataSource" ref="datasource" />          <property name="hibernateProperties">              <props>                  <!-- 设置Hibernate方言 -->                  <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>                   <prop key="hibernate.show_sql">true</prop>                  <prop key="hibernate.format_sql">true</prop>                  <!-- 是否自动更新表 -->                  <prop key="hibernate.hbm2ddl.auto">update</prop>              </props>          </property>       <property name="mappingResources">             <list><value>hibernate/Cjj.hbm.xml</value></list>     </property>     </bean>  

其中mappingResources是用来加载你的hbm.xml文件的。好比如我定义了一个CJJ实体,并且对于了数据库的cjj_test表,那么在Cjj.hbm.xml中,我需要对应好这个关系。

<hibernate-mapping>   <class name="com.deppon.cjj.ssh.domain.Cjj" table="cjj_test"  >    <id name="name" column="NAME" type="string">       <generator class="assigned" />    </id>   <property name="age" column="age"/>    <property name="name" column="name" />     <property name="sex" column="sex"/>    </class> </hibernate-mapping>

这里的ID配置是比较有讲究的,我就不细讲了,如果你的表里没有主键的话,仍然要配置id ,否则就会报错,没有的话就像我这样配置吧。
最后,编写测试类:

    @Test    public void testHibernate(){    //加载spring.xml文件,因为是测试类,所以即便此时没有配置web.xml也没关系,web.xml是需要你的工程启起来的时候加载的。        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");   //读取sessionFactory这个bean ,强转成org.hibernate.SessionFactory        SessionFactory factory =    (SessionFactory) context.getBean("sessionFactory");        System.out.println(factory);    //定义与数据库打交道的会话对象        Session session=factory.openSession();        System.out.println(session.isConnected());    //向数据库里做查询操作    ,结果集放在Query里         Query q = session.createSQLQuery("select * from cjj_test").addEntity(Cjj.class);         List<Cjj> list=q.list();         for(Cjj s:list){             System.out.println(s.getName()+","+s.getAge()+","+s.getSex());         }         session.close();     }

主要是创建sessionFactory能否成功,关联了很多jar包找不到的时候就要去搜一下是缺少了什么。我自己上面写的这版测试是成功的。
这里写图片描述
就酱吧。

0 0
原创粉丝点击