在 eclipse(软件,IBM) 开发平台上写。
1. 先new一个带src目录的Java Project,因为src代表class_path!  hibernatev.cfg.xml 、vlog4j.properties(配置文件)就放在其下,这两个文件必须放在class_path下。
2. add一个User Library,名字自己取,添加所需要的12个.jar包(最好所有jar包全部导入,保证不会错)。
3. 在src下new自己所需要的package,在package下写***.java  、***.hbm.xml 、***.sql  代码
4  写程序代码的顺序:写 JavaBean----sql文件(数据库建相关表)----***.hbm.xml映射文件------hibernate.cfg.xml(或者修改mapping标签的映射资源)------写相关测试Java程序(调用hibernate API,进行数据操作)。注意各代码文件放的位置。
5  配置文件hibernate.cfg.xml只需要写一次,以后用到的时候,基本是修改mapping标签;映射文件***.hbm.xml需要天天写,用一次写一次。
下面是 :   ***.sql  、***.hbm.xml 、hibernatev.cfg.xml 、vlog4j.properties、测试Java程序

--------***.sql----------

  1. create sequence jdbc_car_seq;
  2. create sequence jdbc_license_seq;
  3. create table jdbc_car_pk
  4. ( cid number(7) primary key,
  5. manufactory varchar2(15) not null,
  6. producttype varchar2(15) not null
  7. );
  8. create table jdbc_license_pk
  9. ( lid number(7) primary key references jdbc_car_pk(cid),
  10. serialnum varchar2(15) not null,
  11. licensetype varchar2(15) not null
  12. );

---------User.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. <hibernate-mapping package="com.kettas.hibernate.day1">
  6. <class name="Users" table="jdbc_users" dynamic-update="true">
  7. <id name="id" column="id" unsaved-value="null">
  8. <generator class="sequence">
  9. <param name="sequence">jdbc_users_seq</param>
  10. </generator>
  11. </id>
  12. <property name="name" column="name"></property>
  13. <property name="passwd"></property>
  14. <property name="phone" column="phone"/>
  15. <property name="email"/>
  16. </class>
  17. </hibernate-mapping>

-----------hibernatev.cfg.xml -----------

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6. <session-factory>
  7. <!-- 显示SQL -->
  8. <property name="show_sql">true</property>
  9. <property name="format_sql">true</property>
  10. <!-- 配置数据库方言 -->
  11. <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
  12. <!-- 配置数据库连接 -->
  13. <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  14. <property name="connection.username">cksd0804</property>
  15. <property name="connection.password">cksd0804</property>
  16. <property name="connection.url">jdbc:oracle:thin:@192.168.0.200:1521:ORADB10G</property>
  17. <!-- 配置连接池 -->
  18. <property name="c3p0.max_size">2</property>
  19. <property name="c3p0.min_size">2</property>
  20. <property name="c3p0.timeout">5000</property>
  21. <property name="c3p0.max_statements">100</property>
  22. <property name="c3p0.idle_test_period">3000</property>
  23. <property name="c3p0.acquire_increment">2</property>
  24. <property name="c3p0.validate">false</property>
  25. <!-- 指定hibernate管理的映射文件 -->
  26. <!--<mapping resource="com/kettas/hibernate/day1/Users.hbm.xml"/>-->
  27. <!--<mapping resource="com/kettas/hibernate/day1/Account.hbm.xml"/>-->
  28. <!--<mapping resource="com/kettas/hibernate/orm/o2o/fkuk/CarLicense.hbm.xml"/>-->
  29. <mapping resource="com/kettas/hibernate/orm/o2m/CompanyEmployee.hbm.xml"/>
  30. </session-factory>
  31. </hibernate-configuration>

