1.关系型数据库:

  Oracle / Mysql

 数据持久化的技术:

  IO  JDBC  XML  ...

 主流的持久层框架:

  Hibernate  

  mybatis---->apache产品

  JPA(由EJB 3.0软件专家组开发,奢侈,豪华的解决方案)--->Oracle

  TopLink---->Oracle(DBA专业管理员)

  JSF(JavaServer Faces (JSF) 是一种用于构建Java Web 应用程序的标准框架)  

  JDO(JDO(Java Data Object )是Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API。)

  

2.Hibernate:ORM(对象关系映射)

  一种经典的实现,持久层的框架。解决了面向对象语言与关系数据库不匹配的现象。

3.Hibernate.cfg.xml文件中:

  格式化sql语句:

  <property  name="format_sql"> true </property>

  创建+更新:

  <property  name="hbm2dd1.auto">update</property>

 

4.Hibernate三态:

  A.瞬时态/临时态:

    用户使用new关键字创建的对象,此时对象在内存中保存,数据中没有相关记录,session中也没有缓冲信息;

  B.持久态:

    当调用session中的持久化方法(save或save Or Update)时,对数据进行持久化,数据库中存在相应记录,并且seesion中也有对象的缓存信息;

  C.游离态/离线状态:

    由于session的关闭或清空导致对象脱离了session的管辖,数据库中存在相应的记录,但session中没有对象的缓存信息

5.操作Oracle数据库:

<id name="id">
<generator class="sequence">
<param name="sequence">
seq_id_supervision
</param>
</generator>
</id>

6.hbm.xml中:

  cascude(级联):

    save:级联新增

    delete:级联删除

    save-update:级联新增或修改

    all:所有操作都级联

    none:不级联

    eg:cascude="all"

    

7.hbm.xml中:

  inverse(控制反转):   

    代表关系维护的控制权是否反转,如果inverse值为true则代表将关系维护的控制权交与对方

    eg:inverse="true"    

8.hbm.xml中:

  constrained(约束的):

    eg:constrained="true",则代表一定得在这个属性对应的表中有数据并对应。

9. 一对多情况下在一的一方,inverse设置为true,cascade设置为none或不设置,本表数据添加成功,另一个表数据添加失败,console不报错;(没有维护权限,添加数据不会报错)

 一对多情况下在一的一方,inverse设置为false,cascade设置为none或不设置,本表数据添加成功,另一个表数据添加失败,console报错。(拥有维护权限,添加数据会报错)

 一对多情况下在一的一方,inverse设置为false,cascade设置,本表数据添加成功,另一个表数据添加成功,外键添加成功,console不报错。(拥有维护权限,同时又有级联,添加成功)

 一对多情况下在一的一方,inverse设置为true, cascade设置,本表数据添加成功,另一个表数据添加成功,外键添加失败,console不报错。(没有维护权限,但有级联,本表数据添加成功,但另一个表外键会添加失败)

  eg:

  TestCode:

package cn.zzsxt.test3;

import org.hibernate.Session;
import org.hibernate.Transaction; import cn.zzsxt.entity3.City;
import cn.zzsxt.entity3.Province;
import cn.zzsxt.utils.HibernateUtil; public class TestOneToMany {
public static void main(String[] args) {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction(); City c1=new City();
City c2=new City();
c1.setCityName("郑州");
c2.setCityName("平顶山");
Province p1=new Province();
p1.setProvinceName("河南");
p1.getCities().add(c1);
p1.getCities().add(c2); session.save(p1);
tx.commit();
session.close(); }
}

10.String  sql=" ";

   sql中不能出现*不然报错

11.引号内不能直接加引用类型数据否则报错,基本类型不会,必须使用query.setString()方法赋值,从0开始,0代表第一个

.

