A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ↙五线谱╲ 中级黑马   /  2013-9-26 22:51  /  1167 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Hibernate基础知识

概念: Hibernate是一个面向Java环境的对象/关系数据库映射的工具。Hibernate使用数据库和配置信息为应用程序提供持久化的服务。
作用:Hibernate对JDBC进行了对象封装,使得Java程序员可以随心所欲地使用对象编程思维来操纵数据库,Hibernate不仅仅管理Java类到数据库表的映射,还可以提供数据查询和获取数据的方法,可以大幅减少开发时人工使用SQL和JDBC处理数据的时间。
原理:用公共类实现数据库的连接,查询,删除,更新以及关闭连接等操作。把连接信息配置在文本文件中,这样修改环境不需要编译Java文件。对操作结束后的连接不马上关闭,而是维持一个合理的空间连接数,获取连接也不一定完全新建连接,可以从空闲连接池中获取。数据库操作不局限于表、列的形式,而可以把表映射为类对象,对数据库连接池、会话的管理实行统一的框架化。


实践:
一、新建项目并配置环境:
1、新建一个项目目录d:\myprojects\hibernatetest,在项目目录下新建两个子目录src、lib,其中src目录用于存放源文件和xml文件,lib目录用于存放项目开发需要的库文件和数据库驱动程序。
2、创建名为testdb的mysql数据库,并建立数据表students
二、编写持久化类

package entity;

public class Student {
        private long id;
        private String name;
        private int age;

        public Student() {
        }

        public Student(String name, int age) {
                this.name = name;
                this.age = age;
        }

        public long getId() {
                return id;
        }

        public void setId(long id) {
                this.id = id;
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getAge() {
                return age;
        }

        public void setAge(int age) {
                this.age = age;
        }

        @Override
        public String toString() {
                return "Student{" +
                                "id=" + id +
                                ", name='" + name + '\'' +
                                ", age=" + age +
                                 '\'' +
                                '}';
        }
}



三、编写映射文件

<?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="entity.Student" table="Student">
                <id name="id" type="java.lang.Long">
                        <column name="id"/>
                        <generator class="native"></generator>
                </id>
                <property name="name" type="java.lang.String" column="name"/>
                <property name="age" type="java.lang.Integer" column="age"/>  
        </class>
</hibernate-mapping>



四、Hibernate配置

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
                "-//Hibernate/Hibernate Configuration DTD//EN"
                "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
        <session-factory>
                <property name="connection.url">jdbc:mysql://localhost:3306/testdb</property>
                <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
                <property name="connection.username">root</property>
                <property name="connection.password">xiaohui</property>
                <!-- DB schema will be updated if needed -->
                <property name="hbm2ddl.auto">update</property>
                <property name="show_sql">true</property>
                <property name="format_sql">true</property>
                <property name="connection.autocommit">true</property>

                <mapping resource="entity/User.hbm.xml"/>
                <mapping resource="entity/News.hbm.xml"/>
                <mapping resource="entity/Student.hbm.xml"/>
        </session-factory>
</hibernate-configuration>



评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马