hibernate 入门学习 Demo

下面以一个简单的例子描述hibernate的使用。

 

软件配置:jdk1.6+hibernate4.1+oracle10g

 

1.hibernate包下载

 

先到hibernate官网下载hibernate的开发包hibernate-search-4.1.1.Final-dist.zip,解压缩此包,dist\lib目录下是开发所需的jar包。

 

2.在eclipse中创建java项目

 

项目创建后,需要引入依赖的jar包:

 

hibernate包:required下全部jar包,provided下的hibernate-jpa-2.0-api-1.0.1.Final.jar和jta-1.1.jar包

oracle包:ojdbc6.jar

日志包(可选,如果不添加则看不到hibernate的日志输出):slf4j-api-1.6.3.jar、logback-core-1.0.0.jar、logback-classic-1.0.0.jar 

 

创建包:test,test.hibernate,test.model

 

3.创建数据库表

 

本示例使用oracle,其他数据库的特性和sql可参考一下代码稍作改变即可:

 

创建House表:

 

CREATE TABLE House
(
	id       NUMBER(8) NOT NULL,
	name     VARCHAR2(50),
	address  VARCHAR2(50) NOT NULL
)
;


ALTER TABLE House ADD CONSTRAINT PK_House 
	PRIMARY KEY (id) 
 USING INDEX 
;

CREATE SEQUENCE SEQ_House_id 
    INCREMENT BY 1 
    START WITH 1 
    NOMAXVALUE 
    MINVALUE 1 
	NOCYCLE 
	NOCACHE 
	NOORDER
;

 

 创建Person表:

 

CREATE TABLE Person
(
	id    NUMBER(8) NOT NULL,
	name  VARCHAR2(50),
	age   NUMBER(3)
)
;


ALTER TABLE Person ADD CONSTRAINT PK_Person 
	PRIMARY KEY (id) 
 USING INDEX 
;

 

4.编写hibernate配置文件

 

在src目录下创建hibernate.cfg.xml文件:

 

<?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.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
		<property name="connection.username">hi</property>
		<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
		<property name="connection.password">hi</property>
		<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    	
		<property name="current_session_context_class">thread</property>
		<!-- this will show us all sql statements -->
		<property name="hibernate.show_sql">true</property>
    	
		<!-- mapping files -->
		<mapping resource="test/model/House.hbm.xml"/>
		<mapping class="test.model.Person"/>
	</session-factory>
</hibernate-configuration>

 

注意看上面的mapping节点:第一个使用的是mapping映射文件,第二个使用java注解映射方式。这两个文件将在后面创建。

 

5.编写SessionFactoryUtil类

 

在test.hibernate包下建立SessionFactoryUtil类,此类用于获取session:

 

package test.hibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class SessionFactoryUtil {
	
	private static org.hibernate.SessionFactory sessionFactory;
	private SessionFactoryUtil() {
	}
	
	static {
		// 使用xml文件或者注解方式加载hibernate配置
		sessionFactory = new AnnotationConfiguration().configure()
				.buildSessionFactory();
		// 只是用xml文件方式加载hibernate配置
		// sessionFactory = new	Configuration().configure().buildSessionFactory();
	}
	
	public static SessionFactory getInstance() {
		return sessionFactory;
	}
	
	/**
	 * 打开会话但不绑定到会话上下文中
	 * @return the session
	 */
	public Session openSession() {
		return sessionFactory.openSession();
	}

	/**
	 * 从会话上下文中返回会话,如果上下文中不存在会话示例则先创建一个会话示例并保存到上下文中,然后再返回。
	 * <br>
	 * 会话上下文与hibernate配置中的current_session_context_class属性值有关。
	 * @return the session
	 */
	public Session getCurrentSession() {
		return sessionFactory.getCurrentSession();
	}
	
	/**
	 * 关闭会话工厂
	 */
	public static void close() {
		if (sessionFactory != null)
			sessionFactory.close();
		sessionFactory = null;
	}
}

 

6.创建映射文件和类

 

本例示范两种方式的映射,mapping文件和java注解方式。

House采用mapping文件映射方式,Person采用java注解映射方式。

 

在test.model包下新建House类(POJO):

 

package test.model;

