读书人

刚学hibernate哪位高手能大体下教教

发布时间: 2012-12-14 10:33:08 作者: rapoo

刚学hibernate,谁能大体上教教我?
刚学hibernate,谁能大体上教教我?
求高手简要的说说hibernate,附上代码和流程的最好。
[最优解释]
甄磊
zhenlei@briup.com
jdbc
javajava database connectivity
数据持久化:数据的保存
内存中的数据模型==》持久化介质的存储模型
所有对数据的增删改查操作
ioObjectOutputStream
数据库中间键
数据模型==关系模型
对象模型==关系模型
SQL方言
MYSQL:limit
mysql:
JDBC 标准
第三方类库
数据库厂商

1.注册(加载)驱动
2.创建连接
3.构建statement
4.执行SQL语句
5.如果有结果集,处理结果集 select
6.资源回收

listener control
lsnrctl start

mysql -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语句 绑定批量发送到DB

StatementPrepareStatement(缓冲区)缓存

1.性能后者超于前者
2.代码的可读性以及维护性
insert into table_name(col1,col2,col3,col4)
values("+values1+"'+values2'"+"to_date("+...+)"+)


3.安全性 SQL注入


传统方式:单条SQL语句 多次与数据库交互
批处理方式:多条SQL语句一次交互
数据最大:批处理优于传统方式
小数据量:不建议使用批处理

事物的边界:隐式事物,显示事物
begin
1.sqlplus打开会随之开启一个事物
2.上一个事物提交或者rollback

OVER
1.commit //rollback to point
2.DDL DCL
3.推出SQLplus
隔离性:
3.事物隔离级别1248
read_uncommited1
read_commited2

JDBC事物默认是自动提交的
Connection
setAutoCommit(false);//事物的开始

conn.commit();事物的提交over
savepoint

rowid
连接未断开其他队数据库进行的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:初始化hibernate

SessionFactory用来产生session

common-collections;功能更加强大的集合



antkr.jar词法分析器
主键生成策略
hile_test
val 1000

hilo高低值算法
高值:其实高值由数据库产生,单值单列
低值:程序代码内部维护
生成一个不重复的数字作为数据库记录的主键

3.Session
简单查询:get(id) load
删除delete
更新update
保存(insert)save

User u=session.get(User.class,1l);
u.setName("newName");
User u=new User();
saveOrUpdate()

4.Transaction
增删改查session.save()
transaction.commit();

5.Query HQL/SQL查询
2

jar包的作用
1.dom4j.jar:负责解析配置文件以及映射文件必须
2.slf4j.jar:提供日志记录的jar包,只有接口,实现类需要用户自己指定必须
3.slf4j-nop.jar:habernate要求slf4j的接口,但是log4j更强大,于是需要

4.common-collections:功能更加强大的集合类 必须
5.hibernate-jpa.jarJPA数据持久化必备 必须
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的例子,你在尝试着做几个简单例子,慢慢的来嘛。


[其他解释]
晚上回去给你发我当初学hibernate的时候的笔记。
[其他解释]
http://blog.csdn.net/peng_hao1988/article/details/7417634
这个里面有用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();

}
}

读书人网 >J2SE开发

热点推荐