初始Hibernate框架技术
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了初始Hibernate框架技术,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4894字,纯文字阅读大概需要7分钟。
内容图文
hibernate:
定义:ORM:Object Relational Mapping 对象 关系 映射
使用hibernate时几个必要的:
1、实体类
2、映射文件(类 -数据库表,属性-字段)【实体类名.hbm.xml】
3、配置文件:数据库连接信息(两个配置:hibernate.cfg.xml(数据库配置文件)和实体类名.hbm.xml(映射配置文件))
4、必要架包
- hibernate(主框架)
- ojdbc jdbc
- jta 允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数 据:针对数据读取
- commons-collections 各种集合类和集合工具类封装
- dom4j xml解析
- javassist 分析、编辑和创建Java字节码的类库:针对字节码的
- slf4j-api 记录hibernate的日志接口
- slf4j-nop 、、
其他笔记:
在代码中都会有注释
hibernate.cfg.xml(数据库配置文件):
1 <! DOCTYPE hibernate-configuration PUBLIC 2 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" > 4 5 < hibernate-configuration > 6 < session-factory > 7 8 <!-- 指定oracle对应得dialect --> 9 < property name ="dialect" > 10 org.hibernate.dialect.Oracle10gDialect 11 </ property > 12 <!-- 数据库jdbc驱动 --> 13 < property name ="connection.driver_class" > 14 oracle.jdbc.driver.OracleDriver 15 </ property > 16 17 <!-- 数据库url --> 18 < property name ="connection.url" > 19 jdbc:oracle:thin:@localhost:1521:XE 20 </ property > 21 <!-- 用户名 --> 22 < property name ="connection.username" >user_admin</property>23<!-- 用户密码 -->24<property name="connection.password">abc123</property>2526<!-- session范围和上下文 -->27<property name="current_session_context_class">thread</property>28<!-- 是否在运行期间生成的SQL输出到日志以供调试 -->29<property name="show_sql">true</property>30<!-- 是否格式化sql -->31<property name="format_sql">true</property>32<!-- 映射 -->33<mapping resource="cn/cy/Hibernate/entity/Dept.hbm.xml"/>34</session-factory>35</hibernate-configuration>
实体类名.hbm.xml(映射配置文件):
1 <? xml version="1.0" ?> 2 <! DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > 5 6 7 < hibernate-mapping > 8 <!-- 与关键字冲突 ”~~“解决 --> 9 < class name ="cn.cy.Hibernate.entity.Dept" table ="dept" > 10 <!-- 当数据库里面的列明与java属性一致时,我们可以省略colnumn --> 11 < id name ="deptno" column ="deptno" > 12 < generator class ="sequence" > 13 <!-- 索引 --> 14 < param name ="sequence" >seq_index</param>15</generator>16</id>17<property name="deptname" column="deptname" type="java.lang.String"/>18<property name="loc" column="loc" type="java.lang.String"/>19</class>20</hibernate-mapping>21
实体类:
1 package cn.cy.Hibernate.entity; 2 3 import java.io.Serializable; 4 5 public class Dept implements Serializable{ 6//属性 7privateint deptno; 8private String deptname; 9private String loc; 10//构造方法11public Dept(){ 121314 } 15// 16publicint getDeptno() { 17return deptno; 18 } 1920publicvoid setDeptno(int deptno) { 21this.deptno = deptno; 22 } 2324public String getDeptname() { 25return deptname; 26 } 2728publicvoid setDeptname(String deptname) { 29this.deptname = deptname; 30 } 3132public String getLoc() { 33return loc; 34 } 3536publicvoid setLoc(String loc) { 37this.loc = loc; 38 } 394041 }
测试类:
使用hibernate的几个步骤:
1 package cn.cy.Hibernate.Test; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.Transaction; 6 import org.hibernate.cfg.Configuration; 7 8 import cn.cy.Hibernate.entity.Dept; 9 10 11 /** 12 * 测试类 13 * @author Administrator 14 * 15 */ 16 public class Test { 17 public static void main(String [] args){ 18 /** 19 * 测试方法 20 */ 21 if (addDept()){ 22 System.out.println("保存成功"); 23 } 2425 } 26/**27 *测试hibernate框架的测试类 28 **/29publicstaticboolean addDept(){ 30boolean flag=false; 31 Configuration conf=null; 32 SessionFactory factory=null; 33 Session session=null; 34 Transaction trans=null; 35try { 36//读取配置文件37 conf=new Configuration().configure(); 38//创建sessionfactory39 factory=conf.buildSessionFactory(); 40//打开会话41 session=factory.openSession(); 42//开启事务43 trans=session.beginTransaction(); 44 Dept dept=new Dept(); 45//当设置了gennerator为sequence时,不给参数是以指定sequence填值46 dept.setDeptno(200); 47 dept.setDeptname("开发部"); 48 dept.setLoc("成都"); 49//持久化 50//session.save(dept); 51//session.delete(dept); 52//Dept dp=(Dept)session.get(Dept.class, 1);//没有数据,返回空值 53//System.out.println(dp.getDeptname());54 Dept dp=(Dept)session.load(Dept.class, 1);//没有数据,报异常55 System.out.println("....."); 56 System.out.println(dp.getDeptname()); 57585960//提交事务61 trans.commit(); 6263 flag=true; 64 } catch (Exception e) { 65 e.printStackTrace(); 66 trans.rollback(); 67 }finally{ 68if(session!=null){ 69 session.close(); 7071 } 72 } 737475return flag; 7677 } 78} 79
在测试中遇到的exception:
因为在上课时忘记将错误信息保存下来,所以在这里不做详细错误描述:
配置文件一定严格书写,地址一定准确!
总之如果按照上述的配置过程配置,出现错误时:
- 方法alt不出来,检查架包是否build;
- 运行代码后,如果提示sequence不存在的,检查param节点;
- 如果是其他与数据库相关的,检查自己数据库的约束等等
- 以上是我遇到的错误,其他的错误暂时没遇到!
原文:http://www.cnblogs.com/gcs1995/p/4121849.html
内容总结
以上是互联网集市为您收集整理的初始Hibernate框架技术全部内容,希望文章能够帮你解决初始Hibernate框架技术所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。