public class House {
	private Integer id;
	private String name;
	private String address;
	/**
	 * @return the id
	 */
	public Integer getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(Integer id) {
		this.id = id;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the address
	 */
	public String getAddress() {
		return address;
	}
	/**
	 * @param address the address to set
	 */
	public void setAddress(String address) {
		this.address = address;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "House [id=" + id + ", name=" + name + ", address=" + address
				+ "]";
	}

}

 

同时在此包下新建House.hbm.xml映射文件,通过此文件描述House类和数据库中的House表之间的映射关系:

 

<?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="test.model.House" table="house">
		<id name="id" column="id">
			<generator class="sequence">
				<param name="sequence">SEQ_HOUSE_ID</param>
			</generator>
		</id>
		<property name="name" column="name" />
		<property name="address" column="address" />
	</class>
</hibernate-mapping>
 

house表在数据库中使用名为SEQ_HOUSE_ID的序列作为主键id的值。如果表的主键生成方式不同,generator节点需要修改,网上有很多相关资料。

 

在test.model包下新建Person类(POJO),并添加注解来表述语数据库中Person表的映射关系,不做特殊说明时,默认数据库中的名车和类中名称一致。

 

package test.model;

import javax.persistence.AttributeOverride;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="PERSON")//表名称和类名称相同时可以不添加此注解来说明
public class Person {
	@Id
	private Integer id;
	private String name;
	@AttributeOverride(column = @Column, name = "AGE")//字段名称和属性名称相同可以不添加此注解来说明
	private int age;
	
	/**
	 * @return the id
	 */
	public Integer getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(Integer id) {
		this.id = id;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the age
	 */
	public int getAge() {
		return age;
	}
	/**
	 * @param age the age to set
	 */
	public void setAge(int age) {
		this.age = age;
	}
}

 

7.编写测试方法

 

 

package test;

import org.hibernate.Session;
import org.hibernate.Transaction;

import test.hibernate.SessionFactoryUtil;
import test.model.House;
import test.model.Person;

public class Test {
//	private static Logger logger = LoggerFactory.getLogger(Test.class);//slf4j logging
	
	public static void main(String[] args) {
		Session session = SessionFactoryUtil.getInstance().getCurrentSession();
		Transaction tx = session.beginTransaction();
		
		House house = new House();//瞬态
		house.setName("forest honey");
		house.setAddress("beijing");
		
		session.save(house);//持久态
		
		//对持久态对象进行修改
		house.setAddress("yj1212");
		
		Person person = new Person();//瞬态
		person.setId(1);
		person.setAge(24);
		person.setName("张三");
		session.save(person);//持久态
		
		session.delete(person);//session关闭后此person便会成为托管态对象
		
		tx.commit();//提交事务,提交后会自动关闭session
		
//		session.close();
	}
}
 

执行上面的main方法,控制台输出:

 

Hibernate: select SEQ_HOUSE_ID.nextval from dual
Hibernate: insert into house (name, address, id) values (?, ?, ?)
Hibernate: insert into PERSON (age, name, id) values (?, ?, ?)
Hibernate: update house set name=?, address=? where id=?
Hibernate: delete from PERSON where id=?
 

测试类中紊乱的“业务逻辑”代码只是为了说明hibernate的使用方式,请忽略!呵呵。

 

hibernate拥有缓存机制,其中session便是一级缓存,还可以配置二级缓存。要想充分利用hibernate的优势,还需要深入了解hibernate的session,事务,缓存,延迟加载,以及各种对象尤其是session的生命周期等。后续再慢慢总结。

Abaqus小白必看:用Micromechanics Plugin轻松搞定RVE周期性边界条件(附避坑指南) 本文为Abaqus初学者提供了使用官方Micromechanics Plugin插件高效实现复合材料代表性体积单元分析的完整指南。文章详细讲解了从插件安装、模型准备、周期性边界条件自动设置到结果验证的全流程,并重点分享了处理复杂模型和避免常见错误的实用技巧,帮助用户大幅提升RVE分析效率与准确性。 阅读详情

相关推荐

【Java】利用反射执行Spring容器Bean指定的方法,支持多种参数自动调用

目录 使用情景 目的 实现方式 前提: 思路 核心类 测试方法 使用情景 将定时任务录入数据库(这样做的好处是定时任务可视化,也可以动态修改各个任务的执行时间),通过反射执行对应的方法; 配合Netty实现简单的HTTP请求处理框架 其他需要使用反射执行Spring方法的业务亦可 目的 很多文章都提到了反射,但是对于方法参数处理这一块都是明确了类型,不支持按照实际参数动态转换,而本篇文章提供了一个思路怎么做到方法参数的动态调用。 大家也可以...

ITjianshuzhai的博客 2334

【SSH系列】-- hibernate基本原理&&入门demo

什么是hibernate?      hibernate在英文中是冬眠的意思,当冬季来临,世界万物开始准备冬眠,但是程序猿这种动物好像不冬眠,因为需求变了,要改bug,冬眠,对于对象来说就是持久化。什么叫做持久化呢?持久化,就是把数据(如内存中的对象)保存到可永久保存的存储设备中,比如磁盘,持久化的主要应用就是将内存中的对象存储在数据库中,或者存储在磁盘文件中、xml文件中等等。持久化是将程序数据

从手指到键盘,谱出生命的轨迹~~~ 9463

Ecg信号QRS波峰检测:A Real-Time QRS Detection Algorithm (Pan-Tompkins法)

Pan-Tompkins法是R峰检测的经典方法,被引量高达6000+次。 Pan J, Tompkins W J. A real-time QRS detection algorithm[J]. IEEE transactions on biomedical engineering, 1985 (3): 230-236. 本文对论文流程进行了总结,并参考BioSigKit项目,复现了论文代码。 流程图: 代码如下: 第一部分是信号读入,这里使用MIT_BIH信号的100,读入10000个数据点 第二部分

weixin_42870380的博客 1万+

hibernate 入门学习demo

2014年,开始学习java ,边学习css+html+servlet+jsp, 做了一个简单的学校精品课程网站,最近在做一个SSH 商业网站,也是边学边做,但是很多东西都是别人搭建了。虽然会用,但是还是一知半解,还是写东西记录下,自己开始学着搭建框架。      Hibernate用于管理JAVA类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),提供数据库查询和获取数据的方法,

