刚学hibernate,谁能大体上教教我?
求高手简要的说说hibernate,附上代码和流程的最好。

解决方案 »

  1.   

    晚上回去给你发我当初学hibernate的时候的笔记。
      

  2.   

    http://blog.csdn.net/peng_hao1988/article/details/7417634
    这个里面有用Hibernate。
      

  3.   

    甄磊
    [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的例子,你在尝试着做几个简单例子,慢慢的来嘛。
      

  4.   


    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();

    }
    }