Java实现 通过JDBC连接MySQL及其相关拓展(idea演示)

java连接mysql数据库JDBC 阅读详情

Java实现 通过JDBC连接MySQL数据库及其相关拓展

1、idea实现Java连接MySQL数据库进行增删改查

1.1、创建项目

1、启动idea,File->new->Project->弹出新项目创建窗口

2、一直next,直到更改项目名称,填写项目名称。

在这里插入图片描述

3、点击finish即创建新项目成功。

1.2、编写代码

代码步骤总结

1、加载驱动

2、连接数据库DriverMananger

3、获得执行sql的对象 Statement

4、获得返回的数据结果集

5、释放连接

代码截图如下所示:

在这里插入图片描述

2、statement对象详解

executeQuery

用于产生单个结果集的语句,用于执行 SELECT 语句(SELECT无疑是是使用最多的 SQL 语句) ,返回值为ResultSet

读取操作

Statement st = conn.createStatement();
String sql = "select * from users";
ResutlSet rs = st.executeUpdate(sql);
while(rs.next()){
    //根据获取到的数据类型,分别调用rs的相应方法映射到Java对象中
}

executeUpdate

用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。

executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

添加操作insert

Statement st = conn.createStatement();
String sql = "insert into users(...) values(...)";
int num = st.executeUpdate(sql);//不进行操作时,返回的num值默认为0
if(num>0){
    System.our.println("插入成功!")
}

修改操作update

Statement st = conn.createStatement();
String sql = "update users set name='' where name=''";
int num = st.executeUpdate(sql);//不进行操作时,返回的num值默认为0
if(num>0){
    System.our.println("修改成功!")
}

删除操作delete

Statement st = conn.createStatement();
String sql = "delete from users where id=1";
int num = st.executeUpdate(sql);//不进行操作时,返回的num值默认为0
if(num>0){
    System.our.println("删除成功!")
}

execute

用于执行返回多个结果集、多个更新计数或二者组合的语句。execute对与结果的处理比较麻烦

execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。

返回值指示类型情况:如果下一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在更多结果,则返回 false

//代码实现、提取工具类
import jdk.internal.util.xml.impl.Input;

import javax.swing.plaf.nimbus.State;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.concurrent.ExecutionException;
public class JdbcUtils {
    private static String driver=null;
    private static  String url=null;
    private static  String username=null;
    private static  String password=null;

    static {
        try{
            InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");
            Properties properties = new Properties();
            properties.load(in);

            driver = properties.getProperty("driver");
            url = properties.getProperty("url");
            username = properties.getProperty("username");
            password = properties.getProperty("password");

            //1,驱动只用加载一次
            Class.forName(driver);
        } catch (IOException e) {
            e.printStackTrace();
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        }
    }

