SSH学习(九)第一个hibernate程序

【SSH进阶之路】Hibernate系列——总结篇(九) 这篇博文是Hibernate系列的最后一篇,既然是最后一篇我们进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通。。。 阅读详情

学习Java的同学注意了!!! 
学习过程中遇到什么问题或者想获取学习资源的话,欢迎扫描左栏的二维码加入微信公众号(codehzm)
  我们一起学java!

在上篇博客中,我们介绍了《hibernate基本概念和体系结构》,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基本配置。核心API的底层实现和源码解析将在以后的博客中一一为大家讲解。

首先我们一起来看一下开发一个hibernate应用程序的大体流程是什么样的(流程顺序可以颠倒):

•创建Hibernate的配置文件

•创建持久化类

•创建对象-关系映射文件

•通过Hibernate API编写访问数据库的代码

 

关于配置文件推荐阅读:SSH学习(十一)Hibernate常用配置文件详解


    知道了开发流程,那么我们就开始我们的第一hibernate应用程序,首先我们以一个简单的学生管理应用程序来作为我们第一hibernate应用程序的开发,让大家熟悉一下hibernate的开发流程,以及对相对应功能的API有初步的认识,Hibernate应用程序定义了一些持久类,并且定义了这些类与数据库表格的映射关系。在我们这个简单的学生管理应用程序中包含了一个类和一个映射文件。让我们看看这个简单的持久类包含有一些什么?映射文件是怎样定义的?另外,我们该怎样用Hibernate来操作这个持久类。

Hibernate开发全面流程和开发配置

首先创建一个项目。然后创建配置开发环境,主要步骤如下:

MyEclipse-->ProjectCapabilities-->add Hibernate Capabilities,视图如下:

                              

复选框选中第二个copychecke。。。。那一个。然后点击next;

                               

为了锻炼能力,配置文件第一次手写,不用图形界面自动生成,所以把: Open configurationfile after wizard completion 选中的点掉;点击next

                                 

Specify database connection details把这也点掉;点击next;

                                    

全部都用手写,所以把create sessionFactry class此处也点掉;点击Finish;然后lib里面会自动增加一系列jar包

                                                        

并且src里面也生成了hibernate.cfg.xml,:

由于本人此次练习的是整合Struts与Hibernate进行应用的开发

所以还要进行struts相关文件的配置,由于struts相关文件配置比较简单,所以此处省略;

首先编写一个持久化类:本人创建的是person类:模型类即为javabean,很简单;

注:持久化类符合JavaBean的规范,包含一些属性,以及与之对应的getXXX()和setXXX()方法。

•持久化类有一个id属性,用来惟一标识Person类的每个对象。在面向对象术语中,这个id属性被称为对象标识符(OID,Object Identifier)

•Hibernate要求持久化类必须提供一个不带参数的默认构造方法

下一步即写一个提交到数据库内容的表单,简单的表单不在此处写了。然后写一个action,获得表单的内容:此处action中的处理方法:execute()里面主要是把表单所要提交的信息调用模型类封装成一个类

下一步即将和hibernate的API打交道了。。。编写工具类HibernateUtil这个类主要是获得和数据库打交道的Session类

private static SessionFactory sessionFactory;  
//由于一共只有一个SessionFactory所以把创建SessionFactory的代码放到static代码块里面,让他只创建一次  
static {  
	try {  
		/** 
		 * 创建SessionFactory过程: 
		 * 1.new Configuration().configure()获得一个configuration的实例 
		 * 2.configuration.buildSessionFactory()获得创建session的工厂sessionFactory的实例 
注:Configuration类用来管理我们的配置文件的信息的,通过它,我们可以通过创建一个configuration实例来管理相应的配置文档,但是通常我们只创建一个configuration实例。 
		 * */        
		sessionFactory = new Configuration().configure()  
				.buildSessionFactory();  
	} catch (Exception e) {  
		e.printStackTrace();  
	}  
}  
public static Session openSession(){  
	//获得与数据库打交道的实例session  
	Session session=sessionFactory.openSession();  
	//把工具session返回给调用者  
	return session;  
}     