qq303437511的博客 503

C语言新手必练:10个实战小项目带你快速上手(附完整代码)

本文为C语言初学者精选10个实战项目,从基础的温度转换器到高级的迷宫求解算法,涵盖输入输出、条件判断、循环控制、数组操作等核心知识点。每个项目配有完整代码和详细解析,帮助新手通过实践掌握编程思维,特别适合刚学完语法但缺乏实战经验的学习者。

weixin_29208077的博客 739

FPGA实战笔记——SDRAM乒乓缓存与OV5640视频采集(VGA显示优化篇)

本文详细介绍了基于FPGA的SDRAM乒乓缓存技术在OV5640视频采集与VGA显示优化中的应用。通过设计多时钟域同步和双Bank乒乓缓存策略,有效解决了摄像头30fps输出与VGA 60fps显示之间的帧率不匹配问题,实现了720P高清视频的流畅稳定显示,为实时图像处理系统提供了可靠的硬件解决方案。

ss78901的博客 882

hibernate demo入门

此demo项目采用hibernate3.2  new 一个普通的java项目,引入hibernate所需要的jar包:核心jar  hibernate3.jar,其他依赖jar  /lib 下  ,mysql 驱动jar    hibernate 核心配置文件 :默认就放到classpath根目录下(src根目录)即可 hibernate.cfg.xml 注意:session-fac

jasnet_u的博客 1336

音视频开发—H264相关概念和压缩原理详解(GOP、宏块、帧内压缩、帧间压缩)

本文讲述了H264相关概念和原理——GOP概念,SPS与PPS,帧内压缩原理,帧间压缩原理,解释了什么是运动补偿,什么运动矢量等等概念

weixin_46999174的博客 3978

Hibernate学习笔记(一)——简单的Hibernate实例入门

一、Hibernate简介 Hibernate是一个开源的对象/关系映射(ORM)框架,它对JDBC进行了轻量级的封装。所谓ORM就是Object/Relationship Mapping,为什么要使用对象/关系映射呢?因为使用面向对象思想编写的数据库应用程序都是要把信息存储到关系型数据库中的,使用Hibernate就可以使用面向对象的方法来操作和使用数据库了。 二、Hibernate简单实例

记录只为更好地前行 5467

Apple CarPlay Certification Guide December 2022 解析V1.0

Apple CarPlay Certification Guide December 2022更新说明

m0_74450450的博客 703

深度学习batch、batch_size、epoch、iteration以及小样本中episode、support set、query set关系

训练整个数据集是epoch、把数据集分为多少小块就是batch,每个小块(batch)多少个数据就是batch_size,整个数据集需要训练多少轮是iteration

qq_42740834的博客 1610

Struts2SpringHibernate整合示例,一个HelloWorld版的在线书店(项目源码+详尽注释+单元测试)

Struts2,Spring,Hibernate是Java Web开发中最为常见的3种框架,掌握这3种框架是每个Java Web开发人员的基本功。 然而,很多初学者在集成这3个框架的时候,总是会遇到各种各样的问题。 大学期间,刚刚学习SSH的时候,也是如此。 当时,做了一个Demo性质的在线书店,现在分享给大家。 希望对初学者有所帮助。 优快云下载地址(免积分):http://download.youkuaiyun.com/detail/fansunion/6345147

AI一人公司实践中,AI全栈程序员,编程-产品-营销 8848

【实践】VECTOR AUTOSAR创建SWC读写CAN信号

