1.hibernate入门
来源:互联网 发布:少女前线数据配置错误 编辑:程序博客网 时间:2024/05/11 12:59
* hibernate冬眠的意思,持久化技术 持久化到硬盘中 内存持久化到硬盘
* mysql数据库 主键自增长 主键不用管 也可以手动插入 null 或者赋予其他值 只要数据库不存在这个值
* 传统jdbc 改动太大 代码繁琐 javabean属性发生变化 sql语句都要改
* Sql语句动态生成 保存时生成sql语句
* 中间文件关联javabean 和 表
* Hibernate 这条记录的唯一标识 javabean 表 唯一标识
* Jdbc 根据配置文件获取dbpc或者c3p0连接池
* jpa java持久化规范
* Sql 结构化查询语言 hql hibernate的查询语言
* Jta jdbc的事务处理局限性 只对一个数据库有效 工商银行 建设银行跨数据库事务处理 jta
* 规范 dtd文件在hibernate的核心架包下
* antlr-2.7.6.jar 一个语言转换工具 Hibernate利用它实现HQL到SQL的转换
* hibernate 解析xml文件 用 dom4j 解析
* javassist-3.9.0.GA.jar 代码生成工具 Hibernate用它在运行时扩展java类
<property name="name" type="string"> <!--column定义表中的列 sql-type表示表中列的类型 --> <column name="name" sql-type="varchar(255)"/> </property>* type="string":string表示的是hibernate的类型,该类型是java类型和sql类型之间的桥梁
java中的类型:String name; sql中的类型:varchar(255):
type="string": string(唯一)对应的是hibernate中的一个类org.hibernate.type.StringType
映射一个sql的varchar类型到java的String类型
* myelipse 关联源码 External File 文件 External Folder 文件夹
* sql-type 列中的类型 没写默认 varchar(255)
<!-- 用id来映射表中的主键 --> <id name="id" type="integer"> <column name="id"/> <!-- 配置主键的生成策略--> <generator class="increment"/> </id>* 必须要卸载property上面
* <generator class="increment"/> 主键生成策略 主键自增
* id 该对象的唯一标识
<!-- 配置数据库的方言,让hibernate知道连接的是哪个数据库--> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>* hibernate配置方言 hibernate自动生成sql语句 type为string mysql就是varchar oracle就是varchar2
<pre name="code" class="java"> //默认加载类路径下的/hibernate.cfg.xml文件 config.configure();
public Configuration configure() throws HibernateException {configure( "/hibernate.cfg.xml" );return this;}* 默认加载类路径下的hibernate.cfg.xml文件
//加载映射文件//方法一//config.addResource("cn/itcast/primer/Customer.hbm.xml"); //方法二(使用该方法加载映射文件,要求1:映射文件和Customer.java文件必须在同一个目录下 //2 映射文件和Customer.java文件文件的名称相同)config.addClass(Customer.class);* hibernate配置了主键自增长 数据库可以不用配自增长
* insert into customer (name, age, des, id) values (?, ?, ?, ?) id放后面 修改的时候好修改 养成习惯
private static SessionFactory sf=null;static{ Configuration config=new Configuration(); config.configure(); config.addClass(Customer.class); sf=config.buildSessionFactory();}* Configuration 类负责管理 Hibernate 的配置信息
* Hibernate运行的底层信息 持久化类与数据表的映射关系
* SessionFactory 对象中保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句。同时,SessionFactory还负责维护Hibernate的二级缓存
* 是线程安全的
* 构造 SessionFactory 很消耗资源,一般情况下一个应用中只初始化一个 SessionFactory 对象 用静态代码块构造
* Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate 运作的中心,所有持久化对象必须在 session 的管理下才可以进行持久化操作
* 此对象的生命周期很短。Session 对象有一个一级缓存,显式执行 flush 之前,所有的持久层操作的数据都缓存在 session 对象处。相当于 JDBC 中的 Connection
* Session是线程不安全的
* Transaction代表一次原子操作,它具有数据库事务的概念。所有持久层都应该在事务管理下进行,即使是只读操作。 涉及到持久化对象状态的改变
<mapping resource="cn/itcast/primer/Customer.hbm.xml"/>* 指定程序需要关联的映射文件
- 1.hibernate入门
- 1.hibernate入门
- 1.Hibernate之入门
- Hibernate 入门
- Hibernate 入门
- Hibernate入门
- Hibernate入门
- Hibernate入门
- Hibernate 入门
- Hibernate入门
- Hibernate入门
- Hibernate 入门
- Hibernate入门
- Hibernate入门
- Hibernate入门
- Hibernate入门
- Hibernate入门
- Hibernate入门
- Android应用测试与调试实战第3章:Android界面自动化白盒测试
- C语言数据结构中链队列细节
- Linux第一课 命令行BASH的基本操作
- IOS在导航栏上居中显示分段控件(UISegmentedControl)
- 【HEVC学习与研究】18.HEVC的条带头解析
- 1.hibernate入门
- LeetCode OJ 之 Compare Version Numbers (比较版本数)
- C语言21
- Moodle 中文 API 之 文件管理API
- Android uses-permission 权限大全
- 12/16/2014-读书笔记-《这是一个小众的时代》
- 类声明和定义中const、inline、默认参数、explicit、static、virtual的基本使用方法
- 折半查找算法
- python 入门学习---模块导入三种方式及中文注释