SSH——Hibernate简单配置

来源:互联网 发布:外汇ea编程 编辑:程序博客网 时间:2024/06/03 14:19


         作为SSH开发框架中的ORM部分,感觉这个ORM跟以前用过的一些ORMapping框架相比,配置起来还是相对麻烦的。


     一,引入Jar包


               


           刚开始只是引入了hibernat非常基本的jar包进去,后来debug的时候,发现缺失了很多jar包,就又引了一批进去。所以特别想问问大家引包的时候,有什么方法可以提高引入jar包的效率吗?



    二,创建实体类及实体类_数据库对应xml文件


         例如,表结构如下:


            


      然后我建立如下实体类:


       

package net.blogjava.nokiaguy.models;public class MapEntity {private int id;private String keyword;private String value;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getKeyword() {return keyword;}public void setKeyword(String keyword) {this.keyword = keyword;}public String getValue() {return value;}public void setValue(String value) {this.value = value;}}


         并对这个实体类建立xml映射文件:


         

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">    <hibernate-mapping>    <class name="net.blogjava.nokiaguy.models.MapEntity" table="t_map">    <!-- 将id属性应射成自增类型 -->    <id name="id" column="id" type="int">    <generator class="increment"/>    </id>    <property name="keyword" column="keyword"/>    <property name="value" column="value"/>    </class>    </hibernate-mapping>



          之后是核心配置文件:hibernate.cfg.xml:


         

<?xml version="1.0" encoding="UTF-8"?><!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性。hibernate.sourceforge.net/hibernate-configuration-3.0dtd可以在Hibernate3.1.3软件包中的src\org\hibernate目录中找到此文件--> <!DOCTYPE hibernate-configuration PUBLIC           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">           <!--表明以下的配置是针对session-factory配置的,SessionFactory是Hibernate中的一个类,这个类主要负责保存HIbernate的配置信息,以及对Session的操作--> <hibernate-configuration><!--配置数据库的驱动程序,Hibernate在连接数据库时,需要用到数据库的驱动程序--> <session-factory> <!--设置数据库的连接url:jdbc:mysql://localhost/**,其中localhost表示mysql服务器名称,此处为本机,    **是数据库名--> <property name="connection.url">jdbc:mysql://localhost/testhibernate</property><!--hibernate.dialect 只是Hibernate使用的数据库方言,就是要用Hibernate连接那种类型的数据库服务器。--> <property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="connection.username">root</property><property name="connection.password"></property><!-- 显示hibernate生产的SQL语句 --><property name="show_sql">true</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><!-- 指定Map.hbm.xml的位置 --><mapping resource="net/blogjava/nokiaguy/models/Map.hbm.xml"/></session-factory></hibernate-configuration>


          这个里面主要是配置连接的一些需要的参数及实体类_表的配置文件的位置。



三,action中通过hibernate调用操作数据库


                   

public String execute()throws Exception{Configuration configuration=new Configuration();SessionFactory sessionFactory;configuration.configure("/hibernate.cfg.xml");sessionFactory=configuration.buildSessionFactory();//开始一个会话Session session=sessionFactory.openSession();Transaction transaction=session.beginTransaction();//开始事物transaction.begin();MapEntity mapEntity1=new MapEntity();mapEntity1.setKeyword("ihu");mapEntity1.setValue("bc...");MapEntity mapEntity2=new MapEntity();mapEntity2.setKeyword("iou");mapEntity2.setValue("bc...");//持久化两个对象session.save(mapEntity1);session.save(mapEntity2);//提交事务transaction.commit();session.close();result="保存成功";return "success";}



       对比下.net平台下的Nhibernate(http://blog.csdn.net/lhc1105/article/details/48709295),会发现98%的东西都是一致的。






        

2 0