注意:此Session非彼Session(HttpSession)

一个SessionFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。

SessionFactory有以下特点:

–它是线程安全的,这意味着它的同一个实例可以被应用的多个线程共享。

–它是重量级的,这意味着不能随意创建或销毁它的实例。如果应用只访问一个数据库,只需要创建一个SessionFactory实例,在应用初始化的时候创建该实例。如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的SessionFactory实例。

 

Session接口是Hibernate应用使用最广泛的接口。

•Session也被称为持久化管理器,它提供了和持久化相关的操作,如添加、更新、删除、加载和查询对象。

•Session有以下特点:

–不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。

–Session实例是轻量级的,所谓轻量级是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建或销毁Session对象,例如为每个客户请求分配单独的Session实例,或者为每个工作单元分配单独的Session实例。

Session接口提供了操纵数据库的各种方法,如:

–save()方法:把Java对象保存数据库中。

–update()方法:更新数据库中的Java对象。

–delete()方法:把Java对象从数据库中删除。

–get()方法:从数据库中加载Java对象。

 

在编写用session处理数据类DAO类,先编写有关接口然后编写实现类personDaoImpl,这个类主要用session处理数据执行事务的类:

示例代码:

//调用工具类获得session  
Session session = factory.openSession();  
Transaction tx;  
try {  
	//开始一个事务  
	tx = session.beginTransaction();  
	//执行事务  
	Student stu=new Student(“李华”,”男”,”山东”);  
	Session.save(stu);  
	//提交事务  
	tx.commit();  
}  
catch (Exception e) {  
	//如果出现异常,就撤销事务  
	if (tx!=null) tx.rollback();  
	throw e;  
}  
finally {  
	//不管事务执行成功与否,最后都关闭Session  
	session.close();  
}  


                                                    

然后编写逻辑处理类(服务类):先写有关接口,然后写实现类.这个类主要用于处理一些逻辑处理,在这个地方主要用于调用数据处理类DAO进行数据处理

public class PersonServiceImpl implements PersonService {  
	public void savePerson(Person person){  
		PersonDAO personDAO = new PersonDAOImpl();  
		personDAO.savePerson(person);  
	}  
} 

然后直接在action里面写出PersonServiceImpl实例进行调用其方法进行就可以了。Action里面主要处理方法代码示例

public String execute() throws Exception{  
	Person person = new Person();  
	person.setUsername(username);  
	person.setPassword(password);  
	person.setAge(age);  
	java.sql.Date registerDate = new java.sql.Date(new java.util.Date().getTime());  
	System.out.println("222222");  
	person.setRegisterDate(registerDate);  
	PersonServiceImpl personService = new PersonServiceImpl();  
	personService.savePerson(person);  
	returnSUCCESS;  
}  

 写到这,一个hibernate主要的逻辑层就差不多了,现在就主要看怎样写配置文件了:先配置hibernate.cfg.xml.主要配置示例:

 

<!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:sqlserver://localhost:1433; DatabaseName=Hibernate</property>  
    <property name="connection.username">sa</property>  
    <property name="connection.password">123456</property>  
    <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>  
    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>  
    <property name="show_sql">true</property>  
    <mapping resource="Person.hbm.xml"/>//映射到具体person表的配置文件  
    </session-factory>  
</hibernate-configuration>

注意:

Hibernate的描述文件中存放数据库连接驱动程序类,登陆数据库的用户名/密码,映射实体类配置文件的位置等信息。

•将该配置文件存放在src目录下

描述文件相关属性描述含义:

                                

最后一步:

对持久化(实体)类Person.java文件创建一个Hibernate映射文件Person.hbm.xml

Java的实体类是通过配置文件与数据表中的字段相关联。Hibernate在运行时解析配置文件,根据其中的字段名生成相应的SQL语句

•将该文件存放在src目录下