在AUTOSAR开发中最必要的功能就是读写CAN信号,本文通过一步步说明,介绍如何开发SWC来读写CAN信号,可以说在AUTOSAR中实现读写CAN信号的实践过程,是一个非常基础且典型的练习。在本篇文章阅读之前,推荐阅读AUTOSAR RTE介绍,本篇文章介绍了RTE的比较全面的介绍了AUTOSAR RTE。理解了RTE之后,才能对SWC的设计更加清楚。话不多说,接着上一篇内容VECTOR DaVinci从0到1搭建工程,此篇文章我们介绍如何在DaVinci Developer中开发SWC访问CAN信号。为

酒无忧的博客 1231

Hibernate入门第一讲——Hibernate框架的快速入门

Hibernate框架介绍什么是Hibernate我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以

李阿昀的博客 12万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Hibernate入门第三讲——Hibernate的常见配置

在《Hibernate快速入门》一文中,我有讲到Hibernate的两个配置文件,今天就来详细地介绍这两个配置文件。Hibernate的配置详解在Hibernate中,我们使用时主要有两种配置文件: 核心配置文件——hibernate.cfg.xml(主要描述Hibernate的相关配置) 映射配置文件——xxx.hbm.xml 核心配置文件Hibernate的核心配置文件,即hibernate.c

李阿昀的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Hibernate 框架入门

一、Hibernate框架介绍 什么是Hibernate 我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hi...

热心网友 5万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Hibernate5入门Demo(Maven)

一直在使用mybatis和mybatis-plus, 甚至直接使用jdbc; 但是现在仍然还是有很多公司在使用hibernate, 所以写了一个十分简单的入门demo. 第一步:添加maven依赖 <dependency> <groupId>org.hibernate</groupId> <artifac...

zzqrt的博客 461

hibernate 入门增删改查demo

hibernate 入门增删改查demo 源代码下载地址:http://www.zuidaima.com/share/1550463648238592.htm

springmvc_springdata的专栏 1017

IDEA下的Hibernate入门demo

Hibernate简介 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servl...

的博客 808

Hibernate入门DEMO

1.        导入不要的jar包 2.        创建hibernate配置文件,并配置 在源码路径下创建hibernate.cfg.xml配置文件: <!DOCTYPEhibernate-configuration PUBLIC "-//Hibernate/HibernateConfiguration DTD 3.0//EN" "htt

ilmlife的专栏 1057

Hibernate入门详细教程

Hibernate入门 1、下载Hibernate Hibernate官网链接 本文以 hibernate-release-5.3.16.Final 为例 (1)下载好解压后如下图所示: (2)打开 lib (3)打开 required 2、编写第一个程序 (1)开发工具IDEA (2)创建项目Hibernate,导入 jar 包 导入上面 required 中的所有 jar 包 导入 Mysql 驱动包 mysql-connector-java-8.0.19.jar (说明:Mysql版本

ycfxhsw的博客 2210

Hibernate入门

要学习Hibernate,首先要了解ORM,即Object/Relation Mapping,对象-关系映射,就是通过将Java对象映射到数据库表,通过操作Java对象,就可以完成对数据表的操作。Hibernate是最流行的ORM框架,通过对象-关系映射配置,可以完全脱离底层SQLHibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架,提供了对关系型数据库增删改成操作

一个无限死循环的博客 243

学习Hibernate5这一篇就够了

目录第一章 Hibernate5快速入门1.1、Hibernate5概述1.2、Hibernate5下载1.3、Hibernate5工程搭建1.4、Hibernate5测试代码1.5、Hibernate5工具类第二章 Hibernate5核心配置2.1、两种配置方式2.1.1、属性文件的方式(了解)2.1.2、xml文件的方式(掌握)2.2、核心配置讲解2.2.1、核心的配置2.2.2、映射的配置2.3、核心对象讲解2.3.1、Configuration2.3.2、SessionFactory2.3.3、S

轻松的小希 8079

Hibernate框架入门Demo

笔者最近在自学Hibernate框架,做了一个简单的入门Demo,记录于此。 环境介绍: eclipse:eclipse-java-neon-1a-win32-x86_64 mysql:mysql-installer-community-5.6.28.0 hibernate:hibernate-release-5.2.5.Final eclipse新建java项目,项目中文件目录如下:

Dove_Knowledge的博客 1083

hibernate mysql demo_简单的Hibernate访问数据库Demo

最近在学习SSH,现在看到Hibernate这块,动手实现了一个简单的Demo,对Hibernate的功能、使用有了初步了解。 1、首先将Hibernate的jar包复制到Web项目的lib目录下。有些依赖jar包,要额外导入;比如cglib-nodep.jar,不然会报错。 2、配置实体类。这里我用的最近在学习SSH,现在看到Hibernate这块,动手实现了一个简单的Demo,对Hiberna...

weixin_39607798的博客 192
上一篇: RMI入门学习
下一篇: 使用hibernate tools插件生成POJO
maimode
博客等级 码龄19年 11粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值