Hibernate4.x框架之一简介及入门实例
2015-07-21 13:32
561 查看
Hibernate框架历史简介
Hibernate简单实例——插入操作
ORM的实现目的就是将对象数据保存到数据库中,同时可以将数据库数据读入对象中,这样开发人员就可以将对数据库数据的操作转化为对这些对象的操作。step1:环境搭建
系统环境:华硕K45VD+win7开发环境:jdk1.6+myeclipse for Spring 10.6+tomcat 6.x+oracle 11g
开发所需jar包:
dom4j-1.6.1.jar | 是一个Java的XML API,类似于jdom,用来读写XML文件的 |
hibernate-commons-annotations-4.0.1.Final.jar | 使用javax.persistence下的Annotation可以不依赖Hibernate的JAR包,这样可以切换到其他的ORM框架 |
hibernate-core-4.1.7.Final.jar | Hibernate核心jar包 |
hibernate-jpa-2.0-api-1.0.1.Final.jar | 对JPA(Java持久化API)规范的支持 |
javassist-3.15.0-GA.jar | javassist是用来操作字节码的 |
jboss-logging-3.1.0.GA.jar | 使用一个注解处理器来实现你的带注释的接口的具体类 |
jboss-transaction-api_1.1_spec-1.0.0.Final.jar | 事务处理 |
ojdbc14-10.2.0.1.0.jar | 与oracle11g的连接,在oracle11g中可找到 |
step2:配置文件
Hibernate的基本配置文件有两种:hibernate.cfg.xml和.hbm.xml文件。前者包含了Hibernate与数据库的基本连接信息,在Hibernate工作的初始阶段,这些信息被先后加载到Configuration和SessionFactory实例;后者包含了Hibernate的基本映射信息,即系统中每一个类与其对应的数据库表之间的关联信息,在Hibernate工作的初始阶段,这些信息通过hibernate.cfg.xml的mapping节点被加载到Configuration和SessionFactory实例。这两种文件信息包含了Hibernate的所有运行期参数。下面我们用详细的例子来说明这两种文件的基本结构和内容。一、hibernate.cfg.xml文件:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.username">ddicomp</property> <property name="connection.password">DDICOMP</property> <property name="connection.url"> jdbc:oracle:thin:@192.168.3.90:1521:DDI </property> <property name="dialect">org.hibernate.dialect.OracleDialect</property> <property name="myeclipse.connection.profile">oracle</property> <property name="connection.driver_class"> oracle.jdbc.driver.OracleDriver </property> <property name="show_sql">true</property> <mapping resource="cn/itcast/hibernate/Member.hbm.xml" /> </session-factory> </hibernate-configuration>
二、.hbm.xml文件:
由于Hibernate的关联关系包含了一对一、一对多、多对一和多对多等四种类型,因此,也就有分别与之对应的四种.hbm.xml文件。下面我们就以比较常用的双向“一对多”型关联关系为例,介绍一下.hbm.xml文件的基本结构和内容。有关Hibernate更详细的内容,请参考相关文资料:
http://secyaher.blog.163.com/blog/static/38955772007102814446425/
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!--???? 映射語法 --> <class name="cn.itcast.hibernate.Member" table="MEMBER"> <id name="id" type="java.lang.String"> <column name="ID" precision="20" scale="0" /> <!-- 主鍵自增 --> <generator class="assigned"></generator> </id> <property name="username" type="java.lang.String"> <column name="USERNAME" length="20" not-null="true" /> </property> <property name="password" type="java.lang.String"> <column name="PASSWORD" length="20" not-null="true" /> </property> </class> </hibernate-mapping>
step3:编码
Member.java<pre name="code" class="java">private String id ; private String username ; private String password ; //省略get和set方法....
MemberOperate.java
package cn.itcast.operate; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import cn.itcast.hibernate.Member; public class MemberOperate { //所有的操作都是通过Session完成 private Session session = null ; //在构造方法中实例化Session对象 public MemberOperate() { //<span style="color:#ff0000;">找到Hibernate配置Configuration </span> Configuration config = new Configuration().configure() ; //<span style="color:#ff0000;">从配置中取出SessionFactory </span> SessionFactory factroy = config.buildSessionFactory() ; //取出一个Session this.session = factroy.openSession() ; } //向数据库中增加数据 public void insert(Member mem) { //开始事务 Transaction tran = this.session.beginTransaction() ; //执行语句 this.session.save(mem) ; //提交事务 tran.commit() ; } }
MemberOperateTest.java(单体测试)
package cn.itcast.test; import org.junit.Test; import cn.itcast.hibernate.Member; import cn.itcast.operate.MemberOperate; public class MemberOperateTest { @Test public void test() { Member mem = new Member() ; mem.setId("213121") ; mem.setUsername("m232c") ; mem.setPassword("0232") ; //实例化MemberOperate对象 MemberOperate mo = new MemberOperate() ; mo.insert(mem) ; } }
Step4:流程运行及总结
相关文章推荐
- (调试。F5F6F8,F5进入方法内部,F6逐行执行,F8跳过方法)
- 面向 Perl 开发人员的 XML,第 2 部分: 使用到 Perl 的高级 XML 解析技术
- jquery 插件封装总结
- 学习笔记9:Scala外部类和内部类
- SharedPreferences的跨应用读/写
- %后面字母含义&如何发现系统中堆栈的大致位置
- CTreeCtrl之排序
- 九宫格布局
- Android Networking I: OkHttp, Volley and Gson
- 关于SAP中物料双单位的解析
- Financial Management
- oracle学习笔记(转)
- css中用一张背景图做页面的技术有什么优势?
- ios常用的几种反向传值
- 亲和串
- php curl请求接口并获取数据
- SharePoint 2013设置“以其他用户身份登录”
- 编码方式
- 黑马程序员_java反射
- Android 网络层的封装