刚学hibernate,谁能大体上教教我? 刚学hibernate,谁能大体上教教我?求高手简要的说说hibernate,附上代码和流程的最好。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 晚上回去给你发我当初学hibernate的时候的笔记。 http://blog.csdn.net/peng_hao1988/article/details/7417634这个里面有用Hibernate。 甄磊[email protected]jdbcjava java database connectivity数据持久化:数据的保存内存中的数据模型==》持久化介质的存储模型所有对数据的增删改查操作io ObjectOutputStream数据库中间键数据模型==关系模型对象模型==关系模型SQL方言MYSQL:limitmysql:JDBC 标准 第三方类库数据库厂商1.注册(加载)驱动2.创建连接3.构建statement4.执行SQL语句5.如果有结果集,处理结果集 select6.资源回收listener controllsnrctl startmysql -u root -p;show detabases;use databaseName;show tables;create table jdbc_test(id int,name varchar(20));insert into jdbc_test values(1,'briup');driver:com.mysql.jdbc.Driverurl:jdbcLmysql://localhost:3306/testuser:rootpassword:空批处理:statement:executeXXX 发送一天=条SQL语句到DBaddBatch:不发送SQL语句 绑定批量发送到DBStatement PrepareStatement(缓冲区) 缓存1.性能 后者超于前者2.代码的可读性以及维护性insert into table_name(col1,col2,col3,col4)values("+values1+"'+values2'"+"to_date("+...+)"+)3.安全性 SQL注入传统方式:单条SQL语句 多次与数据库交互批处理方式:多条SQL语句一次交互数据最大:批处理优于传统方式小数据量:不建议使用批处理事物的边界:隐式事物,显示事物begin1.sqlplus打开会随之开启一个事物2.上一个事物提交或者rollbackOVER1.commit //rollback to point2.DDL DCL3.推出SQLplus隔离性:3.事物隔离级别1 2 4 8read_uncommited 1read_commited 2JDBC 事物默认是自动提交的ConnectionsetAutoCommit(false);//事物的开始conn.commit();事物的提交 oversavepointrowid连接未断开其他队数据库进行的UPDATE操作都会及时的在程序中体现ResultSet随底层数据库库的变化。ConnectionFactory 12 6步Query(String sql)JDBCTemplateQueryStatementPrepareStatement作业:Employee(e_emp, id last_name,salary) e id=1 name=tuotuo salary=1234Employee findByName(String name);Employee findByID(Long id);Void deleteEmp(Employee e);void addEmp(Employee e);数据库中间价 hibernate mybatis/ibatis JDBC对JDBC的封装 事物 映射hibernate:面向对象 自动进行ORM操作数据持久化:数据模型==存储模型对象持久化:对象模型==关系模型Configuration:初始化hibernateSessionFactory用来产生sessioncommon-collections;功能更加强大的集合antkr.jar词法分析器主键生成策略hile_testval 1000hilo 高低值算法高值:其实高值由数据库产生,单值单列低值:程序代码内部维护生成一个不重复的数字作为数据库记录的主键3.Session简单查询:get(id) load删除delete更新update保存(insert)saveUser u=session.get(User.class,1l);u.setName("newName");User u=new User();saveOrUpdate()4.Transaction 增删改查 session.save()transaction.commit();5.Query HQL/SQL 查询2jar包的作用1.dom4j.jar:负责解析配置文件以及映射文件 必须2.slf4j.jar:提供日志记录的jar包,只有接口,实现类需要用户自己指定 必须3.slf4j-nop.jar:habernate要求slf4j的接口,但是log4j更强大,于是需要4.common-collections:功能更加强大的集合类 必须5.hibernate-jpa.jar JPA数据持久化必备 必须6.javasissit.jar 产生代理对象必须的jar 必须7.jta:处理transaction8.antkr.jar词法分析器SQL: selectHQL:where 把HQL导入SQL中的过程需要antkr.jar对于一个对象来说Transient:内存中有 缓存中(Session)没有 DB没有Persistent:内存中有 缓存中有 DB有Detached:内存中有 缓存中没有 DB有一级缓存:Session二级缓存:SessionFactory三级(查询)缓存:这个笔记是我当初自己记录的,可能有点乱,主要讲的是JDBC,因为JDBC是hibernate的基础嘛。另外给你发一个hibernate的例子,你在尝试着做几个简单例子,慢慢的来嘛。 package com.briup.hibernate.basic;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.classic.Session;import com.briup.hibernate.pojo.Student;public class FirstHibernate { public static void main(String[] args) { //1.使用configuration初始化hibernate读取配置文件 Configuration config=new Configuration(); config.configure();//默认加载hibernate.cfg.xml的配置文件 //config.configure("hibernate.cfg.xml");//配置文件自定义配置 //2构建sessionfactory SessionFactory fac=config.buildSessionFactory(); //3生成session Session session=fac.openSession();//使用默认session //4.开始事务 Student s=new Student(); s.setId(1); s.setName("briup"); s.setAddress("briup"); s.setAge(12); Transaction tr=session.beginTransaction(); session.save(s);//提交操作s //save delete update tr.commit(); session.close(); }} spring在filter里面如何获取注解方式定义的bean 求《thinking in java》练习题的答案·· 做过java串口通讯的朋友帮忙看看,先谢谢了 学习jstatd的问题 关于swing JOptionPane问题的一个疑问。 奇数幻方 一个数据库更新问题~~~~在线求解 为什么点击一个menu没有反应,而用按钮或者设定该menu的mouseEntered事件都可以执行相关的代码的呢/相关代码段如下: 一个关于日期合法性判断的问题 JAVA里如何进行类型转换? run()会选runnable中的还是Thread中的 - SCJP考题求助 请问下关于指定位数的输出二进制格式的数
这个里面有用Hibernate。
[email protected]
jdbc
java java database connectivity
数据持久化:数据的保存
内存中的数据模型==》持久化介质的存储模型
所有对数据的增删改查操作
io ObjectOutputStream
数据库中间键
数据模型==关系模型
对象模型==关系模型
SQL方言
MYSQL:limit
mysql:
JDBC 标准
第三方类库
数据库厂商1.注册(加载)驱动
2.创建连接
3.构建statement
4.执行SQL语句
5.如果有结果集,处理结果集 select
6.资源回收listener control
lsnrctl startmysql -u root -p;show detabases;
use databaseName;show tables;create table jdbc_test(id int,name varchar(20));
insert into jdbc_test values(1,'briup');driver:com.mysql.jdbc.Driver
url:jdbcLmysql://localhost:3306/test
user:root
password:空批处理:
statement:executeXXX 发送一天=条SQL语句到DB
addBatch:不发送SQL语句 绑定批量发送到DBStatement PrepareStatement(缓冲区) 缓存1.性能 后者超于前者
2.代码的可读性以及维护性
insert into table_name(col1,col2,col3,col4)
values("+values1+"'+values2'"+"to_date("+...+)"+)
3.安全性 SQL注入
传统方式:单条SQL语句 多次与数据库交互
批处理方式:多条SQL语句一次交互
数据最大:批处理优于传统方式
小数据量:不建议使用批处理事物的边界:隐式事物,显示事物
begin
1.sqlplus打开会随之开启一个事物
2.上一个事物提交或者rollbackOVER
1.commit //rollback to point
2.DDL DCL
3.推出SQLplus
隔离性:
3.事物隔离级别1 2 4 8
read_uncommited 1
read_commited 2JDBC 事物默认是自动提交的
Connection
setAutoCommit(false);//事物的开始conn.commit();事物的提交 over
savepointrowid
连接未断开其他队数据库进行的UPDATE操作都会及时的在程序中体现ResultSet随底层数据库库的变化。ConnectionFactory 12 6步Query(String sql)
JDBCTemplate
Query
Statement
PrepareStatement作业:
Employee(e_emp, id last_name,salary)
e id=1 name=tuotuo salary=1234
Employee findByName(String name);
Employee findByID(Long id);
Void deleteEmp(Employee e);
void addEmp(Employee e);
数据库中间价 hibernate mybatis/ibatis JDBC
对JDBC的封装 事物 映射hibernate:面向对象 自动进行ORM操作数据持久化:数据模型==存储模型
对象持久化:对象模型==关系模型
Configuration:初始化hibernateSessionFactory用来产生sessioncommon-collections;功能更加强大的集合antkr.jar词法分析器
主键生成策略
hile_test
val 1000hilo 高低值算法
高值:其实高值由数据库产生,单值单列
低值:程序代码内部维护
生成一个不重复的数字作为数据库记录的主键3.Session
简单查询:get(id) load
删除delete
更新update
保存(insert)saveUser u=session.get(User.class,1l);
u.setName("newName");
User u=new User();
saveOrUpdate()4.Transaction
增删改查 session.save()
transaction.commit();5.Query HQL/SQL 查询
2jar包的作用
1.dom4j.jar:负责解析配置文件以及映射文件 必须
2.slf4j.jar:提供日志记录的jar包,只有接口,实现类需要用户自己指定 必须
3.slf4j-nop.jar:habernate要求slf4j的接口,但是log4j更强大,于是需要4.common-collections:功能更加强大的集合类 必须
5.hibernate-jpa.jar JPA数据持久化必备 必须
6.javasissit.jar 产生代理对象必须的jar 必须
7.jta:处理transaction
8.antkr.jar词法分析器
SQL: select
HQL:where 把HQL导入SQL中的过程需要antkr.jar
对于一个对象来说
Transient:内存中有 缓存中(Session)没有 DB没有
Persistent:内存中有 缓存中有 DB有
Detached:内存中有 缓存中没有 DB有
一级缓存:Session
二级缓存:SessionFactory
三级(查询)缓存:
这个笔记是我当初自己记录的,可能有点乱,主要讲的是JDBC,因为JDBC是hibernate的基础嘛。另外给你发一个hibernate的例子,你在尝试着做几个简单例子,慢慢的来嘛。
package com.briup.hibernate.basic;import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;import com.briup.hibernate.pojo.Student;
public class FirstHibernate {
public static void main(String[] args) {
//1.使用configuration初始化hibernate读取配置文件
Configuration config=new Configuration();
config.configure();//默认加载hibernate.cfg.xml的配置文件
//config.configure("hibernate.cfg.xml");//配置文件自定义配置
//2构建sessionfactory
SessionFactory fac=config.buildSessionFactory();
//3生成session
Session session=fac.openSession();//使用默认session
//4.开始事务
Student s=new Student();
s.setId(1);
s.setName("briup");
s.setAddress("briup");
s.setAge(12);
Transaction tr=session.beginTransaction();
session.save(s);//提交操作s
//save delete update
tr.commit();
session.close();
}
}