Hibernate学习(一)--Hello Hibernate

来源:互联网 发布:营销网络优势 编辑:程序博客网 时间:2024/04/27 00:54

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
0 0
原创粉丝点击