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. AIX的shell脚本异常笔记

    一点点心得:1.set -x 运行时显示明细,前面加#则不显示2.空格要打好,如if [ -n "str" ]; then 可以,if[ -n "str" ]; ...

  2. 动画学习之Music图形绘制

    今天来实现一个类似于网易云音乐类似的动态效果,在用网易云音乐听歌时会有一个类似这样的效果,如下: 而咱们这次要实现的效果如下: music图形的绘制: 在实现动画之前先来将静态的图形绘制出来, 如下: ...

  3. java代码调用exe(cmd命令)

    public class ShellCommand{    public static void execCmd(String cmd, boolean wait)    {        execC ...

  4. java 学习笔记(四) java连接ZooKeeper

    public class Demo2 { public static void main(String[] args) { String connectString = "192.168.1 ...

  5. hdu3586 Information Disturbing[二分答案+树形DP]

    给定 n 个节点的树,边有权值.1 号点是根,除了 1 号点外的度数为 1 的节点是叶子.要求切断所有叶子和 1 号点之间的联系,切断一条边要花费这条边上权值对应的代价,要求总的代价不超过 m.在满足 ...

  6. Python基于机器学习方法实现的电影推荐系统

    推荐算法在互联网行业的应用非常广泛,今日头条.美团点评等都有个性化推荐,推荐算法抽象来讲,是一种对于内容满意度的拟合函数,涉及到用户特征和内容特征,作为模型训练所需维度的两大来源,而点击率,页面停留时 ...

  7. C# 扩展方法——去重(Distinct)

    其他扩展方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html IEnumerable的Distinct扩展方法,当集合元素为对象时,可用于元素对 ...

  8. eclipse - -解决复制的文件中文乱码问题

    Window->Preferences->Web->JSP Files 面板选择 ISO 10646/Unicode(UTF-8)

  9. C# 桌面截屏 添加鼠标

    #region 第一种方法 [DllImport("user32.dll")] static extern bool GetCursorInfo(out CURSORINFO pc ...

  10. 在window环境下安装numpy模块(包)

    刚开始接触python,安装numpy着实费了不少劲.总结一下,新人少走弯路. numpy作用: 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处 ...