具体代码示例:

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
<hibernate-mapping>  
    <class name="com.csh.model.Person" table="person">   
     <id name="id" column="id"  type="int">  
         <generator class="increment"></generator>     
     </id>  
     <property name="username" column="username" type="string"></property>  
     <property name="password" column="password" type="string"></property>  
     <property name="age" column="age" type="int"></property>  
     <property name="registerDate" column="registerDate" type="date"></property>  
    </class>  
</hibernate-mapping>

注:id元素对应的一定是数据库的主键列;class="increment"意为自增

                                                    

<property>元素映射值   类型属性

•name属性:指定持久化类的属性的名字。

•type属性:指定Hibernate或Java映射类型。Hibernate映射类型是Java类型与SQL类型的桥梁。

•column属性:指定与类的属性映射的表的字段名。 

                             

至此,hibernate开发过程和相关配置就此完毕

codehzm 
Java SSH框架学习 阅读详情

相关推荐

SSH整合与Hibernate注解实战指导

Struts框架是Apache软件基金会的一个项目,是一个基于MVC设计模式的Web应用框架。在SSH(Struts+Spring+Hibernate)框架组合中,Struts作为表现层(View)的主要组成部分,负责接收用户请求并将响应返回给客户端。Struts通过XML配置文件和JavaBean组件来处理Web应用中的业务逻辑,简化了基于Java的Web应用开发。Struts的核心是ActionServlet,它作为整个Struts框架的控制器,负责调用应用的业务逻辑组件。

weixin_30248619的博客 990

Session接口操作数据库的核心方法

