重温数据库操作JDBC

将labview连续数据保存到mysql数据库器 这一篇是在之前完成Labview和mysql连接,并且进行了简单的CRUD删除的基础上来的。我们一般不会拿Labview来做学生这种数据管理系统,而是对于基本传感器数据的采集和保存,而传感器采集数据会根据设备设置的采样频率有关,所以往往需要将连续的采集的数据保存到MySQL数据库里面。好了,废话少说,直接开始。 首先在数据库里建一个表,保存传感器的数据,这里我用随机数生成进行代替,实际采集的数据也可以进行同样的操作。先建一个data_coll表,设置主键为data_id,属性设置为自增。如图: { 阅读详情

前言

    	在日常的开发当中,我们总是用框架去连接数据库,去完成业务中的需求,但是不可避免的有时候我们需要对数据进行额外的处理, 
    批量的修改或查询,这时候用框架就显得有点杀鸡用牛刀了,在这里我们将重温原始的JDBC操作,好记性不如烂笔头。

JDBC操作步骤

    1.注册驱动
    2.获取连接
    3.获取预处理语句
    4.添加占位符
    5.结果遍历或者查询修改记录条数
    6.释放资源

代码

    1.导入数据库连接需要的jar包,这里使用maven
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    2.增删改查的测试
        import org.junit.Test;

        import java.sql.*;

        public class DBTest {

            /**
            * 增
            *
            * @throws ClassNotFoundException
            * @throws SQLException
            */
            @Test
            public void test01() throws ClassNotFoundException, SQLException {
                //1.注册驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.获取连接
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "asdfmin");
                //3.获得预处理语句
                String sql = "insert into user (name, sex, age) values (? , ?, ?)";
                PreparedStatement preparedStatement = conn.prepareStatement(sql);
                //4.添加占位符
                preparedStatement.setString(1, "jack");
                preparedStatement.setString(2, "男");
                preparedStatement.setString(3, "18");
                //5.执行预处理语句
                int i = preparedStatement.executeUpdate();
                System.out.println("添加新记录条数:" + i);
                //6.释放资源
                preparedStatement.close();
                conn.close();
            }

            /**
            * 更
            *
            * @throws ClassNotFoundException
            * @throws SQLException
            */
            @Test
            public void test02() throws ClassNotFoundException, SQLException {
                //1.注册驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.获取连接
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "asdfmin");
                //3.获取预处理语句
                String sql = "update user set age = ? where name = ?";
                PreparedStatement preparedStatement = conn.prepareStatement(sql);
                //4.添加占位符
                preparedStatement.setString(1, "19");
                preparedStatement.setString(2, "jack");
                //5.执行预处理语句
                int i = preparedStatement.executeUpdate();
                System.out.println("更新记录条数:" + i);
                //6.释放资源
                preparedStatement.close();
                conn.close();
            }

            /**
            * 删
            *
            * @throws ClassNotFoundException
            * @throws SQLException
            */
            @Test
            public void test03() throws ClassNotFoundException, SQLException {
                //1.注册驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.获取连接
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "asdfmin");
                //3.获取预处理语句
                String sql = "delete from user where id = ?";
                PreparedStatement preparedStatement = conn.prepareStatement(sql);
                //4.添加占位符
                preparedStatement.setString(1, "1");
                //5.执行预处理
                int i = preparedStatement.executeUpdate();
                System.out.println("删除记录条数:" + i);
                //6.释放资源
                preparedStatement.close();
                conn.close();
            }

            /**
            * 查
            * @throws ClassNotFoundException
            * @throws SQLException
            */
            @Test
            public void test04() throws ClassNotFoundException, SQLException {
                //1.注册驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.获取连接
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "asdfmin");
                //3.获取预处理语句
                //String sql = "select * from user";
                String sql = "select * from user where name = ?";
                PreparedStatement preparedStatement = conn.prepareStatement(sql);
                //4.添加站位符
                preparedStatement.setString(1, "jack");
                //5.执行预处理
                ResultSet resultSet = preparedStatement.executeQuery();
                //6.遍历结果集
                while (resultSet.next()) {
                    int id = resultSet.getInt("id");
                    String name = resultSet.getString("name");
                    String sex = resultSet.getString("sex");
                    String age = resultSet.getString("age");
                    System.out.println("id:" + id + "   name:" + name + "  set:" + sex + "  age:" + age);
                }
                //7.关闭资源
                resultSet.close();
                preparedStatement.close();
                conn.close();
            }

        }

    3.说明
    这里用的是预处理语句PreparedStatement(防止sql注入攻击)

