1.hibernate是站在JDBC的基础上的框架,远比JDBC好用,它的的开发步骤如下:
(1)在工程下建一个lib包,导入用到的jar包
(2).写一个pojo类
(3).配置pojo类名.hbm.xml文件
(4).配置hibernate.cfg.xml文件
(5)写应用程序类
2.代码实战:
(1).导入如下的jar包,本人用数据库是MySQL
2.写一个POJO类
package cn.wwh.www.hibernate.aa.helloword;
/**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-8-17 下午03:07:55
*/
public class User {
private int id;
private String name;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User --> id=" + id + "\n name=" + name + "";
}
}
3.配置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="cn.wwh.www.hibernate.aa.helloword.User" table="user">
<id name="id" type="int" column="id">
<generator class="native" />
</id>
<property name="name" type="string" not-null="true" column="name" />
</class>
</hibernate-mapping>
4.配置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">
<hibernate-configuration>
<session-factory>
<!-- 1、数据库信息:数据库方言(是一个类的全名)与数据库连接信息 -->
<!-- 配置连接数据库所需的驱动 -->
<span style="color:#ff0000;"><property name="connection.driver_class">com.mysql.jdbc.Driver</property></span>
<!-- 连接数据库的数据库url -->
<span style="color:#ff0000;"><property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property></span>
<!-- 数据库的账号 -->
<span style="color:#ff0000;"><property name="connection.username">root</property></span>
<!-- 数据库的密码 -->
<span style="color:#ff0000;"><property name="connection.password">wwh</property></span>
<!-- 指定数据库的方言(本人用的是MySql) -->
<span style="color:#ff0000;"><property name="dialect">org.hibernate.dialect.MySQL5Dialect</property></span>
<!-- 2.配置其它 -->
<!--
create: 先删表,再建表。
create-drop: 启动时建表,退出前删表。
update: 如果表结构不一致,就创建或更新。
validate: 启动时验证表结构,如果不致就抛异常。
-->
<!-- 自动创建数据表 -->
<property name="hbm2ddl.auto">update</property>
<!-- 显示数据操作的sql语句 -->
<span style="color:#3333ff;"><property name="show_sql">true</property></span>
<!-- 格式化的显示sql语句 -->
<span style="color:#3366ff;"><property name="format_sql">true</property></span>
<!-- 3.导入映射配置文件 -->
<span style="color:#ff0000;"><mapping resource="cn/wwh/www/hibernate/aa/helloword/User.hbm.xml"/></span>
</session-factory>
</hibernate-configuration>
5.测试类:TestUser.java
package cn.wwh.www.hibernate.aa.helloword;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
/**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-8-17 下午03:08:17
*/
public class TestUser {
private static Configuration config;
static {
config = new Configuration();
config.configure("hibernate.cfg.xml");
}
@Test
public void testSave() throws Exception {
Configuration config = new Configuration();
// 默认加入hibernate.cfg.xml配置文件
config.configure();
SessionFactory factory = config.buildSessionFactory();
Session session = factory.openSession();
Transaction transaction = session.beginTransaction();
for (int i = 0; i < 20; i++) {
User user = new User();
user.setName("无悔_一叶扁舟" + i);
// 关闭session
session.save(user);
}
// 事务提交
transaction.commit();
// 关闭session
session.close();
// 关闭工厂
factory.close();
}
@Test
public void testGet() throws Exception {
SessionFactory factory = config.buildSessionFactory();
Session session = factory.openSession();
// 开始事务
Transaction trans = session.beginTransaction();
// 从数据库中获取id为1的User数据
User user = (User) session.get(User.class, 1);
// 输出到控制台上
System.out.println(user);
// 事务提交
trans.commit();
session.close();
factory.close();
}
}
6.测试效果图:7.注意:
在写hibernate.cfb.xml文件时,出现了
org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml异常,主要原因是:hibernate.cfg.xml中引用了错误的DTD文件径“http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd”
将这个文件路径改为:
“http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”