JBoss公司的Hibernate开源项目为企业级开发中的数据持久层技术注入了新鲜的血液。它不仅对跨数据库,事务封装,ORM映射,延迟加载等这些细节技术提供了完善的解决方案,也对一些在程序开发中容易忽略问题进行了良好的封装和规划。
(1)通过使用ORM-Object-relational mapping映射,以Bean形式操作数据库中的记录。
(2)强大的一级,二级缓存机制结合数据库连接池POOL,大大提高了CURD (create,update,read,delete)的操作效率。
(3)在SQL维护性hibernate也设计得非常优秀,可以将系统中大量的sql语句放入XML文件进行统一管理。
(4)Spring+Hibernate范型是一个强大的组合,这样可以免去写大量DAO代码,减少了工作量,而且维护性大大增强。
(5)减少了那些大量重复的JDBC代码,使用Hibernate后,省去了很多重复性的工作。
(6)项目融入Hibernate后,可以更好地理解面向对象编程,以面向对象的设计方式程序的架构。
1.用MyEclipse开发第一个Hibernate实例:
1.1在开始之前安装好自己的数据,我的是SQLSERVER2008数据库,通过cmd建表:
-U 后面接用户名 -P后面接密码
1.2.创建使用数据库:
这里创建立一个hibernate_1数据库,并且开始对此数据库进行操作。
1.3新建表first
1.4查看表是否创建成功
2.新建工程Hibernate
点击Add Hibernate Capablities
点击finish就完成我们的一大步了
3.配置hibernate.cfg.xml
<?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"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="show_sql" >true</property> <property name="connection.url">jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hibernate_1</property> <property name="connection.username">sa</property> <property name="connection.password">57829707</property> <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <mapping resource="User.hbm.xml"/> </session-factory> </hibernate-configuration>
对于第一个属性<property name="show_sql">true</property> 可以在控制台显示sql语句,在开发期间便于观察数据的改变。
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>数据库方言,根据数据库种类的不同,这里写的是不一样,查看hibernate文档,下面列举出方言:
<mapping resource>映射资源我们下面来完成:
新建User.hbm.xml:
代码如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.hibernate.model.User" table="first"> <id name="username" column="username" type="string"> <generator class="increment"><!-- 主键id的生成方式 --> </generator> </id> <property name="password" column="password" type="string"></property> </class> </hibernate-mapping>
id name="username" :因为username是我们设定好的主键,所以要用id标签;
column="username":我们自定义的字段名,最好与数据库中的字段名相同;
type="string":在数据库中username为varchar类型,在java与之相对的是string类型,关于数据的类型对象,后几期会有讲解。
generator class="increment":主键的生成方式,由于主键是自动生成的,所以会有其很多生成方式,我们这里采用的是递增方式。
<property name="password">除了主键以外的属性我们都用property标签来指定,具体跟前面一样。
下面我们新建com.hibernate.model包和User类:
package com.hibernate.model; public class User { private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private String password; }
到这里我们的配置都已经完成,下一期我们进入hibernate核心的实现。