对于JDBC的简单封装

    对于频繁的注册驱动获取连接我们可以进行简单的封装
        import java.sql.Connection;
        import java.sql.DriverManager;
        import java.sql.SQLException;

        public class JDBCUtils {

            private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
            private static final String URL = "jdbc:mysql://localhost:3306/test";
            private static final String USER = "root";
            private static final String PASSWORD = "asdfmin";

            static {
                try {
                    //1.注册驱动
                    Class.forName(DRIVERNAME);
                } catch (ClassNotFoundException e) {
                    System.out.println("注册驱动失败");
                    e.printStackTrace();
                }
            }

            public static Connection getConn() throws SQLException {
                //2.获取连接
                Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
                //返回连接
                return conn;
            }

        }

测试封装的JDBC工具类

        import org.junit.Test;

        import java.sql.Connection;
        import java.sql.PreparedStatement;
        import java.sql.ResultSet;
        import java.sql.SQLException;

        public class DBUtilTest {

            /**
            * 测试封装的JDBCUtil
            */
            @Test
            public void test01() {
                Connection conn = null;
                PreparedStatement preparedStatement = null;
                ResultSet resultSet = null;
                try {
                    //1.获取连接
                    conn = JDBCUtils.getConn();
                    //2.获取执行语句
                    String sql = "select * from user";
                    preparedStatement = conn.prepareStatement(sql);
                    //3.添加占位符
                    //4.执行预处理语句
                    resultSet = preparedStatement.executeQuery();
                    //5.遍历结果集
                    while (resultSet.next()) {
                        String name = resultSet.getString("name");
                        System.out.println("name:" + name);
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    //6.释放资源
                    try {
                        resultSet.close();
                        preparedStatement.close();
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }

        }

API的一些简单说明

    执行预处理语句的API
    int executeUpdate(); --执行insert update delete语句.
    ResultSet executeQuery(); --执行select语句.
    boolean execute(); --执行select返回true 执行其他的语句返回false.

后记

    温故而知新。
LabVIEW操作MySQL数据库(一):互联接口-Database-基本操作总结 LabVIEW操作MySQL数据库:互联接口-Database-基本操作总给 阅读详情

相关推荐

flink重温笔记(十七): flinkSQL 顶层 API ——SQLClient 及流批一体化

今天是学习 flink 的第 17 天啦!学习了 flinkSQL 的客户端工具 flinkSQL-client,主要是解决大数据领域数据计算避免频繁提交jar包,而是简单编写sql即可测试数据,文章中主要结合 hive,即编写 flinksql 可以操作 hive 中的数据表,以及流批一体化:kafak 将数据写入到 hive中,结合自己实验猜想和代码实践,总结了很多自己的理解和想法,希望和大家多多交流!

m0_60732994的博客 1754

LabVIEW2020编程基础:Database Toolkit 插入一条数据到数据库

本教程使用Database Toolkit的DB Tools Insert Data.vi插入一条记录到数据库。 一、要求: 有一个数据库labview_example,通过上一个教程我们已经创建了一张table2表,并给它创建了3个字段:id , name , age。 现在我们要在table2表内插入数据。 二、前面板 前面板添加3个输入控件,1个数值输入控件,用于输入id;一个字符串输入控件,用于输入name...

ba_wang_mao的专栏 2196

JDBCFacade模式的运用

JDBC访问数据库需要用到一些相关的类和接口,主要有数据库的jdbc驱动程序,DriverManager,Connection, Statement, ResultSet,SQLException等。为了将这些复杂的细节与数据库应用程序的设计者隔离开,请设计一个JDBCFacade类,该类提供jdbcOpen(), jdbcSelect(), jdbcUpdate(), jdbcInsert(), jdbcDelete(), jdbcClose()等方法,数据库应用程序的开发者直接使用JDBCFacade类提供的方法就可以实现查询、修改、追加、删除记录等操作。(注:jdbcSelect()方法返回的类型是ResultSet。各方法所需的参数请自行设计) 编写一个测试主类,测试你的JDBCFacade类。

LabVIEW2020编程基础:Database Toolkit 插入多条数据到数据库

LabVIEW2020编程基础:Database Toolkit数据库系列教程 1、LabVIEW2020编程基础:Database Toolkit 创建数据库表及字段 2、LabVIEW2020编程基础:Database Toolkit 插入一条数据到数据库 3、LabVIEW2020编程基础:Database Toolkit 插入多条数据到数据库 本教程使用Database Toolkit的DB Tools Insert D...

ba_wang_mao的专栏 3611

Grey Hack v0.7.3618 保姆级教程:手把手教你用metaxploit.so写一个自动提权脚本

本文详细介绍了如何在Grey Hack v0.7.3618中使用metaxploit.so库编写自动化提权脚本。从环境准备到核心功能解析,再到漏洞利用链构建和权限提升的智能处理,手把手教你掌握游戏中的高级黑客技巧。通过多库联合利用和错误处理优化,提升脚本的效率和成功率。

weixin_42537919的博客 394

Cursor Agent模式下如何优雅切换conda环境运行Python脚本?3种实用方法实测

本文针对Cursor Agent模式下运行Python脚本时环境错配的痛点,实测了三种优雅切换conda环境的实用方法。通过Shell全局配置、项目级.cursorrc文件定制以及对话中直接指令,开发者可以确保AI助手在正确的虚拟环境中执行代码,从而提升开发效率和协作流畅度。

redis7keeper的博客 597

21天好习惯第一期-1

复习了一下jdbc的内容,感觉有些地方还是不太熟。平时也是,敲代码的时候和网上的明明差不多,可总是出问题

cth91的博客 78

cMake编译 VS2026+opencv4.12.0+opencv_contrib-4.12.0

本文提供了OpenCV 4.12.0集成CUDA、cuDNN和ONNX Runtime的详细编译指南。主要步骤包括:准备Visual Studio 2026、CMake 4.2.0、CUDA 12.6和cuDNN 9.16.0;设置无空格和中文的路径结构;配置关键CMake变量(如开启CUDA支持、指定路径等);以及最终的编译安装过程。注意事项包括:版本一致性检查、cuDNN文件复制、国内用户需手动获取.cache文件等。文章还提供了常见问题解决方案,如通过设置CUDA_NVCC_FLAGS参数解决VS版本

weixin_46624734的博客 1384

重温Spring笔记6 - Spring JDBC模板

一、传统JDBC1、传统JDBC步骤 加载驱动 获取connection连接创建statement执行sql返回resultSet查询结果关闭资源2、例子:添加用户和查询用户引进msyql和数据源的jar包    &lt;dependency&gt;  &lt;groupId&gt;com.alibaba&lt;/groupId&gt;   &lt;artifactId&gt;druid&lt;/...

开着坦克的瑞兽 206

别再被SpringerLink虐了!手把手教你搞定LaTeX源文件提交(附正确文件顺序和类型选择)

本文详细解析了SpringerLink投稿系统中LaTeX源文件提交的常见问题与解决方案,包括文件打包、类型选择和顺序排列等关键步骤。通过实战经验,帮助科研人员避开隐形陷阱,一次性完成LaTeX提交,提升投稿效率。特别针对`.bst`和`.cls`文件的正确处理提供了专业指导。

weixin_42522964的博客 444

逆向工程实战:如何用Frida和IDA破解AppleAccount的X-MMe-Nas-Qualify签名机制

本文通过逆向工程实战,详细解析了如何利用Frida动态Hook和IDA静态分析技术,破解AppleAccount服务中关键的X-MMe-Nas-Qualify签名机制。文章从环境搭建、动态追踪NSMutableURLRequest的签名注入点开始,逐步深入到AuthKit框架的静态剖析与算法还原,最终实现独立的签名生成,为安全研究和自动化测试提供了完整的技术路径。

bush的博客 696

重温Spring框架(四、Spring的数据编程之一:Spring JDBC的概念及配置)

Spring框架在数据库开发中的应用主要使用的是JdbcTemplate类,是Spring JDBC的核心类,提供了对所有数据库操作功能的支持。继承了抽象类JdbcAccessor,同时实现了接口JdbcOperations。 JdbcAccessor为子类提供了一些访问数据库时的公共属性,具体如下: DataSource:器主要功能是获取数据库连接,具体实现时还可以引入对数据库连接的缓冲池和分布式事务的支持,可以作为访问数据库资源的标准接口。 SQLExceptionTranslator:该接口负责对S

yuzhiboyouzhu的博客 298

从零到一:高通QCS6490边缘AI开发板的Linux生态构建与实战避坑指南

本文详细介绍了在高通QCS6490边缘AI开发板上构建Linux生态系统的完整流程,包括开发环境准备、系统镜像构建与烧录、AI运行时环境配置、模型部署优化以及性能调试。重点解析了如何利用Hexagon DSP的高达12 TOPS AI算力,并提供了实战中的避坑指南和性能优化技巧,帮助开发者高效实现边缘AI应用从概念验证到产品落地的全过程。

eee77的博客 770

重温MySQL与JDBC小时代

目录 安装环境 连接数据库 用Java操作数据库 总结 安装环境 首先确保电脑中已经安装了mysql以及相关的jar包,Java 连接 MySQL 需要驱动包,地址:mysql-connector-java-5.1.39-bin.jar解压后得到 jar 库文件,然后在对应的项目中导入该库文件。本次连接以IEDA为例。 连接数据库 首先在IDEA的view->Tool Windows->database,点击database 然后点击右边的+号然后选择自己的数据库,..

qq_45874317的博客 143

Linux Kernel入门到精通系列讲解 - 总目录

在学习Linux Kernel之前,需要先准备开发环境,方便后续进行开发。可以根据自身情况,选择性阅读该章节。学习该章节之前,你应该了解一下网络概念,明白为什么要讲这些,才能更有方向的去理解学习。Linux ARM平台开发系列讲解(设备树篇) 4.1.1 设备树的原理详解。本项目完全开源,仅供学习使用,如需其他用途,请与本人联系。),本章节你可以学习到。摄像头V4L2子系统、Linux kernel常用的子系统等,ARM架构、RISCV架构、Uboot等。

DSMGUOGUO的博客 1万+

自学 ABAP 和自学 SAP 的差别

有朋友在我的 ABAP 学习教程里留言: > 自学SAP是不是都要搭建虚拟服务器,然后自己去官网下载新版本SAP就可以吗 对于初学者,我们要搞清楚 ABAP 和 SAP 的区别。 ABAP 是一门编程语言,SAP 首先是德国软件公司的名称,也代表这家公司开发的一系列软件。SAP 公司开发的软件,我们有时也称产品,其功能能满足客户一个或者多个领域的业务需求。这些不同领域,我们也称为不同的业务模块,比如 ERP,CRM,SRM,HR 等等。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 6862

重温 Servlet

前言已经有几百年没碰servlet了,前天觉得公司查看打卡记录很不方便,于是有了一个想法,做一个给同事们查看打卡记录的app,领导觉得很好,便下午开工了,这是个小应用,服务端当然不会用ssm了,用jdbc即可,再想想用回servlet好了,毕竟当年也是servlet入门的,对韩顺平老师的超强sqlHelper至今记忆犹新。Servlet3.1 新特性: 在Servlet 3.0中,一些新的注释jav

小浩子的博客 455

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

重温MySQL与JDBC小时代【网络通信编程】

目录创建项目前提Eclipse创建项目导入驱动建立数据据库表连接数据库参考文献 创建项目 前提 确保已经安装好Eclipse(java集成开发环境)和MySQL(数据库) 其中查询自己安装的MySQL版本可以以管理员身份打开命令行窗口 cd到MySQL的bin目录下 cd C:\Program Files\MySQL\MySQL Server 5.7\bin 用root用户登录,输入指令 mysql -u root -p 这里提示输入密码,我这里安装时设置的密码是123456,这样就登陆进去了 再输入指

wanerXR的博客 214

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdbc入门

实习第二天 学习关于jdbc的相关知识 重温java 首先了解一行代码 class.forname(“com.mysql.jdbc.Driver”); Java异常包括两种,一种是需要处理的,一种是不必须处理的,这行代码将会抛出一个必须处理的异常,处理方式有两种,一种是将异常抛出至上一级,另一种是用try catch捕获异常进行处理。为了简化代码,全部抛出至上一级。 包的分层 新建包的时候输入 c...

zonein小菜鸟的博客 237

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

工厂模式 以及其在JDBC操作中的应用

最近在重温设计模式以及看Spring5源码,这边记录下工厂模式在JDBC操作案例中的应用。 这边主要介绍抽象工厂模式: 另外还要介绍下产品等级结构和产品族: 横向代表产品族,比如美的空调、美的洗衣机、美的热水器; 纵向代表产品等级结构,比如美的空调、海尔空调、格力空调等; 然后我们需要引入工厂进行更好的理解: 我们看左侧的箭头(小房子)代表的工厂,就相当于美的工厂、海信工厂...

m0_37648645的博客 1011

重温经典——java学习day3

1.异常处理: 异常原因: 1.用户输入了非法数据。 2.要打开的文件不存在。 3.网络通信时连接中断,或者JVM内存溢出 处理流程: java异常分类结构图: 2.jdbc 1.JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力 2.工作原理: *** 使用流程: try { //1.加载JDBC驱动 Class.forName(JDBC驱动类); } … … try { //2.与数据库建立连接 Connection con=DriverManager.getConnecti.

doom156的博客 196

java jdbc线程池的使用

好久没直接使用jdbc了,今天重温了一下相关知识,并对连接池的使用写了简单的示例,记录在此以便需要的同行参考和方便自己查阅,不足之处欢迎批评指正。 1、dbcp数据源 所需jar包 dbcp:连接池的实现,commons-pool2:连接池实现的依赖 org.apache.tomcat dbcp 6.0.29 org.apache.commons

HappySorry的专栏 6281

重温MyBatis(二、增删改查操作)

1、jar包准备: mybatis-3.4.6.jar log4j-1.2.17.jar mysql-connector-java-5.1.6-bin.jar 2、创建实体类UserInfo: package com.springmvc.pojo; /** * @author YuusukeUchiha * @date 2020/7/22 22:20 * @ide IntelliJ IDEA */ public class UserInfo { private int id;

yuzhiboyouzhu的博客 219

重温Spring框架(四、Spring的数据编程之二:JdbcTemplate的常用方法)

使用到的jar包: spring-jdbc-5.0.4.RELEASE.jar spring-tx-5.0.4.RELEASE.jar。 MySQL数据库驱动:mysql-connector-java-5.1.6-bin.jar 常用方法: execute()方法:创建或者删除数据库的表 update()方法:插入、更新或者删除内容 query()方法:查询内容 ...

yuzhiboyouzhu的博客 202

用JSP+Servlet+JDBC实现的一个留言本

一直在做插件开发,以前刚毕业时候做的一些Web开发的知识都快忘记了。 写了一个留言板的程序,重温一下以前的知识。 servlet控制跳转。 dao封装数据库的操作。...

tjlvan的专栏 789

mybatis连接oracle_Mybatis 系列 0:初恋Mybatis

学习 Mybatis 之前,我们可以通过比较之前使用 JDBC 操作持久层的代码,再次重温一下 JDBC 的噩梦。首先回忆一下操作 JDBC 的步骤:口诀:「贾琏欲执事」贾:加载注册驱动琏:获取连接对象欲:创建语句对象执:执行SQL语句事:释放资源测试用例:测试用例1测试用例2好了,回顾了以上两个例子,使用 JDBC 来操作数据的代码是不是很噩梦?代码不仅又臭又长,而且不易维护,又有 SQL 注入...

weixin_39955154的博客 108
上一篇: Viewer.js的简单使用
下一篇: SpringBoot学习笔记(一)
ljunpupupu
博客等级 码龄9年 31粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值