Hibernate开发的环境搭建
(一)Hibernate的环境搭建需要引入Hibernate核心包以及Hibernate依赖包即可(附整个工程代码)。
(二)加入数据库驱动。下面的例子采用Mysql数据库来演示的,所以引入MysqL的JDBC驱动。
(三)提供核心配置文件hibernate.cfg.xml文件(在src文件夹下即可)。
<?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>
<!-- 使用SQL语句操作数据库时,将打印SQL语句 -->
<property name="show_sql"> true</property>
<!-- mysql数据库驱动 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- mysql数据库名称 -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bookshop</property>
<!-- 数据库登录用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 数据库密码 -->
<property name="hibernate.connection.password">数据库密码</property>
<!-- 方言:为每一种数据库提供适配器,方便转换 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 添加新定义的Users ORM映射 -->
<mapping resource="Users.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
Hello Hibernate项目
目录结构如下:
说明:lib中包含了所有所需的库。
1、新建一个普通的java项目,按照上面步骤,配置好Hibernate的环境;
2、建立Usesr实体类
package dao;
import java.io.Serializable;
public class Users implements Serializable{
private Integer id; // 编号
private String loginName;
private String loginPwd;
private String name;
private String address;
private String phone;
private String mail;
public Users() // 无参构造函数
{
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getLoginPwd() {
return loginPwd;
}
public void setLoginPwd(String loginPwd) {
this.loginPwd = loginPwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
}
3、新建Users.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>
<!-- table是数据表名, catalog是数据库名-->
<class name="dao.Users" table="users" catalog="bookshop">
<!-- 定义key id -->
<id name="id" type="java.lang.Integer">
<column name="Id"></column>
<generator class="native"></generator>
</id>
<!-- 设置一般属性的映射 -->
<!-- 类loginName与数据表LoginName属性之间的映射 -->
<property name="loginName" type="java.lang.String">
<column name="LoginName" length="50"></column>
</property>
<property name="loginPwd" type="java.lang.String">
<column name="LoginPwd" length="50"></column>
</property>
<property name="name" type="java.lang.String">
<column name="Name" length="16"></column>
</property>
<property name="address" type="java.lang.String">
<column name="Address" length="50"></column>
</property>
<property name="phone" type="java.lang.String">
<column name="Phone" length="16"></column>
</property>
<property name="mail" type="java.lang.String">
<column name="Mail" length="50"></column>
</property>
</class>
</hibernate-mapping>
其中的property标签是将实体类属性与数据库表中字段对应。
4、在hibernate.cfg.xml中添加配置实体类和数据表的映射的文件;
<!-- 添加新定义的Users ORM映射 -->
<mapping resource="Users.hbm.xml"></mapping>
5、测试Hibernate
新建一个类用于测试使用Hibernate,向数据库插入数据;
package test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import dao.Users;
public class HelloHibernate {
public static void main(String args[]){
new HelloHibernate().addUser();
}
private void addUser(){
Users user = new Users();
user.setLoginName("Mike");
user.setLoginPwd("123456");
user.setName("Mike");
user.setAddress("Beijing");
user.setMail("11@sina.com");
user.setPhone("12345678910");
//默认读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
// 建立会话
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
// 事务处理
Transaction tx = null;
try{
tx = session.beginTransaction();
session.saveOrUpdate(user); // 保存或更新数据
tx.commit(); // 提交事务
}catch(Exception e)
{
if(tx!=null){
tx.rollback(); // 回滚
}
}
finally{
sf.close();
}
}
}
执行代码后,在数据中查询,发现已经完成数据的插入,结果如下图:
总结
通过上面的代码我们可以看出,在代码中没有涉及到任何有关JDBC的代码,作为开发人员只需要写好相应的实体类,然后通过配置就可以实现了表的建立以及向表中实现数据的插入。
在代码中有许多Hibernate的核心对象,例如Configuration、SessionFactory、Session等等。请先自行查询相关内容。
参考博客: http://blog.csdn.net/aboy123/article/details/10085635