Hibernate基础之最简单的例子

来源:互联网 发布:matlab输出矩阵 编辑:程序博客网 时间:2024/06/10 21:08

1.概念

1.1.ORMobject/Relationship Mapping):对象/关系映射。

1.2.利用面向对象的思想编写的数据库应用程序最终都是把对象的信息保存在关系型数据库中,于是我们要编写很多和底层相关的SQL语句。

1.3.为什么不编写很多的SQL语句

1.3.1.不同的数据库使用不通的SQL语法。

1.3.2.同样的功能在不同的数据库实现的方式不同。

1.3.3.程序过分的依赖SQL语句,以后移植和维护性差。

2.Hibernate ORM(开源框架技术)

2.1.简介:对JDBC进行了非常轻量级的封装

2.2.作用


2.3.其他主流的ORM框架技术:MyBatisiBatis)、Toplink

3.编写Hibernate例子

3.1.Hibernate Tool for Eclipse Plugins的安装

3.1.1.Eclispse里面help选项中找到Install new Software中点击Add在弹传中Location填入

http://download.jboss.org/jbosstools/updates/development/indigo/

3.1.2.导入hibernate和mysql驱动jar包。

3.2.创建Hibernate的配置文件

3.2.1.右键点击项目名在newother选项中找到hitbernate选择第一个Hibernate configuration file其他默认点击finish

<?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>    <!-- 用户名 -->    <property name="connection.username">root</property>    <!-- 密码 -->    <property name="connection.password">***</property>    <!-- 加载驱动 -->    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>    <!-- 连接数据库地址 -->    <property name="connection.url">jdbc:mysql://localhost/hibernate</property>    <!-- 方言 -->    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>        <property name="show-sql">true</property>    <property name="format_sql">true</property>    <property name="hbm2ddl.auto">create</property>        <mapping resource="Students.hbm.xml"/>        </session-factory></hibernate-configuration>


3.3.创建持久化类

import java.util.Date;/** * 学生类 *  * @author tyhkmhjk * */public class Students {/* * 1.共有的类 * 2.提供共有的默认的不带参数的构造方法  * 3.属性私有  * 4.属性要使用setter和getter封装 */private long sid; // 学会private String sname; // 姓名private String gender; // 性别private Date brithday; // 出生日期private String address; // 地址public Students() {}public Students(long sid, String sname, String gender, Date brithday,String address) {// super();this.sid = sid;this.sname = sname;this.gender = gender;this.brithday = brithday;this.address = address;}public long getSid() {return sid;}public void setSid(long sid) {this.sid = sid;}public String getSname() {return sname;}public void setSName(String sname) {this.sname = sname;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public Date getBrithday() {return brithday;}public void setBrithday(Date brithday) {this.brithday = brithday;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "Students [sid=" + sid + ", sname=" + sname + ", gender=" + gender+ ", brithday=" + brithday + ", address=" + address + "]";}}

3.4.创建对象-关系映射文件上

3.4.1.在src右键在other中找到hibernate并选择第四个Hibernate XML Mapping file,点击next选择对象自动生成对象-关系映射文件。

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2016-9-1 14:38:01 by Hibernate Tools 3.4.0.CR1 --><hibernate-mapping>    <class name="Students" table="STUDENTS">        <id name="sid" type="long">            <column name="SID" />            <generator class="assigned" />        </id>        <property name="sname" type="java.lang.String" access="field">            <column name="SNAME" />        </property>        <property name="gender" type="java.lang.String">            <column name="GENDER" />        </property>        <property name="brithday" type="java.util.Date">            <column name="BRITHDAY" />        </property>        <property name="address" type="java.lang.String">            <column name="ADDRESS" />        </property>    </class></hibernate-mapping>


3.5.使用jUint4测试:项目右键创建源文件夹test并创建测试类StudentsTest

import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;public class StudentsTest {private SessionFactory sessionFactory;private Session session;private Transaction transation;@Beforepublic void init(){//创建配置对象Configuration config  = new Configuration().configure();//创建服务注册对象ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();//创建会话工厂对象sessionFactory = config.buildSessionFactory(serviceRegistry);//创建会话对象session = sessionFactory.openSession();//开启事物transation = session.beginTransaction();}@Afterpublic void destory(){//提交事物transation.commit(); //提交事物session.close(); //关闭会话sessionFactory.close(); //关闭会话工厂}@Testpublic void saveStudentTest(){//生成学生对象Students s1 = new Students(1,"zhangsanfen","男",new Date(), "武当山");session.save(s1);}}


3.5.1.注解的含义

1)@Test:测试方法

2)@Before:初始化方法

3)@after:释放资源

3.6.测试

3.6.1.创建名为hibernate字符集为Utf-8的MySQL数据库

3.6.2.在StudentsTest类上选择saveStudentTest方法利用Junit4运行,则可以在数据库中发现自动根据实体类建立了数据表students

4.注意事项

4.1.注意配置文件中大小写问题,和配置文件属性、值的正确性

4.2.Junit4使用4.7或者4.8版本最好,过低过高可能会报错



0 0
原创粉丝点击