文档库 最新最全的文档下载
当前位置:文档库 › Hibernate笔记

Hibernate笔记

1.hibernate的概念

#Hibernate ORM框架数据持久层的框架与数据库有紧密的关系

#Hibernate 冬眠

2.hibernate的包结构

#doc Hibernate的官方文档

#eg Hibernate提供参考的小例子

#ect Hibernate核心配置文件的模板

#test Hibernate技术的测试文档

#src Hibernate的源代码

#lib Hibernate的所有的jar包

#grammar hql语言的语法定义

#Hibernate3.jar Hibernate的核心jar包

3.hibernate的核心jar包

#找到Hibernate的11个基本的jar包还数据库的jar包

#antlr.jar

#cglib.jar

#asm.jar

#asm-attrs.jars

#commons-collections.jar

#commons-logging.jar

#ehcache.jar

#hibernate3.jar

#jta.jar

#dom4j.jar

#log4j.jar

#ojdbc6.jar

4.关于hibernate.cfg.xml的作用

#hibernate.cfg.xml 配置数据库连接的核心配置文件有且只有一个

#配置核心配置文件具体的每一个property 请参考hibernate.properties文件#

#

#oracle.jdbc.driver.OracleDriver #用户名

#jdbc:oracle:thin:@localhost:1521:orcl

#密码

#org.hibernate.dialect.OracleDialect

#

#

方言:dialect 根据数据库的不一样生成该数据库可以识别的语句

每个数据库的分页语句都不一样

Hql 就是一门世界语面向对象的sql语句

MSSQL:select top 5 * from 表名 where 主键 in (select 主键 from 表名) sql

MYSQL:select * from 表名 limit 0,5 mysql

ORACLE:select * from (select t.*,rownum rn from 表名 t order by t.id ) where rn>= ? and rn<=? Osql 5.*.hbm.xml文件的作用

#*.hbm.xml 配置类和数据库表的映射的核心配置文件 *一定要和类名保持一致无限多个

#一个vo有一个hbm.xml文件

#配置类和数据表的映射的文件

#类在哪个包下配置文件就应该在该包下

# Student类

# private int stu_id;

# private String stu_name;

# private String stu_sex;

# private int stu_age;

# private String stu_address;

#对应的Student .hbm.xml文件

#

#

#

#

#

#

#

#

# #

#

#将写好的Student.hbm.xml 的路径通过

map resource=“”填入到hibernate.cfg.xml配置文件中

#将ECT文件夹中的log4j.properties文件拷贝到src目录中

6.最基本的增删查改操作

Save update delete get load saveorupdate

7.对于HibernateUtil的封装操作

8.从类生成表

#通过以下语句根据hbm配置文件去建表

#Configuration cfg =new Configuration();

cfg.configure();

//通过我们的类来建一张表

SchemaExport export =new SchemaExport(cfg);

export.create(true, true);

9.从表反向成为类的步骤

1.打开Myeclipse Database explorer视图

2选择要反向生成类的表

10.使用Myeclipse自动添加hibernate支持

1.使用Myeclipse添加Hibernate项目的支持

2.选择hibernate的版本以及相应的jar包 core.libraries里面有11个核心jar 包

3.是否生成hibernate.cfg.xml配置文件有一个可以打钩的复选框代表了配置文件在我们配置完毕之后自动打开

4.从已有的myeclipse.database.explorer自动扫描出当前已经配置好的好用的数据库连接,将读取出来的信息加载到当前的hibernate.cfg.xml文件中

5.帮助我们生成一个hibernate工具类默认的名字叫hibernatesessionFactory

11.hibernate.cfg.xml中可选配置

show_sql=true

format_sql=true

Hbm2ddl.Auto Create|update

如果取值是create 不管你执行任何的操作先把表删了再说再重建再执行你的sql语句

如果取值是update的话如果发现了你的表结构没有变,就插入数据如果表结构变了,也继续插入,只是数据置空

如果你这里表结构需要重新设计,请使用create

如果需要插入数据是使用update

12.主键生成策略

#被映射的类必须定义对应的数据表的主键字段

#主键的特点:非空不能相同

#Hibernate为我们提供了很多的主键的生成方法

#达到主键非空不能相同的目的

#Increment mysql的主键生成方式类似于sql server identity 可以支持oracle

#Identity 这个sql server mysql db2 不支持oracle

#sequence 是oracle支持的 haha就是当前你oracle中存在的一个序列名

haha

#hilo 高低位的算法现在我们的数据库创建一个表hahaxixi 里面有一个字段叫nextvalue 初始值是1 每插入100数据就加next_value就加1个

hahaxixi

next_value

