JDK6笔记(6)----JDBC4.0高级应用(2)

简介: JDK6笔记(6)----JDBC4.0高级应用(2) 3.4)Hibernate配置文件(Hibernate Configuration File) 在你的应用程序中典型的仅有一个hibernate.cfg.xml文件。

JDK6笔记(6)----JDBC4.0高级应用(2)


3.4)Hibernate配置文件(Hibernate Configuration File)
在你的应用程序中典型的仅有一个hibernate.cfg.xml文件。
在配置文件中有几个可选项,在www.hibernate.org上面有一个完整的列表。
一般来说,configuration定义了映射的文件、数据库的连接信息、数据库使用的哪一种SQL等。
Dialect类封装了数据库所用各种SQL语句的差异。例如:
在Oracle中的SELECT语句:
SELECT * FROM BOOK Where rownum 但是在Microsoft SQLServer中为:
SELEC TOP 10 * from BOOK
Dialect类支持绝大多数商业和开源数据库系统。
highlight.show_sql属性:将打印标准输出,即打印所有执行的SQL语句。
hibernate.hbm2ddl.auto属性:将自动创建映射文件定义的数据库表。
见例子:
br /> "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

 
    true
    org.hibernate.dialect.DerbyDialect
    org.apache.derby.jdbc.ClientDriver
   
    create-drop
    sa
    password
   
 

3.5)Hibernate API
Hibernate API包含了所有的资源,如:支持持久化的,执行映射的,数据库事务,还有两个丰富的查询模型。
这些资源存在于org.hibernate.* 。
(1)SessionFactory
包含了数据库元数据和执行持久化操作的Java类信息。
(2)Session
是所有持久化操作的入口点。
它提供了简单的方法来载入和保存对象,也作为工厂方法创建事务,查询和条件接口。
Session存活时间很短,每个请求都会创建和销毁它。
(3)Query
接口,使用类似SQL语言(称为HQL,即Hibernate Query Language)来检索对象。
(4)Criteria
接口,比查询接口有更多的面向对象。
Criteria API在运行时动态查询是非常有效的。

4、Hibernate Example
用Hibernate连接Apache Derby数据库。
1)环境变量的设置
在MS-DOS环境下:
set JAVA_HOME=C:/JDK
set DERBY_INSTALL=%JAVA_HOME%/db
set CLASSPATH=%CLASSPATH%;%DERBY_INSTALL%/lib/derby.jar;%DERBY_INSTALL%/lib/derbytools.jar;
%DERBY_INSTALL%/LIB/derbynet.jar;
cd %DERBY_INSTALL%/frameworks/NetworkServer/bin
startNetworkServer.bat
现在,可以用Hibernate连接Derby数据库了。
2)创建和存储SessionFactory。应用程序将共享静态的SessionFactory。
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil{
  private static SessionFactory sf;
//当运行configure.buildSessionFactory()时,Hibernate会在项目的根目录下寻找hibernate.cfg.xml文件。
  static {
    sf=new Configuration().configure().buildSessionFactory();
    }
  public static Session currentSession(){
    return sf.openSession();
    }
  public static void close(Session session){
    session.close();
    }
  }
--------------------------------------------
2)Book Manager的例子
import java.util.Date;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import mydb.Book;
import mydb.util.HibernateUtil;
public class BookManager{
  Session s=HibernateUtil.currentSession();
  public void save(Book book){
    try{
      Transaction tx=s.beginTransaction();
      s.saveOrUpdate(book);
      tx.commit();
    }catch(HibernateException e){
      e.printStackTrace();
    }
  }
  public static void main(String[] args){
    Book book =new Book();
    book.setTitle("Lucas: nine months and counting.");
    book.setCreated(new Date());
    BookManager manager=new BookManager();
    manager.save(book);
  }

目录
相关文章
|
5月前
|
Java 数据库连接
JDBC课堂笔记
JDBC课堂笔记
39 1
|
5月前
|
Java 数据库连接 数据库
JDBC连接池&JDBCTemplate课堂笔记
JDBC连接池&JDBCTemplate课堂笔记
51 1
|
5月前
|
Java
JDK动态代理笔记整理
JDK动态代理笔记整理
|
12月前
|
Java 程序员
终于不慌内卷了,多亏阿里内部的并发图册+JDK源码速成笔记
并发编程 Java并发在近几年的面试里面可以说是面试热点,每个面试官面试的时候都会跟你扯一下并发,甚至是高并发。面试前你不仅得需要弄清楚的是什么是并发,还得搞清什么是高并发! 在这里很多小白朋友就会很疑惑:我工作又不用,为啥面试总是问?真就内卷卷我呗!(手动狗头)互联网内卷已经是现在的行业趋势,而且是不可逆的,这个大家也知道;但LZ要说的是,虽然简单地增删改查并不需要并发的知识,但是业务稍微复杂一点,你的技术水平稍微提升一点的话你就会知道,并发是我们Java程序员绕不开的一道坎。
44 0
Alibaba新产:“Java并发笔记”闪耀来袭,JDK源码奥义尽在其中
JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 没有JDK的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE。
直击灵魂!美团大牛手撸并发原理笔记,由浅入深剖析JDK源码
并发编程这四个字想必大家最近都在网上看到过有很多的帖子在讨论。我们都知道并发编程可选择的方式有多进程、多线程和多协程。在Java中,并发就是多线程模式。而多线程编程也一直是一个被广泛而深入讨论的领域。如果遇到复杂的多线程编程场景,大多数情况下我们就需要站在巨人的肩膀上利用并发编程框架——JDK Concurrent包来解决相关线程问题。
|
SQL 设计模式 Java
JAVA 笔记-JDBC(五)
JAVA 笔记-JDBC(五)
|
SQL druid 安全
JDBC超详细笔记
JDBC超详细笔记
92 0
|
Java 开发者 容器
先到先学!Alibaba甩出第四次更新的JDK源码高级笔记(终极版)
作为Java开发者,面试肯定被问过多线程。对于它,大多数好兄弟面试前都是看看八股文背背面试题以为就OK了;殊不知现在的面试官都是针对一个点往深了问,你要是不懂其中原理,面试就挂了。可能你知道什么是进程什么是线程,但面试官要是问你进程之间是如何通讯的?ConcurrentHashMap 和 HashTable有什么区别?为什么wait和notify方法要在同步块代码中调用?你答不上来就只能等通知了。。。
|
Java Linux
【笔记03】CentOS 安装 jdk
(1) 创建 softwarezgq 目录,用于存放软件安装包
135 0
【笔记03】CentOS 安装 jdk
下一篇
无影云桌面