---------vlog4j.properties------------

  1. ### direct log messages to stdout ###
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.Target=System.out
  4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  5. log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
  6. ### direct messages to file hibernate.log ###
  7. #log4j.appender.file=org.apache.log4j.FileAppender
  8. #log4j.appender.file.File=hibernate.log
  9. #log4j.appender.file.layout=org.apache.log4j.PatternLayout
  10. #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
  11. ### set log levels - for more verbose logging change 'info' to 'debug' ###
  12. log4j.rootLogger=warn, stdout
  13. #log4j.logger.org.hibernate=info
  14. log4j.logger.org.hibernate=debug
  15. ### log HQL query parser activity
  16. #log4j.logger.org.hibernate.hql.ast.AST=debug
  17. ### log just the SQL
  18. #log4j.logger.org.hibernate.SQL=debug
  19. ### log JDBC bind parameters ###
  20. log4j.logger.org.hibernate.type=info
  21. #log4j.logger.org.hibernate.type=debug
  22. ### log schema export/update ###
  23. log4j.logger.org.hibernate.tool.hbm2ddl=debug
  24. ### log HQL parse trees
  25. #log4j.logger.org.hibernate.hql=debug
  26. ### log cache activity ###
  27. #log4j.logger.org.hibernate.cache=debug
  28. ### log transaction activity
  29. #log4j.logger.org.hibernate.transaction=debug
  30. ### log JDBC resource acquisition
  31. #log4j.logger.org.hibernate.jdbc=debug
  32. ### enable the following line if you want to track down connection ###
  33. ### leakages when using DriverManagerConnectionProvider ###
  34. #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

------------测试Java程序------------

  1. import org.hibernate.Session;
  2. import org.hibernate.SessionFactory;
  3. import org.hibernate.Transaction;
  4. import org.hibernate.cfg.Configuration;
  5. public class TestCar {
  6. public static void main(String[] args) {
  7. Configuration cfg=new Configuration().configure();      //创建配置,启动Hibernate读xml文件
  8. SessionFactory sf=null;
  9. Session sess=null;
  10. Transaction ta=null;
  11. try{
  12. sf=cfg.buildSessionFactory();                                     //构造会话工厂SessionFactory
  13. sess=sf.openSession();                                                //打开会话Session
  14. ta=sess.beginTransaction();                                         //启动事物
  15. Car c=new Car("qq","111");
  16. License license=new License("6666","minyong");       //持久化操作
  17. c.addLicense(license);
  18. sess.save(license);
  19. ta.commit();                                                                   //提交事务
  20. }catch(Exception e){
  21. e.printStackTrace();
  22. ta.rollback();                                                                   //回滚事务
  23. }finally{
  24. sess.close();                                                                    //释放资源
  25. sf.close();
  26. }
  27. }
  28. }

