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. Gym - 101915D Largest Group 最大团

    给你一个二分图 问你最大团为多大 解一:状压DP 解二:二分图最大匹配 二分图的最大团=补图的最大独立集 二分图最大独立集=二分图定点个数-最大匹配 //Hungary #include<bit ...

  2. JavaScript入门学习之一——初级语法

    JavaScript是前端编辑的一种编程语言(不同于html,html是一种标记语言),所以和其他的编程语言一样,我们将会从下面几点学习 基础语法 数据类型 函数 面向对象 JavaScript的组成 ...

  3. 还不会使用MyEclipse的Breadcrumb导航功能?再不看你就OUT了

    MyEclipse CI 2019.4.0安装包下载 使用DevStyle Breadcrumb导航可以轻松地浏览工作区,只需遵循breadcrumb路径即可.DevStyle作为Eclipse插件提 ...

  4. k8s命令集锦

    集群环境相关命令$kubectl vertion --short=true #显示当前使用的客户端及服务端程序版本信息$kubectl cluster-info #获取集群信息$kubectl api ...

  5. keep-alive实现返回保留筛选条件及筛选结果

    实现页面返回时,保留筛选条件和筛选结果 说明 . keep-alive 是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM 实现 结合router实现部分页面缓存 模板应用 ...

  6. 手动编译源码安装包报错 fatal error:cruses.h: no such file or direcrory

    很明显是缺少cruses.h这个文件,但是用yum搜索又搜不到,可能是我的yum源的库包太少的原因吧. 后来多方查找,发现cruses.h这个头文件属于ncurses模块,需要安装ncurses-de ...

  7. 29.连续子数组的最大和(python)

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  8. UVA 12063 Zeros and ones 一道需要好好体会的好题

    #include<bits/stdc++.h> #include<stdio.h> #include<iostream> #include<cmath> ...

  9. luoguP2285 [HNOI2004]打鼹鼠 x

    P2285 [HNOI2004]打鼹鼠 题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某 ...

  10. Windows安装MongoDB .zip绿色版

    本文链接:https://blog.csdn.net/HTouying/article/details/88428452 MongoDB官网下载链接:https://www.mongodb.com/d ...