Hibernate的配置和测试
来源:互联网 发布:淘宝限时秒杀软件 编辑:程序博客网 时间:2024/06/05 20:19
一、Hibernate的配置
(1)首先我们要从网上下载到hibernate的包,在里面的lib包下面找到required包下面所有的jar文件复制到我们项目下面的lib文件夹下。
(2)hibernate需要在src下面增加hibernate.cfg.xml,这个里面配置数据库的连接信息。此配置信息如下:<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- JDBC数据库连接信息 --><property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property><property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=test</property><property name="connection.username">test</property><property name="connection.password">test</property><!-- 数据库的方言 --><property name="dialect">org.hibernate.dialect.SQLServerDialect</property><!-- 配置是否显示SQL --><property name="show_sql">true</property><!-- 配置是否自动创建或修改表结构 --><property name="hbm2ddl.auto">update</property><!-- 配置PO 上面是采用映射文件 下面是采用注解方式--><mapping resource="hiberate/model/Student.hbm.xml" /><mapping class="hibernate.model.Person"/></session-factory></hibernate-configuration>(3)如果是采用写入映射文件的方式,则需要在实体类的同一个包下面包含映射文件,如Person.hbm.xml对应于Person类的映射:<?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><!-- 用来描述一个持久化类,name是类的全名 table 可以不写 默认值和类名一样 catalog 数据库的名称 一般不写 --><class name="hibernate.Person"><!-- 标示属性 和数据库中的主键对应 name是属性的名称 column是列的名称--><id name="pid" column="pid" length="200" type="java.lang.Long"><!-- 主键的产生器 告诉hibernate容器用什么样的方式产生主键 --><generator class="increment"></generator></id><!-- 描述一般属性--><property name="pname" column="pname" length="20" type="string"></property><property name="psex" column="psex" length="10" type="java.lang.String"></property></class></hibernate-mapping>(4)如果是采用注解方式来完成和数据库之间的映射,则直接在所在的实体类中用注解的方式进行映射。如下:@Entity@Table(name="person")public class Person {@Id@GeneratedValue(strategy=GenerationType.IDENTITY)private Integer id;@Columnprivate String name;@Columnprivate Date birth;// List集合注解@ElementCollection(targetClass=String.class) // 指定集合元素的类型@CollectionTable(name="school" // 表名,joinColumns=@JoinColumn(name="person_id", nullable=false) // 关联字段)@Column(name="school_name")@OrderColumn(name="order_level")private List<String> schools = new ArrayList<String>();// Map注解@ElementCollection(targetClass=Integer.class) // 指定Map中Value的类型@CollectionTable(name="school_map" // 表名,joinColumns=@JoinColumn(name="person_id", nullable=false) // 关联字段)@MapKeyColumn(name="school_name") // 对应Map的Key字段名@MapKeyClass(String.class)// Map中Key的类型@Column(name="qty") // Map中Value的字段名private Map<String, Integer> schools = new HashMap<String, Integer>();//下面是set和get方法(5)下面是dao层的编写,首先是HibernateUtil类的编写,然后是用dao层的实现类来继承这个类实现查插删改各种功能:package hibernateUtil;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;public class HibernateUtil{public static SessionFactory sessionFactory;static{//取配置信息,自动读取配置文件Configuration configuration=new Configuration();configuration.configure();//创建服务注册对象ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.ge<span style="white-space:pre"></span>tProperties()).buildServiceRegistry();//获取会话工厂对象sessionFactory =configuration.buildSessionFactory(serviceRegistry);}}(6)下面是测试是否成功连接数据库,示例代码如下:package test;import hibernateUtil.HibernateUtil;import org.hibernate.Session;import org.hibernate.Transaction;import org.junit.Test;import entity.Person;public class hibernateTest extends HibernateUtils{@Testpublic void testInsert() {Session session=sessionFactory.openSession();//打开sessionTransaction transaction=session.beginTransaction();//开启事务Person person=new Person();Person.setName("hello");Person.setSex("男");session.save(person);//person对象临时状态转为持久化状态transaction.commit();//事务提交session.close();//session关闭,person对象持久化状态转为脱管状态}}(7)测试成功后,我们解释一下第六步中的几种状态。画图简单表示一下如下:
0 0
- Hibernate的配置和测试
- spring+hibernate测试和产品数据库不同的配置
- Hibernate——hibernate的配置测试
- junit test用来测试hibernate的配置
- Hibernate连接池的配置(hibernate和hibernate+spring)
- 初学Hibernate框架之环境配置和测试
- hibernate 中 load和get的测试
- springmvc的配置和测试
- hibernate经典配置与测试
- hibernate——配置测试
- hibernate-hibernate的配置
- Hibernate的配置和Hibernate的持久化类
- Hibernate最简单的配置和使用
- Hibernate的介绍、安装、配置和应用
- Hibernate中关于和的配置心得
- 兼容Oracle和MSSQL的Hibernate配置
- Hibernate中二级缓存的配置和使用
- Hibernate中二级缓存的配置和使用
- STM32使用J-Link烧写出错:Error: Flash Download failed - Cortex-M3
- JavaScript UserAgent判断---摘自Professional JavaScript for Web Developers 3rd
- .NET 4.0下使用 SignalR (2)
- Node.js 路由
- JAVA作业—从命令行输入两个参数打开文件并计算代码行数 .
- Hibernate的配置和测试
- POJ 3692 最大团
- 心得话聊
- SQuirreL SQL Client使用入门1
- 《Java程序设计》第一次作业:源代码计算器
- OpenDaylight学习 ( by quqi99 )
- 第一次作业
- Node.js 路由
- 软考中的网络题