Hibernate写代码流程小结相关推荐

  1. pyqt5写代码流程

    p y q t 5 写代码流程 pyqt5写代码流程 pyqt5写代码流程 Step1:在Designer中进行界面设计,添加槽函数,重新生成界面py文件 Step2:实现槽函数 Step3:实现对外 ...

  2. C语言基础第六课——第二节if语句(if-else格式、不带else的if结构)、借例题简述写代码流程、从键盘上输入三个整数,求出其中的最大数(打擂法、三目运算符、排序)、if语句的嵌套计算个人所得税

    C语言基础第六课--第二节 一.if语句概述 二.标准if-else格式 三.借例题简述写代码流程 四.不带else的if结构 五.例题:从键盘上输入三个整数,求出其中的最大数.(打擂法.三目运算符. ...

  3. Android 4.0 截屏(Screenshot)代码流程小结

    Android 4.0 截屏 在Android 4.0 之前,Android手机上如果要使用截屏功能,只能通过Root手机,且使用第3方截图软件来实现截屏功能. Android4.0中,系统自带了截屏 ...

  4. Android 截屏(Screenshot)代码流程小结

    一.基本介绍 在Android 4.0 之前,Android手机上如果要使用截屏功能,只能通过Root手机,且使用第3方截图软件来实现截屏功能. Android4.0中,系统自带了截屏功能,使用方法是 ...

  5. 网站开发:从写代码到公网访问整个流程(CSDN征文活动第一期获奖文章)

    [获奖感言]2019年7月18日  感谢CSDN,让我这篇文章在CSDN征文活动第一期的获奖! 获奖名单出处:10W+的机会来了!快把文章扔过来_CSDN官方博客的博客-CSDN博客 -------- ...

  6. 为什么 CTO、技术总监、架构师都不写代码,还这么牛?

    作者| Mr.K   整理| Emma 来源| 技术领导力(ID:jishulingdaoli) 常常会被问到这样的问题:CTO.技术总监.架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资? ...

  7. 我写代码的这十年——致逝去的青春

    序言:经常在想,当工作10年.15年.20年时,我会是什么样子的?那些我孜孜以求.乐此不疲的东西,我是否应该放弃一些,抽出时间去追求更高的待遇.更好的生活?还是遵循自己的内心哪怕碰南墙也不回头?程序和 ...

  8. #为何程序员百万年薪,CTO技术总监架构师不写代码还这么牛逼 ?

    [此文章转自乐字节] 真的是一点不服气我的领导,每天就在座位上看看头条,到时间开开会,每天写代码的时间可能不到两小时,到底是为什么他的收入有年薪百万?我们都是985研究生毕业,是什么铸就了他的价值? ...

  9. 手写代码,简单实现Spring框架

    Java核心编程高阶实战案例:MySpring 本博文通过学习 中国大学MOOC 平台上陈良育老师讲的 Java核心技术(高阶) 课程,因为老师视频中的讲解有些较为简略,于是我自己另外搜集资料,从老师 ...

  10. 程序员自我修练-提高写代码的能力

    首先让我们看一看刚入软件公司会出现的情况: 1. 你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错 (原因:语法不熟) ──别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心 ...

最新文章

  1. C语言指针(就做个笔记)
  2. iOS中KVO模式的解析与应用
  3. 五大核心构成的AIoT,正在遭遇三大挑战,两条突破口外还有什么?
  4. Maven出现User setting file does not exist ...\.m2\setting.xml的问题解决(同时也解决用户.m2目录下无setting.xml文件)...
  5. 【开启报名】云原生变革与效能技术沙龙 · 厦门站
  6. 优秀网页设计各种国外站的素材
  7. iphone换机数据迁移_苹果手机换华为、小米怎么同步数据?来了!
  8. redis哨兵主从不切换_Redis的三种模式:主从、哨兵、集群
  9. QTcreator的一些设置
  10. JS 父子(弹出)窗口操作总结
  11. linux下esc退不出vi
  12. 双链表(线性表的链式存储)---C语言版
  13. 华硕 天选2 R9-5900HX RTX3060 安装ubuntu18.04以及探索内核与驱动的关系
  14. windows xp虚拟机安装教程
  15. uniapp-页面内/页面间数据的流动传递-this-that
  16. CCC与Android交互的注意点
  17. Java安全开发注意事项
  18. div+css制作哆啦A梦
  19. kali linux开机黑屏只有鼠标可以移动
  20. ElasticSearch 学习笔记

热门文章

  1. 360锁屏壁纸超级好看,于是想保存下来。
  2. ESP32控制器使用SX1278 LoRa模块的方法
  3. java 0.1 0.2_0.1+0.2结果却不等于0.3
  4. 何绍华Linux操作系统第3版章节课后答案习题
  5. OAS的使用——Python SDK
  6. 主程玩失踪,公司蒸发600w,创始人秒变打工仔(含视频)
  7. rap技术原理_学rap最基本的都要学什么
  8. 基于JSP实现医院病历管理系统,程序员如何在工作中自我增值
  9. 怪兽融合、神秘药水?《Monster Tamer》深度攻略,来不及解释快上车!
  10. depts: deep expansion learning for periodic time series forecasting