什么是Hibernate?为什么使用Hibernate?Hibernate有什么优缺点?网上很多大神的文章又详细又通俗易懂。
步骤:
1、创建数据库表格。
2、编写JavaBean实体类。
3、下载Hibernate用到的的Jar包。
4、创建Web工程。
5、导入需要的Jar包(我们下载的可能有些是不需要的,只要导入用到的jar包就行)。
6、创建类与表结构的映射(javabean实体类中属性和相应表格的列的映射)。
7、编写Hibernate配置文件。
8、编写测试类。
具体实现:
1、创建数据表格
为了方便,我们之创建一个简单的表格用于测试就行了。
表格名字叫 user,里面有四列 id,username,pwd ,cellphone
SQL代码
1 //创建数据库 2 CREATE DATABASE Hib_test; 3 //创建数据表格 4 CREATE TABLE user( 5 id INT, 6 username VARCHAR(30), 7 pwd VARCHAR(30), 8 cellphone VARCHAR(11) 9 )
输出结果:
注释
使用的数据库是MySql,使用的界面操作工具是SQLyog
2、编写JavaBean实体类。
我们写一个个JavaBean的实体类。
JAVA代码
1 package com.hibernate.test; 2 3 public class User { 4 private int id; 5 private String username; 6 private String pwd; 7 private String cellphone; 8 public int getId() { 9 return id; 10 } 11 public void setId(int id) { 12 this.id = id; 13 } 14 public String getUsername() { 15 return username; 16 } 17 public void setUsername(String username) { 18 this.username = username; 19 } 20 public String getPwd() { 21 return pwd; 22 } 23 public void setPwd(String password) { 24 this.pwd = password; 25 } 26 public String getCellphone() { 27 return cellphone; 28 } 29 public void setCellphone(String cellphone) { 30 this.cellphone = cellphone; 31 } 32 33 }
3、下载Hibernate用到的的Jar包。
下载地址:http://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/hibernate-release-5.0.7.Final.zip/download
下载下来,解压后的目录为:
lib文件夹里面是框架所包含的jar包
project文件里面是项目案例
document文件夹是教程以及API等
4、创建Web工程。
创了个叫HibernateDemo的Web项目。
5、导入需要的Jar包
a、Hibernate需要的核心包,就是解压出来的目录(hibernate-release-5.0.7.Final\lib\required)下的所有jar包。
b、导入数据库驱动包,我用的的是MySql所以导入MySql的依赖包,这个jar包需要网上下载,网上有很多。
将下面的这些jar包复制到项目里的WebContent/WEB-INF/lib目录下面
6、创建类与表结构的映射文件
创建表结构的映射就是一个xml文件,他可以告诉Hibernate哪个数据表和哪个JavaBean类相关联的。
这个表结构映射的xml文件有一定要要求或者说是规范吧:
a、命名规范,一般是:类的名字.hbm.xml
在上面的例子中就是:User.hbm.xml。
b、存放位置:一般把则个文件与他的Java类放在一起。
映射文件:
1 xml version="1.0" encoding="UTF-8"?> 2 DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 <hibernate-mapping> 6 7 <class name="com.hibernate.test.User" table="user"> 8 9 <id name="id" column="id"> 10 11 <generator class="native"/> 12 id> 13 14 <property name="username" column="username"/> 15 <property name="cellphone" column="cellphone"/> 16 <property name="pwd" column="pwd"/> 17 class> 18 hibernate-mapping>
注释
映射文件模板大多都一样的,可以在下载的案例中找到一个模板,然后做写修改就行。详细的属性之后再详细讨论。
7、编写Hibernate配置文件
跟上面的映射文件一样,这个核心配置文件也是一个xml文件,你可以在(hibernate-release-5.0.7.Final\project\etc)目录下找到这个文件的模板。然后做一些修改,应用到自己的项目里。
还是跟上面的映射文件一样,这里的文件也有一定的要求:
a、文件名为:hibernate.cfg.xml (这里的cfg是configure的缩写?)
b、文件放在src目录下。
配置文件的属性:
a、必须配置:数据库链接配置
b、必须配置:数据库方言,用来生成适应不同数据库sql语句的配置。
c、必须配置:引入配置文件的配置
d、可选配置:用于把Hibernate生成的sql语句输出到控制台的配置,为了调试方便我们可以用这些配置查看Hibernate对数据库执行了哪些sql语句等等。
Hibernate配置文件的具体修改后的样子:
1 xml version='1.0' encoding='utf-8'?> 2 DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD//EN" 4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 5 <hibernate-configuration> 6 7 <session-factory> 8 9 10 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driverproperty> 11 <property name="hibernate.connection.url">jdbc:mysql:///Hib_testproperty> 12 <property name="hibernate.connection.username">rootproperty> 13 <property name="hibernate.connection.password">123456property> 14 17 <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialectproperty> 18 19 20 <property name="hibernate.show_sql">trueproperty> 21 22 <property name="hibernate.format_sql">trueproperty> 23 24 <property name="hibernate.hbm2ddl.auto">createproperty> 25 26 27 <mapping resource="com/hibernate/test/User.hbm.xml"/> 28 29 session-factory> 30 hibernate-configuration>
8、编写测试类。
测试类代码 package com.app.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;
1 import org.hibernate.cfg.Configuration; 2 3 import com.hibernate.test.User; 4 5 public class App { 6 7 public static void main(String[] args) { 8 //新New一个User对象,然后设置其的值 9 User user=new User(); 10 user.setPwd("123456"); 11 user.setUsername("Eastry"); 12 user.setId(333); 13 user.setCellphone("1234567"); 14 //加载配置文件,默认加载的是src目录下的hibernate.cfg,xml文件,当然也可以给一个加载的路径,这样的话配置文件就不一定要放在src目录下面了 15 Configuration configuration=new Configuration(); 16 configuration.configure(); 17 //创建Session工厂,用来获取Session对象 18 SessionFactory factory=configuration.buildSessionFactory(); 19 Session session=factory.openSession(); 20 //开启事务 21 Transaction transaction=session.getTransaction(); 22 transaction.begin(); 23 //保存操作 24 session.save(user); 25 //提交事务 26 transaction.commit(); 27 //释放资源 28 session.close(); 29 30 System.out.println("successful!"); 31 } 32 33 }
输出:
上面我尝试了保存一个javaBean对象到数据库里。
Hibernate还 可以读取数据库的数据把数据映射到一个JavaBean对象上面。
之后再讨论。