码迷,mamicode.com
首页 > 数据库 > 详细

Hibernate (面向对象的数据库操作)

时间:2015-06-22 16:24:27      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

JPA,java persistance api,java持久层接口,即与数据库打交道的一些接口。实现交给各个厂商去实现。

ORM,Object/Relation Mapping,对象/关系数据库映射。面向对象的数据库操作,底层仍是sql语句。

获得

hibernate的maven依赖。
<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-core</artifactId>
	<version>4.3.10.Final</version>
</dependency>
<!--c3p0与mysql的依赖都需要-->
<dependency>  
    <groupId>mysql</groupId>  
    <artifactId>mysql-connector-java</artifactId>  
    <version>5.1.31</version>  
</dependency>  


Hibernate是一个优秀的ORM实现。使用方法见下。

配置文件

名为hibernate.cfg.xml,一般放在src目录下。它使用c3p0作为数据库连接池。
<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<!--表明以下的配置是针对session-factory配置的,SessionFactory是Hibernate中的一个类,这个类主要负责保存HIbernate的配置信息,以及对Session的操作 -->
	<session-factory>
		<property name="connection.driver_class">com.mysql.jdbc.Driver </property>
		<property name="connection.url">jdbc:mysql://me.likeyichu.com:3306/AliyunDB</property>
		<property name="Connection.useUnicode">true </property>
		<property name="connection.characterEncoding">utf-8</property>
		<property name="connection.username">root</property>
		<property name="connection.password">密码</property>
		
		<!-- c3p0 -->
		<property name="hibernate.c3p0.max_size">20</property>
		<property name="hibernate.c3p0.min_size">1</property>
		<property name="hibernate.c3p0.timeout">5000</property>
		<property name="hibernate.c3p0.max_statements">100</property>
		<property name="hibernate.c3p0.idle_test_period">3000</property>
		<property name="hibernate.c3p0.validate">true</property>
		<property name="hibernate.c3p0.acquire_increment">2</property>
		
		
		<!--是否在后台显示Hibernate用到的SQL语句,开发时设置为true,便于查错,程序运行时可以在Eclipse的控制台显示Hibernate的执行Sql语句。项目部署后可以设置为false,提高运行效率 -->
		<property name="hibernate.show_sql">true </property>
		
		<!--hibernate.dialect 只是Hibernate使用的数据库方言,就是要用Hibernate连接那种类型的数据库服务器。 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect </property>
		<!--指定映射的类 -->
		<mapping class="com.likeyichu.webservice.resource.me.Student" />
	</session-factory>
</hibernate-configuration>    


常用类

@ javax.persistence.Entity
表明这个类对应着数据库中某张表中的实体。
@javax.persistence.Table
该注解的name属性标明java类与哪张表相对应。


@javax.persistence.Id
标明这个字段是数据库表中的主键。
@javax.persistence.Column
该注解的name属性指定该字段与表中的哪一列相对应。默认是同名的相互匹配。
@javax.persistence.Temporal
数据库中时间类型比较多,赋值为TemporalType.TIMESTAMP表示时间戳。


HQL

org.hibernate.SharedSessionContract.createQuery(String queryString)
用给定的hql语句创建一个query。
List org.hibernate.Query.list()
将查询结果以list的形式返回。


代码示例


Hibernate (面向对象的数据库操作)

标签:

原文地址:http://blog.csdn.net/chuchus/article/details/46593777

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!