1.save()——规范例子:   public void addUser(User user){ Session session = null; Transaction tx = null; try{ session = HibernateUtil.getSession(); tx.session.beginTransaction()...

麦田守望者 486

第一个SSH手动整合程序

第一个SSH手动整合程序,该程序只需修改链接数据库密码后,即可部署到tomcat上,运行。该整合程序还有doc文档教程,名为FirstSSH.doc或者浏览本人第一个手动完成SSH整合博文

Session接口操纵实体对象的方法

操作实体对象 对象的状态 (1)瞬时对象(Transient Objects):由new操作符创建,且尚未与Session 关联的对象被认定为瞬时(Transient)的,不和数据库的数据有任何关联关系。 瞬时(Transient)对象没有被持久化到数据库中,也不会被赋予持久化标识(identifier)。 如果瞬时(Transient)对象在程序中没有被引用,它会被垃圾回收器(garbage collector)销毁。 由于此对象没有纳入Session的管理,那么此时该对象的任何变化都不会发出SQL语句。

weixin_44677005的博客 453

无监督低照度增强实战:用ZeroDCE和SCI拯救你的夜间照片(附PyTorch代码)

本文深入探讨了无监督低照度图像增强技术,重点解析了ZeroDCE和SCI两大代表性模型的核心原理与实战应用。通过对比分析两者的技术路径、网络结构及性能特点,并附上详细的PyTorch代码实现,旨在帮助读者掌握无需配对数据即可有效提升夜间照片画质的深度学习解决方案。

git9versioner的博客 489

deepfake detection数据集

最全Deepfake数据集总结,包含各个数据集下载链接: https://github.com/deepfakeinthewild/deepfake_in_the_wild Dataset name Download Generate method Deepfake videos Actors Deepfake-TIMIT low download De...

where_is_horse的博客 1万+

Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解...

在上篇博客中,我们介绍了《hibernate基本概念和体系结构》,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基本配置。核心API的底层实现和源码解析将在以后的博客中一一为大家讲解。 首先我们一起来看一下开发一个hibernate应用程序的大体流程是什么样的(流程顺序可以颠倒): •创建Hibernate的配置文件 ...

weixin_34399060的博客 177

华为HPLC模组全拆解之电力载波收发原理分析

电力线载波通信(PLC)是一种使用电力线进行数据传输的通信技术,即利用现有电网作为信号的传输介质,使电网在传输电力的同时可以进行数据传输。目前根据所用频段的不同,低压电力线载波通信一般分为窄带电力线载波通信(10KHz~500KHz)和宽带电力线载波通信(2MHz~20MHz)。这里的频率可以简单理解为单片机串口的通信波特率,频率越小通信速度越慢,频率越大通信速度越快。为了研究电力载波通信原理,笔者以华为的一款宽带电力载波模组为例进行详细的分析,该模组主控采用的是海思芯片,型号为Hi3921EV100。

xingxingdiandeng69的博客 2万+

Hibernate——————Session接口

Hibernate核心接口一共有六个,分别为Session,SessionFactory,Transaction,Query,Criteria,Configuration。1、Configuration        负责配置并启动Hibernate,创建SessionFactory对象。在hibernate的启动过程中,configuration类的实例首先定位映射文档位置、读取配置,获取一些底...

菜鸟程序猿的博客 1077

Arm CCA架构:硬件级机密计算与安全隔离技术解析

机密计算(Confidential Computing)通过硬件级隔离技术构建可信执行环境(TEE),是当前云安全和数据隐私保护的核心方案。Armv9-A引入的CCA架构采用物理地址空间隔离和Granule保护表(GPT)机制,实现4KB颗粒度的内存访问控制。该技术通过标准化的RMI/RSI接口规范,为虚拟化环境和安全敏感应用提供硬件级保护,特别适用于金融交易、医疗数据处理等需要严格隔离的场景。相比传统TEE方案,Arm CCA在隔离等级和动态权限管理方面具有显著优势,其Realm World设计为机密计算

weixin_30905133的博客 565

告别底噪和发热:TPA3255的PCB布局与散热设计保姆级教程(附嘉立创EDA文件)

本文详细解析TPA3255 Class D音频功放的PCB布局与散热设计,提供从电源系统分层架构到热管理系统的全流程优化方案。通过实战案例展示如何消除底噪、降低发热,并附嘉立创EDA文件,助力工程师快速设计高性能音频功放。

weixin_29208077的博客 376

Hibernate中Session接口的用法

Session的save()和persist()方法 Session的save()方法使一个临时对象转变为持久化对象。它完成以下操作: (1)将临时对象加入到Session缓存中,使其进入持久化状态。 (2)选用映射文件指定的标识符生成器,为持久化对象分配唯一的OID。 (3)计划执行一个insert语句。   Session的save()方法是用来持久化临时对象的。不应将持久化对象或游

yundashi168.com 1071

PCL 建筑物点云立面和平面分割提取【2025最新版】

在建筑物点云中,立面点和平面点的法向量存在明显的差异,根据法向量在Z方向的分量设置相应得阈值即可实现立面点与平面点的分割。

点云侠的博客 1961

SSH框架之Hibernate的引入、ORM概念、第一个Hibernate配置

一、Hibernate的引入: 1、SSH框架: 1)Struts框架, 基于mvc模式的应用层框架技术! 2)Hibernate, 基于持久层的框架(数据访问层使用)! 3)Spring, 创建对象处理对象的依赖关系以及框架整合! 2、Dao代码,如何编写: 1)操作XML数据 2)使用Jdbc技术: a)原始的jdbc操作

一点一滴 925

Horn-Schunck光流算法的Python实现

光流是计算机视觉领域中的一个重要概念,它描述了图像中物体在时间上的运动。Horn-Schunck光流算法是一种经典的光流估计方法,通过对图像的亮度变化进行建模,来估计像素的运动速度。在本文中,我们将使用Python实现Horn-Schunck光流算法,并提供相应的源代码。请注意,该算法假设图像上的亮度变化主要由物体的运动引起,并且假设光流在整个图像上是稠密的。在上面的示例中,我们首先读取了两个输入图像,然后使用我们实现的Horn-Schunck光流算法估计了它们之间的光流。首先,我们需要导入一些必要的库。

持续更新 495

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SSH中hibernate的使用

这里写目录标题hibernate hibernate

weixin_41472455的博客 929

ssm框架搭建

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