100

#seqhilo 创建一个临时的sequence叫做next_value 初始值是0

next_value

0

#uuid 生成一长串的不同的字符串例如4028ac1639f73f7e0139f73f8147000

#guid是mssql server中的一种主键生成方式例

如:6E5B36946881432DB3E780014EE19D3A

#native 会自动选择

在oracle中设置主键生成的方式native,它会以sequence的形式去生成主键,这个自动生成的sequence的名字叫hibernate_sequence 这个序列会被每一个实体所共享

#assigned 让应用程序在save之前为对象分配一个标示符

#select 使用触发器来生成一个主键

#sequence-identity 使用数据库序列来生成唯一值

13.关系映射(双向和单向)

在此处声明:Myeclipse生成的hibernateSessionFactory有bug

主键双向一对一

public class Man{

/*男人的编号*/

private int man_id;

/*男人的名字*/

private String man_name;

/*男人对应的女人*/

private Woman woman;

最重要的配置还是在从表这边

public class Woman{

/*女人的编号*/

private int woman_id;

/*女人的名字*/

private String woman_name;

/*可以通过这里找到关联的男人*/

private Man man;

man

主外键一对一的关系

在从表中添加一个字段(非空唯一和主表的主键相关联)

public class Woman {

private int woman_id;

private String woman_name;

private Man man; /*这个字段是必须的就代表了在表中再添加一个字段*/

key="true">

Man表

public class Man {

private int man_id;

private String man_name;

private Woman woman;

这里的property-ref就代表了引用Woman类的对应的配置文件中的叫做man的这个属性一对多

* 作者: 赵XX

* 时间:2012-9-24 下午04:41:08

* 版权说明:软帝信息科技有限公司

* 说明:部门表

*/

public class Dept {

/*部门编号*/

private int dept_id;

/*部门名称*/

private String dept_name;

部门表的映射文件

*

* 作者: 赵XX

* 时间:2012-9-24 下午04:40:46

* 版权说明:软帝信息科技有限公司

* 说明: 员工表

*/

public class EmpVO {

/*员工编号*/

private int emp_id;

/*员工名称*/

private String emp_name;

/*这里就代表员工属于哪个部门*/

private Dept dept;

员工表的映射文件

在做增加的时候

如果先增加部门在增加员工 2条语句

Hibernate: insert into Dept (dept_name) values (?)

Hibernate: insert into EmpVO (emp_name, dept_id) values (?, ?)

先增加员工再增加部门 3条语句最后一条语句是用来建立关联关系的是一条update语句

Hibernate: insert into EmpVO (emp_name, dept_id) values (?, ?) Hibernate: insert into Dept (dept_name) values (?)

Hibernate: update EmpVO set emp_name=?, dept_id=? where emp_id=?

我们可以从多方找到一方

单向一对一的关联

双向关联我们可以从一方获得多方

*

* 作者: 赵XX

* 时间:2012-9-24 下午04:41:08

* 版权说明:软帝信息科技有限公司

* 说明:部门表

*/

public class Dept {

/*部门编号*/

private int dept_id;

/*部门名称*/

private String dept_name;

private Set empvos=new HashSet();

通过一对多多对一的出来的结论

一对多的关联

多的一方的many-to-one是必不可少的

一的一方的set中的one-to-many是可有可无的

如果不写一的一方那就是一个单向关联

如果一的一方写了多的一方也写的就是双向关联

主键一对一(主表和从表)

从表的one-to-one是必不可少的contrainted是必须的

从表的主键生成策略必须是foreign

去引用one-to-one的属性name的名称

单向的一对一

主表中的one-to-one是可有可无的

如果一的主表配置了one-to-one从表也配置了one-to-one

就是主键一对一双向关联

主外建一对一(主表和从表)

建立主外建的一对一的关联

在从表中添加一个字段(非空唯一和主表的主键相关联)

双方去维护关系

主表的one-to-one的配置不可少

从表many-to-one的配置也必不可少

唯一的非空的

通过主表的one-to-one的property-ref去应用从表中的many-to-one

多对多

/**

*

* 作者:赵丹

* 时间: 2012-9-26上午10:06:11

* 说明: 角色实体类

* 版权信息:软帝信息科技有限公司

*/

public class CommonRole {

/*角色编号*/

private int role_id;

/*角色名称*/

private String role_name;

/*通过角色可以获得多个用户*/

private Setusers=new HashSet();

/*通过角色可以获得多个资源*/

private Setres=new HashSet();

/**

*

* 作者:赵丹

* 时间: 2012-9-25下午3:19:48

* 说明: 用户实体类

* 版权信息:软帝信息科技有限公司

*/

public class CommonUser {

/*用户编号*/

private int user_id;

/*用户名*/

private String user_name;

/*用户密码*/

private String user_password;

/*用户状态*/

private int user_status;

/*可以找到多个角色*/

private Set roles=new HashSet();

/**

*

* 作者:赵丹

* 时间: 2012-9-26上午10:10:43

* 说明:资源实体类

* 版权信息:软帝信息科技有限公司

*/

public class CommonRes {

/*资源编号*/

private int res_id;

/*自身节点的编号*/

private int node_id;

/*父节点的编号*/

private int p_id;

/*资源名称*/

private String res_name;

/*资源的连接地址*/

private String res_url;

/*可以得到资源对应的角色*/

private Set roles=new HashSet();

14.组件映射

组件映射的概念:把通用的实体的属性抽象出来单独作为一个类

当前我们将person做了一个通用组件

Hibernate学习笔记

Hibernate项目的构建与配置 1.在项目里倒入Hibernate所必须的Jar包 (1)Hibernate框架可以使用在任何的Java项目里,并不一定是Web项目。只需要在项目里 倒入Hibernate所必须要使用的jar包就可以了。 (2)在Hibernate的官网下载hibernate-release-4.2.2.Final.zip解压,要使用Hibernate 必须导入的jar包就在目录“hibernate-release-4.2.2.Final\lib\required”下。倒入此路径下的所有jar包就可以了。 2.配置hibernate.cfg.xml文件 (1)配置hibernate.cfg.xml文件可以参考“\project\etc”目录下的hibernate.cfg.xml 文件与hibernate.properties文件。 (2)使用Hibernate连接MySQL的hibernate.cfg.xml配置文件如下: (设置显示Hibernate产生的SQL语句) true (设置MySQL的SQL语法的方言) org.hibernate.dialect.MySQLDialect (设置MySQL的驱动程序) org.gjt.mm.mysql.Driver (设置MySQL的数据库路径、用户名、密码) jdbc:mysql:///java root lizhiwei (设置当数据库要保存的表不存在时,就新建表) update (设置对象与数据库表的关系映射文件) (3)此配置文件一般放在项目的src目录下。(注意:在项目中要加入MySQL的驱动jar包)3.编写实例类与对象-关系映射文件 (1)一个实例类对象就是数据库表里的一条记录,关系映射文件就指明了类的成员变量与数 据库字段间的关系以及该类对象保存在哪个表中。 (2)实例类User.java: public class User { private long id; private String name; private int age; private char sex; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { https://www.wendangku.net/doc/098228838.html, = name; }

Struts2+Hibernate开发笔记

Struts2 + Hibernate开发笔记(一) 由于开发任务紧张,因为这里的开发笔记,仅用于记录遇到的几个struts2和hibernate结合开发的现象.不对其做分析. 1. 在使用struts2时,页面和action之间的传值 这是struts2和struts1最大的区别. Struts2中,action和jsp页面之间的信息交互,是通过action中定义的成员变量来实现的. 例如,我在一个名为EstateAction的类中有如下定义 public class CityAction extends BaseAction { private MthCity mthCity ; private String cityName; private Long cityId private int couter; public String loadCity() throws DataAccessException, BaseException{ counter ++; return "city"; } } 然后,这里上面的类中的成员类MthCity的定义如下 public class MthCity implements java.io.Serializable { private Long cityId private String cityName; public MthCity() { public Long getCityId() { return this.cityId; } public void setCityId(Long cityId) { this.cityId = cityId; public String getCityName() { return this.cityName; } public void setCityName(String cityName) { this.cityName = cityName; } } 这是一个Hibatenate使用的数据对象POJO类. 有了这两个类后,我们来看看Struts2的Action和JSP页面之间是如何交互的 一. JSP -> Action Jsp页面 以下是一个jsp页面submit.jsp.这个页面只有一个功能,就是向struts提交申请 <%@ page language="java" contentType="text/html; charset=gbk"%> <%@ include file="/common/taglibs.jsp"%>

Hibernate学习入门教程

Hibernate学习入门教程 开发环境搭建 [日期:2015-08-11] 来源:Linux社区作者:doctorJoe [字体:大中小] 其实一两个月前就在了解Hibernate方面的知识了,但一直以来,都没有好好的总结,而且一直使用的是myeclipse,感觉有些傻瓜式的操作就可以搭建起Hibernate的开发环境,但这样一点都不好,没有理解到Hibernate到底是怎么配置的,所以你今天特使用Eclipse来一步一步搭建Hibernate的开发环境,下面,正式进入正题。 在Hibernate中开启日志https://www.wendangku.net/doc/098228838.html,/Linux/2015-07/120499.htm Hibernate+JUnit测试实体类生成数据库表https://www.wendangku.net/doc/098228838.html,/Linux/2015-07/120161. htm Hibernate整体理解https://www.wendangku.net/doc/098228838.html,/Linux/2014-07/104405.htm Hibernate的映射机制https://www.wendangku.net/doc/098228838.html,/Linux/2014-12/110265.htm 新建一个web项目,名字就随便吧,你喜欢什么名字就什么吧,这是我的截图。

引入hibernate的依赖jar包,我使用的是hibernate-release-4.3.10.Final,下载好后解压,打开压缩包下的lib目录下的require文件夹,这是hibernate的所以来的必须的jar包,接下来,在刚才新建的项目里新建一个libs文件夹,将刚才的所说的jar包copy进去,另外,由于我们需要连接MySQL数据库以及使用JUnit测试,将所需的mysql-connector-java-5.0.8-bin.jar和junit-4.5.jar两个jar包引用进去,关于这些jar包,可以在网上搜索。接下来,就是把这些jar 包添加到编译环境中去,选中libs下的jar包,右击选择Build Path –>Add to Build Path,这样就把依赖jar包成功添加进去了。 继续往下,我们需要配置最重要的hibernate配置文件hibernate.cfg.xml以及进行日志处理的log4j.properties属性文件:打开上一步解压后的hibernate文件夹,打开project—>etc文件夹,将该文件夹下的hibernate.cfg.xml和log4j.properties文件拷贝到项目的src文件夹下,打开hibernate.cfg.xml文件,将session-factory标签中的内容替换成如下的内容: org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql:///hibernatedemo root yzp140103 这样就配置好了。 接下来,要做的就是做开发测试了:在项目的src目录下新建一个实体类包com.joe.entity,在该包下新建一个实体类Student,代码如下: package com.joe.entity; import java.io.Serializable;

使用Hibernate开发租房系统+(笔记)

第一章Hibernate入门 本章技能目标 理解持久化的概念 理解ORM的概念 了解Hibernate的基本原理 学会编写实体映射文件 学会使用hibernate完成数据增删改操作 学会在项目中使用Hibernate 本章单词 Hibernate:对象关系映射框架。Object:对象。Relational:关系模型。Mapping:映射。Get:得到。Load:加载。Transient:瞬时。Persistent:持久化。Detached:分离 本章简介 对象——关系映射。框架:hibernate Hibernate 的优势 是一个优秀的Java持久化层解决方案,主流的对象——关系映射工具。简化了JDBC繁琐的编码。Hibernate将数据库的连接信息都存放在配置文件中。 持久化与ORM ORM(Object Relational Mapping ,对象关系映射). 当程序退出后,这些数据就不复存在,所以,我们称这些数据的状态为瞬时的(Transient) 有些数据,在程序退出后,还以文件等形式保存在存储设备中,我们称这些数据的状态是持久的(Persistent) 在编写程序的时候,以面向对象的方式处理数据,保存数据的时候,却以关系型数据库的方式存储,所以,客观上我们需要一宗能在两者间进行转换的机制,这样的机制就是ORM(对象关系映射) 准备Hibernate 1.下载需要的jar包 2.部署jar包 3.创建Hibernate配置文件 4.创建实体类和实体映射文件 Hibernate.cfg.xml配置内容: Dialect:参数:用于配置Hibernate使用的不同数据库类型。 Connection.dirver_class参数:表示数据库驱动。 https://www.wendangku.net/doc/098228838.html,ername参数:表示数据库用户名。 Connection.password参数:表示数据库用户秘密。 Connection.url参数:表示数据库URL。 Current_session_context_class参数:指定当前Session范围和上下文。 Show_sql参数:参数为true,则程序运行时在控制台输出SQL语句。 配置好Hibernate的配置文件,就要实现数据库表和实体对象之间的映射,映射信息在映射文件中。 一个实体类到数据库表??(表名)映射的配置,???.hbm.xml其中各元素的含义如下: Class元素:定义一个实体类的映射信息 常用属性如下: Name表示对象实体类的全限定名。Table表示对应的数据库表名。 Id元素:定义该属性到数据库表主键字段的映射。 常用属性如下: Name表示实体类属性的名字。Type表示实体类属性的类型。Column表示数据库表字段的名字,也可在子元素column 指定。 Generator元素:id元素的子元素用于指定主键的生成策略。 常用属性及子元素如下: Class用来指定具体主键生成策略。Param元素用来传递参数。 常用主键的生成策略如下:increment,identity,native。。。。 Property元素:定义实体类中属性和数据库中表的字段的对应关系。 常用属性如下: Name表示实体类属性的名字。Type表示实体类属性的类型。Column表示数据库表字段的名字,也可在子元素column

MyEcLipse9.0配置TomCat和hiberhate学习笔记

MyEcLipse9.0配置TomCat和hibernate学习笔记 最近在学习Android,对于一个刚开始学习Android的人来说,配置开发环境就是个大问题,因为Android的企业级开发需要配置的环境不是那么容易的,特此将此笔记文档与大家共享,虽然可能有的朋友不知道我现在说的是什么,但对于一个想在编程方面继续发展的人来说,这是非常重要的 【1】采用标准的JA V A开发环境MyEclipse9.0(最新版) 【2】中间服务器采用入门级的TomCA T(绿色版,解压既能使用) 【3】Android的ADT插件采用Android2.3 【4】数据库采用轻量级的MySQL 【5】还需要JA V A的JDK 【6】还有Android虚拟机的SDK做支持 【7】开发工具,这里我就不上传了,因为群空间太小,就截个图算了,如果大家有兴趣搞Android开发的话,可以自己去网站下载 【8】开发工具有了,下面怎么把中间件服务器TomCat和数据库MySQL整合到MyEcLipse9.0中呢 <1>现将TomCat解压到C盘的ProgramFile文件夹下 <2>因为用的TomCat是绿色版的所以解压既能使用 在运行处敲cmd进入DOS窗口进入刚才装TomCat的目录

进入目录以后,我们要执行的是启动中间件服务器的组件 所以到 Bin下启动中间件服务器的批处理文件 如上图所示,启动startup.bat在bin目录下直接敲startup.bat,启动以后会如下图所示

可以看到启动信息和启动的时间,下面我们可以通过浏览器来查看我们的中间件服务器 在浏览器的地址栏上打 这里的localhost代表本地,也就是你自己的机器,也可以改成IP地址127.0.0.1也能代表本机,后面的8080是端口号,这里需要注意的是你的8080端口号必须没有被正用,否则得改端口号 运行效果如下图 这表示中间件服务器tomcat已经没有问题 【二】 安装MySQL数据库,这里就不截图了,需要注意的是,MYSQL的字符集,因为要开发基于中文的软件,所以一般选择MYSQL的字符集为UTF-8,还有配置MSQL的时候端口为:3306.用户名和我们的LINUX用户名一样,都是root密码可以自定义,这些不要选错,MYSQL

Java相关课程系列笔记之十四Hibernate学习笔记(建议用WPS打开)

! Hibernate学习笔记 Java相关课程系列笔记之十四

笔记内容说明 Hibernate(梁建全老师主讲,占笔记内容100%);

目录 一、 Hibernate的概述 0 Hibernate框架的作用 0 Hibernate访问数据库的优点 0 JDBC访问数据库的缺点 0 Hibernate的设计思想 0 二、 Hibernate的基本使用 (1) Hibernate的主要结构 (1) Hibernate主要的API (1) Hibernate使用步骤 (1) HQL语句(简要介绍) (3) 三、数据映射类型 (3) 映射类型的作用 (3) type映射类型的两种写法 (3) 四、 Hibernate主键生成方式 (3) 五种生成方式 (3) 五、 Hibernate基本特性 (4) 对象持久性 (4) 处于持久状态的对象具有的特点 (4) 三种状态下的对象的转换 (4) 批量操作:注意及时清除缓存 (4) 案例:三种状态下的对象使用 (4) 一级缓存机制(默认开启) (4) 一级缓存的好处 (4) 管理一级缓存的方法 (4) 延迟加载机制 (4) 具有延迟加载机制的操作 (4) 常犯的错误 (4) 延迟加载的原理 (4) Session的get和load方法的区别 (4) 延迟加载的好处 (5) 案例:测试延迟加载 (5) 案例:重构NetCTOSS资费管理模块 (5) Java Web程序中如何用延迟加载操作(OpenSessionInView) (5) 六、关联映射 (5) 一对多关系one-to-many (5) 多对一关系many-to-one (5) 多对多关联映射many-to-many (5) 关联操作(查询join fetch/级联cascade) (5) 继承关系映射 (5) 七、 Hibernate查询方法 (6) HQL查询 (6) HQL和SQL的相同点 (6)

马士兵hibernate学习笔记(原版)-你信不信,我反正是信了

马士兵hibernate学习笔记 课程内容 (6) 1HelloWorld (6) 2Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping (6) 3常见的0/R框架(了解) (6) 4hibernate基础配置(重点) (6) 5ID生成策略(重点 AUTO) (6) 6Hibernate核心开发接口介绍(重点) (6) 7对象的三种状态(了解) (6) 8关系映射(重点) (6) 9Hibernate査询(HQL) (6) 10在Struts基础上继续完善BBS200 (6) 11性能优化(重点) (6) 12补充话题 (6) 风格 (6) 1先脉络,后细节 (6) 2先操作,后原理 (6) 3重Annotation,轻xml配置文件 (6) 资源 (6) 1http://www. https://www.wendangku.net/doc/098228838.html, (6) 2hibernate zh_CN文档 (6) 3hibernate annotation references (6) 环境准备 (6) 1下载hibernate-distribution-3.3.2.GA-dist (6) 2下载hibernate-annotations-3[1].4.0.GA (6) 3注意阅读hibernate compatibility matrix(hibernate 网站download) (6) 4下载slf4jl.5.8 (7) Hibernate HelloWorld (7) 1建立新java 项目,名为hibernate_0100_HelloWorld (7) 2学习建User-library-hibernate,并加入相应的jar包 (7) 3引入mysql的JDBC驱动包 (7) 4在mysql中建立对应的数据库以及表 (7) 5建立hibernate 配置文件hibernate.cfg.xml (7) 6建立Student 类 (7) 7建立Student 映射文件 Student.hbm.xml (7)

hibernate学习笔记

第一次课: 持久化:就是把瞬时状态的数据转变为持久化状态的数据,这一个过程就是持久化。 (java中内存分为:栈(变量,方法,形参都是在栈上),堆(new出来的对象在堆上)) 1)瞬时状态:刚new出来,在内存中存在的对象就是瞬时状态的。如果程序结束,对象就会被回收。 2)持久化状态:在磁盘或者是数据库中存在的数据就是持久状态。 Hibernate是什么? 1)是一个优秀的持久化框架,对jdbc进行进一步的封装。(hibernate,ibatis )。 2)是一个ORM (Object relation mapping ). Mysql,oracle,access 是关系型数据库 = hibernate操作的是对象。 使用hibernate的步骤:1)新建项目 2)引入jar包(hibernate最少依赖8个jar包) 3)新建 hibernate配置文件(hibernate.cfg.xml) ,放在src根目录下面。 用于数据库的配置信息。 com.mysql.jdbc.Driver root abc jdbc:mysql:///fwcz org.hibernate.dialect.MySQLDialect create 4)写bean/vo类,并且编写映射文件。

传智播客Spring25视频教程学习笔记

传智播客Spring2.5视频教程学习笔记1.全面阐释Spring及其各项功能 1.1Spring是什么? Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是简化企业开发。 1.2IoC控制反转 所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。 1.3依赖注入(DI:Dependicy Injection) 所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。 1.4面向切面(AOP) 1.5为什么要使用Spring 解耦(各层之间通过接口调用) 提供事务、消息服务 单例模式 AOP支持 辅助类(JDBCTemplate,HibernateTemplate) 支持与Struts,Hibernate,JPA等框架的集成 1.6实例化bean的方式 构造函数(90%使用),静态工厂方法,实例工厂方法 1.使用类构造器实例化 2.使用静态工厂方法实例化 public class OrderFactory { public static OrderServiceBean createOrder(){ return new OrderServiceBean(); } } 3.使用实例工厂方法实例化 public class OrderFactory { public OrderServiceBean createOrder(){ return new OrderServiceBean(); } }

Hibernate学习笔记

1、session = HibernateSessionFactory.getSession();// 开启连接 Transaction tx = session.beginTransaction(); // 开启事务 Student stu = (Student) session.get(Student.class, id); session.delete(stu); https://www.wendangku.net/doc/098228838.html,mit(); 2、session.save(stu); 3、Query q = session.createQuery("from Student"); list = q.list(); 4、session.update(stu); 5、url:jdbc:mysql://localhost:3306/HibernateProject01 Driver:com.mysql.jdbc.Driver 6、在src源码包中新建log4j.properties log4j.rootLogger=info,CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=System.out https://www.wendangku.net/doc/098228838.html,yout=org.apache.log4j.PatternLayout https://www.wendangku.net/doc/098228838.html,yout.ConversionPattern= %4p[%t](%F:%L) -%m%n 7、 8、session = HibernateUtil.currentSession(); // 开启连接 session.setFlushMode(FlushMode.AUTO); tx = session.beginTransaction(); // 开启事务 stu = (Student) session.get(Student.class, "ff80808105416d"); https://www.wendangku.net/doc/098228838.html,mit(); 9、one-to-one和many-to-one中,lazy只可以为false,或不填写 当不填写的时候,采用相应的类里的设置 Set标签是可以的 10、outer-join="true"预先抓取,sql文中是利用连接来实现 常常与hibernate.cfg.xml中的 1 一起使用 11、批量立即加载 在实现上,采用where s.team_id in (?, ?)的形式 12、stu = (Student)session.get(Student.class,"ff80808105416d30001"); stu.setCardId("456"); // 对脱管对象进行更改

Hibernate操作数据库课堂笔记HQL

HQL(Hibernate Query Language) Hibernate操作对象(实体类)达到操作数据库表的持久化的一种技术,其实就是对JDBC进行封装让我们使用面向对象的思维去操作关系型数据库。 编写HQL语句注意事项 关键字select update from where等sql关键字不区分大小写 操作实体类对象以及实体类属性必须区分大小写。 操作的是员工表和部门表 员工表 部门表 前提工作[新建web工程添加hibernate支持jar文件和数据库支持jar文件] 编写实体类 编写映射文件xxx.hbm.xml 达到目的 将实体类名和对应数据库表进行映射 将实体类属性和对应的数据库表字段进行映射 编写配置文件[默认放在src/hibernate.cfg.xml] (配置连接数据库的相关信息注意方言添加xxx.hbm.xml的映射文件的位置) 创建包进行分层 com.chinasofti.util放置工程的一些帮助类HibernateUtil.java 提供获取session对象 com.chinasofti.dao.impl 定义操作的实体类接口和操作的实体类接口的实现类

以上项目目录结构如上 为了简单暂时不演示junit单元测试 com.chinasofti.test 功能点1 查询所有部门信息? Sql select * from dept; Hql from Dept;--Dept是实体类对象 使用Query接口的list(); 接口的实现类 List集合遍历使用Query接口的iterator();

接口的实现类 Iterator集合遍历 功能点2 根据部门名称查寻该部门相关信息(含地理位置) dname具有唯一性? 已知dname 获取loc Sql select * from dept where dname=‘’; HQL from Dept where dname=?; --分别是实体类类名和实体类属性 占位符的使用 方式一使用? 抢位置从【0】开始 方式二使用命名参数查询抢位置:别名 功能点3 动态查询条件最多有3个条件但不一定三个条件都有 注意:string StringBuffer StringBulider三个区别? 实现动态设置参数的个数 操作员工表

SpringMvc学习笔记(二)通过实例学习注解式控制器

Springmvc学习笔记(二) 通过实例学习注解式控制器 一、注解式控制器简介 Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类。Spring2.5之后引入注解式处理器支持,通过@Controller 和@RequestMapping注解定义我们的处理器类。 通过笔记(一)的例子,我们已经初步认识了基于注解的控制器实现方式。下面我们来详细介绍一下注解式控制器运行流程与使用方法。 @Controller:用于标识是处理器类; @RequestMapping:请求到处理器功能方法的映射规则; @RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定; @ModelAttribute:请求参数到命令对象的绑定; @SessionAttributes:用于声明session级别存储的属性,放置在处理器类上,通常列出模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中; @CookieValue:cookie数据到处理器功能处理方法的方法参数上的绑定; @RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定; @RequestBody:请求的body体的绑定(通过HttpMessageConverter进行类型转换); @ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换); @ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因; @ExceptionHandler:注解式声明异常处理器; @PathVariable:请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定,从而支持RESTful架构风格的URI;

注解整理笔记

注解整理笔记 @是java中的注解。 JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 1@SuppressWarnings("serial") 实体类注解例子 2@Entity 3@Table(name = "T_BASE_ROLE") 5@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = CacheConstants.HIBERNATE_CACHE_BASE) //jackson标记不生成json对象的属性 4@JsonIgnoreProperties (value = { "hibernateLazyInitializer" , "handler","fieldHandler" ,"resources","users"}) public class Role extends BaseEntity implements Serializable { 6@Id 7@GeneratedV alue(strategy = GenerationType.AUTO) 8@Column(name = "ID") public Long getId() { return id;} @Excel(exportName="记录创建者", exportFieldWidth = 30) protected String createUser; 9@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") @Column(name = "CREATE_TIME", updatable = false) 10@Temporal(TemporalType.TIMESTAMP) public Date getCreateTime() { return createTime;} 11@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = https://www.wendangku.net/doc/098228838.html,ZY) 12@JoinTable(name = "T_BASE_ROLE_RESOURCE", joinColumns = { @JoinColumn(name = "ROLE_ID") }, inverseJoinColumns = { @JoinColumn(name = "RESOURCE_ID") }) 13@OrderBy("id") public List getResources() { return resources;} 14@Transient @SuppressWarnings("unchecked") public List getResourceIds() { if (!Collections3.isEmpty(resources)) { resourceIds = ConvertUtils. convertElementPropertyToList(resources, "id"); } return resourceIds;}

Hibernate韩顺平讲课笔记

1. hibernate 是个框架framework 是orm框架,orm(object relation mapping)对象关系映射框架。hibenate处于我们项目的持久层位置(所以又称为持久层框架); 2. hibernate实际上是对jdbc进行轻量级的封装。 hibernate 定义:是对jdbc进行轻量级的orm框架封装,充当项目的持久层。 3. hibernate的学习的内容: A: hibernate api B:hibernate.cfg.xml(这个是hibernate的核心配置文件)、 C:对象关系映射文件 4. 使用hibernate的好处 5. hibernate的基础还是JAVA的反射机制。 注意:在把hibernate的jar包粘贴到lib文件下后,要引入到项目中去,

引入成功后,在Referenced Librares中能看到引入的这些jar包。 6 hibernate的开发方式有三种:

注意:什么是pojo (plan old/ordinary java object 简单的java 对象) 注意:hibernate基本原理图 使用先建数据库的方式开发hibernante,下面是开发流程 1 创建一个项目 javaProject 2 创建一个简单项目框架示意图

3.在Myeclipse中引入hibernate开发包。 4.创建employe表 5. 创建一个domain对象和对象关系映射文件 注意:对象关系映射文件作用是用于指定domain对象和表的映射关系,该文件的取名是哟规定:domain对象.hbm.xml。一般我们放在和domain对象同一个文件夹(包)下。 A:创建domain对象 B:创建对象关系映射文件。domain对象.hbm.xml

hibernate4学习笔记

Hibernate4学习笔记 本人全部以自学为主,在网上收集各种学习资料,总结归纳学习经验,现将学习路径给予大家分享。 此次学习的hibernate的版本是:hibernate-release-4.2.4.Final(截止2015年7月31日最新版),JAVA的版本是:java8.0,使用的开发工具是:Eclipse Mars Release (4.5.0)。 第一天:Hibernate4基础知识和HelloWorld简单编程 Hibernate是一种半成品ORM框架,对数据库持久化操作,程序员对数据库的操作转换成对对象的操作。ORM 采用元数据来描述对象-关系映射细节, 元数据通常采用XML 格式, 并且存放在专门的对象-关系映射文件中。 HelloWorld简单编程 1、准备Hibernate环境 (1)导入Hibernate的Jar包,如下: (2)导入Mysql驱动包,我用的数据库是:Mysql 5.0,数据库驱动包如下: 以上所有Jar加完毕之后,需要加入到Eclipse自身系统里面,具体如下: 以上操作完毕之后,Hibernate的环境就算搭建完毕,下面就可以进一步操作。 2、配置hibernate.cfg.xml 文件,主要是对数据库的连接,具体如下:

root mysql com.mysql.jdbc.Driver jdbc:mysql:///Test(或者:jdbc:mysql://localhost:3306/Test) org.hibernate.dialect.MySQLInnoDBDialect true true update 3、编写一个实例类News.java,具体代码如下: package com.hibernate.helloworld; import java.sql.Date; public class News { private Integer id; private String title; private String author; private Date date; public Integer getId() { return id; } public void setId(Integer id) {

Hibernate笔记

一、第一个应用实例 1.搭建环境:新建一个名为HibernateDemo的java工程,并导入Hibernate的jar包,特别要注意除了导入lib下的jar包还需导入hibernate3.jar核心jar包。由于涉及数据库操作,还应导入mysql驱动包。 说明,如果使用最新的hibernate,hibernate开发的基本jar包(7个) 来源:hibernate-distribution-3.3.2.GA.zip hibernate3.jar lib\required下的所有jar包 2.简述Hibernate的作用:ORM:Object Relational Mapping,对象关系映射。将java 程序中的对象自动持久化到关系数据库中。而Hibernate的作用好比就是在java对象与关系数据库之间的一座桥梁,它主要负责两者之间的映射。在Hibernate内部封装了JDBC 技术(但只是一个轻量级的封装,因而可以让程序设计人员更方便的以面向对象的思想操纵数据库),并向外提供API接口。 3.建新一个名为User.java的类,即是上面所说的java对象。我们以后称这种类为实体类(或是持久化类),它的对象为实体对象(或是持久化对象)。User.java内容如下:package com.asm.hibernate.domain; import java.util.Date; public class User { private int id; private String name; private Date date; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { https://www.wendangku.net/doc/098228838.html, = name; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } } 4.编写配置文件:User.hbm.xml。它和User.java放在同一个包下。内容如下:

相关文档