基于maven管理的SSH框架搭建

上周六是罗列了搭建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包找不到的时候就要去搜一下是缺少了什么。我自己上面写的这版测试是成功的。
这里写图片描述
就酱吧。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值