    //获取连接
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, username, password);
    }

    //释放连接资源
    public static void release(Connection conn, Statement st, ResultSet rs){
        if(rs!=null){
            try{
                rs.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(st!=null){
            try{
                st.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try{
                conn.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }
    }
}

    

3、PreparedStatement对象

  • prepareStatement对象防止sql注入的方式是把用户非法输入的单引号用\反斜杠做了转义,从而达到了防止sql注入的目的
  • Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。PreparedStatement可对SQL进行预编译,从而提高数据库的执行效率。并且PreperedStatement对于sql中的参数,允许使用占位符的形式进行替换,简化sql语句的编写

防止SQL注入

package com.feng;
import com.utils.JdbcUtils;
import java.sql.*;

public class SQL注入 {
    //登录业务
    public static void main(String[] args) {
        login("'' or 1=1","1234");//用PreparedStatement成功防范了SQL注入。
        //login("zhangsan","123456");
    }

    public static void login(String username, String pwd){
        Connection con = null;
        PreparedStatement st = null;
        ResultSet rs = null;

        try {
            con = JdbcUtils.getConnection();//获取数据库连接

            //SQL注解方式,恶意获取数据库信息
            //String sqlzhujie = "select * from users where name = 1 or 1=1 and password = '' or 1=1;";
            //PreparedStatement 防止SQL注入的本质,把传递进来的参数当做字符
            //假设其中存在转义字符、比如说''会被直接转义
            String sql="select * from users where name=? and password = ?;";
            st = con.prepareStatement(sql);//获取SQL的执行对象

            st.setString(1,username);
            st.setString(2,pwd);

            rs = st.executeQuery();

            while(rs.next()){
                System.out.println(rs.getString("name"));
                System.out.println(rs.getString("password"));
                System.out.println("=========================");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtils.release(con,st,rs);
        }
    }
}

4、idea连接数据库

1、创建新连接

在这里插入图片描述

2、对连接信息进行配置。

在这里插入图片描述

3、点击apply即可使用,常用界面

在这里插入图片描述

5、MySQL数据库事务

特性:

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

隔离性的问题:

脏读、不可重复读、虚读等问题

代码实现:

1、开启事务

2、一组业务执行完毕、提交事务

3、可以在catch语句中现实的定义 回滚语句,但默认失败就会回滚

package com.affair;

import com.utils.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TestTransaction1 {
    public static void main(String[] args) {
        Connection con=null;
        PreparedStatement st = null;
        ResultSet rs = null;

        try {
            con = JdbcUtils.getConnection();
            //关闭数据库的自动提交,自动会开启事务
            con.setAutoCommit(false);//开启事务

            String sql1 = "update account set money=money-100 where name='A'";
            st = con.prepareStatement(sql1);
            st.executeUpdate();

            //int x=1/0;//如果失败了,则全都会回滚,整个事务回滚

            String sql2 = "update account set money=money-100 where name='B'";
            st = con.prepareStatement(sql2);
            st.executeUpdate();

            //业务完毕,提交事务
            con.commit();
            System.out.println("操作成功");
            
        } catch (SQLException e) {
            try {
                con.rollback();//如果失败则回滚事务
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
            e.printStackTrace();
        } finally {
            JdbcUtils.release(con,st,rs);
        }
    }
}

6、数据库连接池

数据库连接—执行完毕—释放

连接—释放 十分浪费系统资源

池化技术:准备一些预先的资源,过来就连接预先准备好的

最小连接数:10

最大连接数:100

等待超时:100ms

编写连接池,实现一个接口 DataSource

开放数据源实现

DBCP

C3P0

Druid:阿里巴巴(这里不做详细介绍!)

使用了这些数据库连接池之后,我们在项目开发中就不需要编写连接数据库的代码了。

DBCP

需要用到的jar包

commons-dbcp2-2.7.0、commons-pool2-2.8.0、commons-logging-1.2.jar(一个都不能少,少一个报错!改半天,经验教训总结得来的)

C3P0

mchange-commons-java-0.2.3.4.jar 、c3p0-0.9.2.1.jar

:10

最大连接数:100

等待超时:100ms

编写连接池,实现一个接口 DataSource

开放数据源实现

DBCP、C3P0、Druid:阿里巴巴(这里不做详细介绍!)

使用了这些数据库连接池之后,我们在项目开发中就不需要编写连接数据库的代码了。

DBCP

需要用到的jar包

commons-dbcp2-2.7.0、commons-pool2-2.8.0、commons-logging-1.2.jar(一个都不能少,少一个报错!改半天,经验教训总结得来的)

C3P0

mchange-commons-java-0.2.3.4.jar 、c3p0-0.9.2.1.jar

结语:这里给出条件。后面我会将相关资源上传到csdn上,供朋友们下载,或通过百度网盘的方式共享出来。本次博文就到此结束了。

IDEA使用JDBC连接数据库,简单实例 1.双击打开IDEA 2.JDBC驱动的下载 (JDBC驱动jar包的版本要与mysql版本对应,我的mysql版本为5.0,导入的jar包版本为5.1) mysql官网下载驱动包https://dev.mysql.com/downloads/connector/j/ 3.IDEA导入JDBC的驱动jar包导入 选择File->Project Structure,再点击下图中的 + ,选择... 阅读详情

相关推荐

Java程序演示JDBC的使用

JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系型数据库,并使用SQL语句完成对数据库中数据的新增、删除、修改和查询等操作。下面将编写Java程序演示JDBC的使用,该程序从users表中读取数据,并将结果打印在控制台,具体步骤如下所示。

2401_83524306的博客 2037

JAVA JDBC连接mysql数据库

什么是驱动?驱动是指计算机系统中的一种软件程序,它用于控制硬件设备的操作。每个硬件设备都需要与操作系统进行通信,而操作系统需要知道如何与每个设备进行通信,这就是驱动程序的作用。什么是jdbc?JDBC 是 Java 数据库连接的标准,它是 Java SE 平台的一部分。它提供了一种标准的方法来访问各种关系型数据库,如 MySQL、Oracle、Microsoft SQL Server 等。JDBC 通过驱动程序实现与各种不同类型的数据库的连接,开发者需要使用不同的驱动程序来连接不同类型的数据库。

东隅的博客 1188

JAVAEE 安装JAVA、TOMCAT、MYSQL、IDEA 并使用JDBC连接MYSQL

1.安装JAVA环境 ①访问JAVA官方网站下载最新版JavaSE JDK,链接:https://www.java.com/zh_CN/download/win10.jsp ②运行安装包 ③等待安装 等不起了,我记得以前装JAVA很快的。上网查了一下ORACLE在2020好像啥针对中国地区的(负)优化?后来实在没办法我买了张机票,在美国下载完了又回来了. ④安装IDEA 链接:https:/...

gjh1716718326的博客 1202

【Java】如何使用jdbc连接并操作MySQL,一文读懂不迷路,小白也能轻松学会

1. 创建数据库连接Connection2. 创建操作命令Statement3. 使用操作命令来执行SQL4. 处理结果集ResultSet5. 释放资源。

geinvse_seg的博客 936

自己写的数据库连接池 JAVA 可支持同时连多个数据库

很棒的数据库多连接池程序,对每个连接可以配置一个连接池,可以对问题连接定时处理,同时支持连接多个数据库,增加修改都支持配置,,所以配置都放置在缓存中,定期刷新。 是用JAVA写的,已经上线的东东,已经经过压力测试 可放心使用。如果压力大时,可适当增加每个连接池的可用数,在DBConfig中配置。 其中init是读取参数,db中连接池的核心程序,config中为配置文件。

AMD显卡跑Ollama大模型?手把手教你搞定Windows下GPU识别与加速(以RX 9600XT为例)

本文详细指导如何在Windows系统下使用AMD显卡(如RX 9600XT)运行Ollama大模型,解决GPU识别与加速问题。通过获取非官方Ollama版本、替换ROCm库文件等步骤,实现高效的GPU加速推理,提升大语言模型的运行效率。

weixin_28707365的博客 479

JAVA通过JDBC连接MySQL数据库 (IDEA)

在Idea中连接mysql数据库与在myeclipse中是一样的,只是在idea中需要改动一些字段,下面我们来看一下在idea中是怎么通过JDBC来连接mysql数据库的。 在myeclipse来连接数据库是需要一个工具类util,在idea中同样是要创建一个util类,(路径src>com>sy>util) 第二步:在创建好的DBUtil中写入mysql的查询语句 packag...

杉 言 591

阿里云CDN HTTPS 证书配置流程

可以使用HTTPS方式访问资源,如果浏览器中URL旁边出现锁的HTTPS标识,表示HTTPS安全加速已生效。: 证书配置完成后,需要留意证书过期时间并在证书过期前手动配置新的证书。注意 ⚠️ 一定是需要复制 以下标识之间的内容。如果已在阿里云数字证书管理服务中购买了证书,请选择。,该证书将在阿里云数字证书管理服务中保存。如果使用第三方服务商签发的证书,请选择。第四步,在指定域名的左侧导航栏,单击。第二步,在左侧导航栏,单击。开关,并配置证书相关参数。页面,找到目标域名,单击。中选择已购买的证书。

w风雨无阻w的专栏 2207

IDEA使用JDBC连接MySQL数据库详细教程

首先需要保证你已经成功安装mysql 接下来下载连接MySQL数据库的驱动 使用JDBC连接MySQL数据库的驱动为Connentor/J,这里以最新版本的8.0为例 解压zip文件,随便解压到一个地方就好,当然作为程序员,需要有好习惯的 创建java项目,导入mysql-connector-java-8.0.13.jar包 下面再来看下导入jar的步骤 写代码 //导入包 import ja...

永不止步的博客 10万+

从手机到自动驾驶:MIPI-CSI2协议演进史与车规级改造要点

本文追溯了MIPI-CSI2协议从智能手机摄像头到自动驾驶核心传感器的演进历程。重点剖析了该协议在车规级改造中面临的严苛挑战,包括物理层稳定性、EMC防护、功能安全与数据可靠性等关键要点,并探讨了其在多传感器融合与高带宽实时传输中的工程实践。

weixin_28318011的博客 306

STM32F103用软件I2C读取IP2366电量数据,实测避坑指南(附完整源码)

本文详细介绍了如何使用STM32F103的软件I2C驱动读取IP2366电池管理芯片的电量数据,包括GPIO初始化、I2C时序实现、关键延时优化及常见问题解决方案。通过实测避坑指南和完整源码,帮助开发者快速实现稳定的电量数据读取,适用于嵌入式电池管理系统开发。

weixin_33725722的博客 512

如何在IDEA上实现JDBC编程

如何在IDEA上搭建JDBC环境以及如何实现JDBC编程

不能再留遗憾了的博客 3814

【深圳】IBM V3500存储维修 更换控制器故障

今天给大家分享的是深圳.福田区一个电商客户公司一台IBM Storwize v3500存储控制器故障从远程诊断 收集日志 分析结果的实际案例,如图所示通过存储管理口登陆进去后直接看到少了一个控制器,经过工程师分析日志后判定为该控制器损坏,接下来更换控制器配件,标准套件的控制器不带子卡和电池,所以需要把故障控制器上的子卡和电池拆下来装到新控制器上,这个电池拆还需要点技巧,接着把新的控制器插回V3500主机,等待大约十分钟后,新控制器指示灯全绿,管理界面看到节点已联机;冠峰科技-爱科技爱分享。

OuYangYuXi的博客 4573

JDBC 连接 MySQL

JDBC 是 Java DataBase Connectivity (Java 数据连接)技术的简称,是一种可用于执行SQL 语句的 Java API。它由一些 java 语言编写的类和接口组成;程序员通过使用 jdbc 可以方便地将 SQL 语句传送给几乎任何一种数据库。......

程序猿追的博客 11万+

NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案

本文主要介绍了NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案,希望能对使用jupyter notebook的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

基于Python的链家与贝壳租房数据爬取及城市性价比分析

本文通过Python爬虫技术,实现对链家和贝壳平台全国主要城市租房数据的采集与分析。研究使用requestsSelenium和Playwright等现代化爬虫工具,结合代理IP和验证码识别技术应对反爬机制。采集的数据经过清洗后,从多维度分析不同城市租房市场的价格分布、面积特征和性价比差异,并使用可视化技术展示分析结果。本研究为租房者提供决策参考,也为租房市场研究提供数据支撑。关键词:Python爬虫;租房数据;数据分析;链家;贝壳。

2201_76125261的博客 530

Java用jdbc连接实现对MySQL增删改查操作

文章目录 前言 大家好,我是ice三分颜色。个人主页:ice三分颜色的博客 本文讲了……篇幅很长,建议收藏。 走过路过的小伙伴们点个赞和关注再走吧,欢迎评论区交流,努力什么时候开始都不算晚,那不如就从这篇文章开始! 大家一起成长呀!笔芯 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 代码如下(示例): 代码如下(示例): 该处使用的url网络请求的数据。 总结 提示:这里对文章进行总结: 例如:以上就是今天要讲的内容.

qq_46007633的博客 1万+

Calibre LVS 问题解析

LVS常见问题与解决办法

m0_61544122的博客 2万+

【MySQL 数据库】JDBC 编程之 Java 连接 MySQL

文章目录1. 数据库编程的基础条件2. Java 的数据库编程:JDBC3. JDBC 访问数据库的层次结构4. MySQL 数据库操作介绍5. MySQL 驱动包的下载及添加到项目6. JDBC 使用步骤6.1 创建数据库源,连接 Connection6.2 构造 SQL 语句,为执行的操作做准备6.3 执行 SQL,并处理结果集6.4 释放资源6.5 JDBC 编程模板7. JDBC 常用接口和类7.1 DataSource 和 MysqlDataSource7.2 Connection7.3 Prep

吞吞吐吐大魔王的博客 5268

数学建模模型总结

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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JavaWeb | JDBC概述及IDEA连接MySQL

JDBC概述以及IDEA连接MySQL数据库

Alita233_的博客 2509

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

IDEA中JDBC连接MYSQL数据库步骤超详细总结

JDBC是Java连接数据库的一种接口,它由各个数据库厂商为开发者提供的接口,要使用它需要到相应厂商下载对应的jar包,maven导包的操作,这篇文章为大家总结了jdbc的mysql数据库的连接方式,有任何问题可私信作者或在评论区评论,有时间会更新。

m0_54722399的博客 2万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java(IDEA)连接MySQL数据库并查询数据——JDBC

java链接MySQL数据库,采用JDBC 连接MySQL 数据库并查询数据一、下载二、MySQL安装三、数据库中的操作:创建数据表四、JDBC 连接MySQL 数据库并查询数据五、运行输出小小的总结参考文献 一、下载 下载jar库文件 Java 连接 MySQL 需要驱动包,下载地址为:http://dev.mysql.com/downloads/connector/j/ 下载MySQL 二、MySQL安装 双击运行如下图下载的“mysql-installer-community-8

YouthBlood9的博客 1万+

如何在IDEA中使用JDBC

本文主要介绍了如何用IDEA新建一个java项目,并用JDBC连接mysql数据库

upup1006的博客 2万+

JDBC(简介、入门与IDEA中导入MySQL的驱动)

本篇博客主要学习了JDBC的基本概念,以及它在Java代码编程起的作用。然后讲到了如何在IDEA 中进行一个入门级的JDBC操作,其中涉及导如何导入MySQL的jar包,创建连接驱动等等......

岁岁岁平安的博客 2616

java中JDBC技术连接Mysql实现增删改查超级详细的教程

java语言使用JDBC连接Mysql数据库,对Mysql数据库实现增删改查操作,引入Mysql驱动jar包图文解释,jar包资源下载,超级详细的

ocean&21的博客 7449

JDBC连接的多种方式(idea)

师承康师傅, 学完总结一下 目录 jar包下载方式 五种获取数据库连接的方式: 方式一: 方式二: 方式三: 方式四: 方式五: 尚硅谷 康师傅的 JDBC课程 用的是 Eclipse MySQL5.X 我这里用IDEA MySQL 8.0.X重新演示一遍 环境: JDK 8 MySQL 8.0 IDEA 在读这篇文章之前, 建议先看一下这MySQL安装篇, 做两件事 (可选) 改时区, 看到评论区说了很多时区的问题 如果有时区...

mobeiCanyue 7266
上一篇: 万物互联-IOT-ESP8266功能、作用、AT、连接onenet服务器简单介绍
下一篇: 计算机内部组成原理及内部子系统概述
小枫学IT
博客等级 码龄8年 7500粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小枫学IT

如果觉得有用的话,可以支持一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值