java:LeakFilling(Hibernate)的更多相关文章

  1. java:LeakFilling(Other)

    1.Java项目的API文档如何生成?请将步骤写出. javadoc 源文件名.java; 2.增加package以后,我们在DOS下编译怎么做? javac -d . Test.java 3.Jav ...

  2. java:LeakFilling(struts2)

    1.mvc: 目的: 将展现和业务相分离. Model1:JSP+JavaBean Model2:MVC(JSP+Servlet+JavaBean) 优点: A.各司其职,互不干涉 B.有利于分工协作 ...

  3. java:LeakFilling(Spring)

    1.配置文件总结: bean节点: id:用户自定义名称,用于标识当前对象,可以通过getBean(String id)从容器中获取该对象. class:要交给spring容器创建的对象的全类名(包名 ...

  4. java:LeakFilling(Springmvc)

    1.后台可以同时多个对象接收前端页面的值:(如图两个都打印了) 2.参数绑定的注解,通过该注解可以解决参数名称与controller中形参名称不一致的问题: @RequestParam(name=&q ...

  5. java:LeakFilling(面向对象)

    1.类的修饰符只能是:public,默认的.另外:final  ,abstract,(修饰符 (只有:public, 默认,)interface+类名 ). 2.在main函数中创建对象时,new哪个 ...

  6. [3] 注解(Annotation)-- 深入理解Java:注解(Annotation)--注解处理器

    转载 http://www.cnblogs.com/peida/archive/2013/04/26/3038503.html 深入理解Java:注解(Annotation)--注解处理器 如果没有用 ...

  7. [1] 注解(Annotation)-- 深入理解Java:注解(Annotation)基本概念

    转载 http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html 深入理解Java:注解(Annotation)基本概念 什么是注解(An ...

  8. [2]注解(Annotation)-- 深入理解Java:注解(Annotation)自定义注解入门

    转载 http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 深入理解Java:注解(Annotation)自定义注解入门 要深入学习 ...

  9. 深入理解Java:注解(Annotation)自己定义注解入门

    深入理解Java:注解(Annotation)自己定义注解入门 要深入学习注解.我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前.我们就必须要了解Java为我们提供的元注解和相关定义注解的 ...

随机推荐

  1. mysql安装及加固

    mysql安装 查看是否安装mysql 我们先看一下有没有安装mysql yum list installed mysql | grep mysql 本地只安装了php链接mysql的库,没有安装my ...

  2. <现代C++实战30讲>笔记 01 | 堆、栈、RAII:C++里该如何管理资源?

    1.堆(heap),动态分配的内存区域,分配之后需手工释放(new, delete, malloc, free) 这种方式需要分配内存,释放内存,因此可能会造成内存泄露,或者内存碎片的问题. 2.栈( ...

  3. 02bag模板

    cost->体积          weight->价值 hdu2844 可达/不可达 #include <stdio.h> #include <algorithm> ...

  4. 利用SAX解析读取XML文件

    xml     这是我的第一个BLOG,今天在看<J2EE应用开发详解>一书,书中讲到XML编程,于是就按照书中的步骤自己测试了起来,可是怎么测试都不成功,后来自己查看了一遍源码,发现在读 ...

  5. 多线程(三) 同步synchronized

    五.同步 1.锁 多线程程序一般是为了完成一些相同的工作而存在的,因此有时间也会共享一些资源,例如对象.变量等等,此时如果不对各个线程进行资源协调,就会出现一些冲突,从而导致程序功能失效.例如下面的示 ...

  6. package+explorer不显示项目的问题

    昨天遇到了这个问题,百度了一下,怎么搞的都有,但是感觉都不理想,晚上的时候才在网上又发现这个方法,今天试了一下,效果还不错,分享一下. 点击 Window ---> Close All Pers ...

  7. VS开发框架DevExtreme v19.1全解析!全新的UI小部件

    行业领先的.NET界面控件DevExpress 正式发布了v19.1版本,本文将以系列文章的方式为大家介绍DevExtreme Complete Subscription v19.1中全新发布的Dro ...

  8. 关于数字加载的动画 jquery

    这是关于数字加载的一个动画,从0开始变化到设置的数字,依赖于jquery,效果如下所示 当然,数字要显示的位数是可以设置的,默认是全部位数的数字,设置显示位数可以直接传递参数,例如: html文件为: ...

  9. Python语法之垃圾回收机制

    目录 一 引入 二.什么是垃圾回收机制? 三.为什么要用垃圾回收机制? 四.垃圾回收机制原理分析 4.1.什么是引用计数? 4.2.引用计数扩展阅读 一 引入 解释器在执行到定义变量的语法时,会申请内 ...

  10. ORACLE获取BOM清单

    BOM 结构如图 -- 1DH142-022 (DRIVE) -- 100729421  (PCBA) -- 100764148  (HDA) -- 100687050 (VCM) -- 100701 ...