Hibernate在SSH项目中的应用

Hibernate的应用(包括关联关系的映射和HQL等)可以参考其在线文档:http://docs.jboss.org/hibernate/core/3.6/reference/zh-CN/html/Hibernate打破了以往先建立好表在创建实体类的传统方式,hibernate

指尖思维 2994

深度学习工具包 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")

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

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

java ssh框架 struts spring hibernate 简介

目录 什么是SSH框架 浅谈Struts 什么是Struts Struts的核心构成 为什么使用Struts 浅谈Hibernate 什么是Hibernate Hibernate的核心构成 浅谈Spring 为什么使用Spring 什么是SSH框架 官方的说法:SSH是 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架。 SSH不是一个框架,而是把多个框架(Struts、Spring以及Hibernate)紧密的结合在一起.

whatday的专栏 1752

SSH之Hibernate学习 查询

SSH数据库操作之查询 该种方式可以直接使用参数进行获取,可实现模糊查询 public static List<Books> getListByName(String name){ Session session=getSession(); //编写HQL语句 String sql="from Books as book where book.name like'%"+na...

pengxiang1998的博客 216

SSH之Hibernate

SSH包括三个:Spring + Strurs2 +Hibernate Hibernate框架用于帮助我们完成数据库操作。取代了dao层中的JDBC和DBUtils Hibernate以面向对象的形式来完成,不需要书写SQL语句,操作的对象也都是通过自己写的实体类 在使用Hibernate框架之前需要配置ORM;对象关系映射,配置类与表之间的关系 Hibernate框架的搭建分为6步 第一步导包...

l245000099的博客 330

SSH框架学习总结

SSH框架学习总结 最终版权:JDram314 如转载请贴出出处!                本来对SSH框架的学习可以早在去年,但是一直在给老师弄他的科研部分,所以一直拖到最近才算是学完了。乘现在有空总结一下,方便以后复习。          一、Struts

JDream314的专栏 1万+

【Java编程】SSH:Struts、Spring、Hibernate

SSH 框架指的是 Struts、Spring 和 Hibernate 三者的集成。集成 SSH 框架的系统从职责上分为表示层、业务逻辑层、数据持久层和域模块层。Struts 属于 MVC 框架的一种,提供了对 MVC 系统底层的支持,负责 MVC 的分离,在 Struts 框架的模型部分,控制业务跳转,利用 Hibernate 框架对持久层提供支持,Spring 则管理 Struts 和 Hibernate。

Data · Model · Agent · Repeat 1305

SSH学习之Hibernate的第一个程序

回忆 在之前的几篇博客里我们了解了Hibernate的一些基本的概念和用途,接下来我从环境搭建到对数据库进行CRUD操作做一次详细的讲解。(在这里JDK、Tomcat、myeclipse、MySQL都已经配置好了) 搭建环境 第一步:创建项目 个人建议还是创建WEB项目比较好,其实创建Java项目也行,在这里我就以WEB项目为例了。 第二步:导入jar包 我使用的Hiberna

木偶线的博客 463

SSH与SSM学习之SSH整合05——单独配置Hibernate

SSH与SSM学习之SSH整合05单独配置Hibernate 一导入实体类的配置 二配置hibernatecfgxml 三测试 1 测试代码 2 运行结果与图示 四源码下载SSH与SSM学习之SSH整合05——单独配置Hibernate一、导入实体类的配置这一部分的配置可以使用之前代码的。获取查看如下地址的https://github.com/wimingxxx/ssh_crm/tree/maste

qiwenmingshiwo的专栏 369

基于jsp+mysql+Spring+hibernate+的SSH在线学习交流论坛平台

基于jsp+mysql+Spring+hibernate+的SSH在线学习交流论坛平台

央顺科技官方博客 749
上一篇: SSH学习(八)hibernate基本概念和体系结构
下一篇: SSH学习(十)Hibernate常用API详解及源码分析
海之沐
博客等级 码龄12年 1536粉丝 71原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值