Hibernate 初步入门

本文介绍了如何使用Hibernate搭建开发环境,包括配置文件的设置、User类的创建及其映射文件的编写,并提供了一个简单的测试示例。

首先是配置开发环境

将hibernate 4.2.1的压缩包解压后得到三个文件夹:documentation、lib、project。分别是文档、jar包、源码。将lib中的required文件夹下的所有jar拷过去。然后将project文件夹下的etc文件夹下的hibernate.cfg.xml文件拷到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>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost:3306/hbmtest</property>
		<property name="connection.username">root</property>
		<property name="connection.password">root</property>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="hibernate.hbm2ddl.auto">create</property>
		<mapping resource="com/mark/domain/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

这些配置项可以在project文件夹下的etc文件夹下的hibernate.properties文件中找到。这里我配置的时候出了点问题。对于dialect 我第一次使用了org.hibernate.dialect.MySQLInnoDBDialect,虽然说Mysql的引擎是InnoDB,但使用这个却不行,在后面将User对象存入数据库中总是报 hbmtest.user 表不存在。使用org.hibernate.dialect.MySQLDialect才能正确的存入数据库中。具体原因是什么,这两个dialect有什么区别,目前还不清楚。

创建User类

代码如下:
package com.mark.domain;

import java.util.Date;

public class User {
	private int id;
	private String name;
	private Date birthday;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	
}

配置User类的配置文件

该文件可以从project\hibernate-core\src\test\java\org\hibernate\test\exception 目录中得到。将该文件放在User同一目录下。
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >

<hibernate-mapping package="com.mark.domain" >
	<class name="User" >
		<id name="id" >
			<generator class="increment"/>
		</id>
		<property name="name"/>
		<property name="birthday"/>
	</class>
</hibernate-mapping>

这是最简单的配置。

代码测试


package com.mark;

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 com.mark.domain.User;

public class Base {
	public static void main(String[] args) {
		Configuration cfg = new Configuration();
		cfg.configure();
		//通过加载配置 创建ServiceRegistryBuilder
		ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(cfg.getProperties());
		//通过ServiceRegistryBuilder创建ServiceRegistry
		ServiceRegistry sr = builder.buildServiceRegistry();
		//用ServiceRegistry来创建SessionFactory
		//cfg.buildSessionFactory() 该方法已标记为过时
		SessionFactory sf =  cfg.buildSessionFactory(sr);
		
		Session session = sf.openSession();
		Transaction t = session.beginTransaction();
		User user = new User();
		user.setName("mark");
		user.setBirthday(new Date());
		
		session.save(user);
		t.commit();
		session.close();
		System.out.println("success");
	}
}

输出success就测试成功了,在数据库中也有了一条记录。


代码下载地址: https://pan.quark.cn/s/bc087ffa872a "测控电路课后习题详解"文件.pdf是一份极具价值的学术资料,其中系统地阐述了测控电路的基础理论、系统构造、核心特性及其实际应用领域。 以下是对该文献的深入解读和系统梳理:1.1测控电路在测控系统中的核心功能测控电路在测控系统的整体架构中扮演着不可或缺的角色。 它承担着对传感器输出信号进行放大、滤除杂音、提取有效信息等关键任务,并且依据测量与控制的需求,执行必要的计算、处理与变换操作,最终输出能够驱动执行机构运作的指令信号。 测控电路作为测控系统中最具可塑性的部分,具备易于放大信号、转换模式、传输数据以及适应多样化应用场景的优势。 1.2决定测控电路精确度的关键要素影响测控电路精确度的核心要素包括:(1)噪声与干扰的存在;(2)失调现象与漂移效应,尤其是温度引起的漂移;(3)线性表现与保真度水平;(4)输入输出阻抗的特性影响。 在这些要素中,噪声干扰与失调漂移(含温度效应)是最为关键的因素,需要给予高度关注。 1.3测控电路的适应性表现测控电路在测控系统中展现出高度的适应性,具体表现在:* 具备选择特定信号、灵活实施各类转换以及进行信号处理与运算的能力* 实现模数转换与数模转换功能* 在直流与交流、电压与电流信号之间进行灵活转换* 在幅值、相位、频率与脉宽信号等不同参数间进行转换* 实现量程调整功能* 对信号实施多样化的处理与运算,如计算平均值、差值、峰值、绝对值,进行求导数、积分运算等,以及实现非线性环节的线性化处理、逻辑判断等操作1.4测量电路输入信号类型对电路结构设计的影响测量电路的输入信号类型对其电路结构设计产生显著影响。 依据传感器的类型差异,输入信号的形态也呈现多样性。 主要可分为...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值