try

使用JDBC完成分类表CRUD的操作

本秂侑毒 提交于 2019-12-26 05:31:30
工具类 通过之前的案例回顾,不难发现,有很多的代码操作是重复的,比如“获取链接”和“释放资源”等,将来在增删改查中经常遇到,开发中遇到这种情况,将采用工具类的方法进行抽取,从而达到代码的重复利用。 此处使用V1版本,之后还有替他版本。 获取链接 /** * 获取连接方法 * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/web08", "root", "root"); } catch (Exception e) { e.printStackTrace(); } return conn; } View Code 释放资源 public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }

JDBC工具类

大城市里の小女人 提交于 2019-12-26 05:30:55
package com.dyh.util; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; public class JdbcUtil { private static final ThreadLocal<Connection> tol = new ThreadLocal<Connection>(); //读取配置文件 private static Properties prop = new Properties(); static{ //获取输入流 InputStream is=null; try { is = JdbcUtil.class.getResourceAsStream("/jdbc.properties"); //加载配置文件 prop.load(is); } catch (IOException e) { e.printStackTrace();

课后作业5

ぃ、小莉子 提交于 2019-12-26 02:56:05
1.动手动脑1 import javax.swing.*; class AboutException { public static void main(String[] a) { int i=1, j=0, k; k=i/j; try { k = i/j; // Causes division-by-zero exception //throw new Exception("Hello.Exception!"); } catch ( ArithmeticException e) { System.out.println("被0除. "+ e.getMessage()); } catch (Exception e) { if (e instanceof ArithmeticException) System.out.println("被0除"); else { System.out.println(e.getMessage()); } } finally { JOptionPane.showConfirmDialog(null,"OK"); } } } 运行结果: 把可能会发生错误的代码放进try语句块中。当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。catch语句块中的代码用于处理错误。 当异常发生时

13.1 dubbo服务降级源码解析

可紊 提交于 2019-12-25 22:39:36
从 9.1 客户端发起请求源码 的客户端请求总体流程图中,截取部分如下: //代理发出请求 proxy0.sayHello(String paramString) -->InvokerInvocationHandler.invoke(Object proxy, Method method, Object[] args) -->new RpcInvocation(method, args) -->MockClusterInvoker.invoke(Invocation invocation)//服务降级的地方 dubbo就是通过 MockClusterInvoker 来实现服务降级的。 一、示例 1 public interface DemoService { 2 // String sayHello(String name); 3 Car sayHello(String name); 4 } 将dubbo-demo中的服务接口定义一个返回模型Car。提供者实现如下: 1 public class DemoServiceImpl implements DemoService { 2 public Car sayHello(String name) { 3 Car car = new Car(); 4 car.setCarNum("浙A10000"); 5 car.setGoMile

Selenium+PhantomJS爬虫之路

故事扮演 提交于 2019-12-25 22:04:33
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 爬虫三剑客:python--手 selenium--剑柄 phantomjs--剑尖 Selenium 一、简介 Selenium是一个自动化测试工具,支持包括Chrome,Firefox,Safari,PhantomJs等一些浏览器。如果用于爬虫中,我们主要用来解决一些JavaScript渲染的问题。 我们在使用Requests库去请求一些网页的时候,比如 163music,我们获得的响应数据呢,并不全是我们在浏览器中看到的信息。他可能是通过js渲染出来的。那么,我们如果使用Selenium库,就不会再去关心如何去解决这种问题了。 因为我们的浏览器,比如PhantomJs,他就是一个无界面的浏览器,他用来渲染解析js,而Selenium库就负责给浏览器发送一些命令,模拟一些比如下拉,拖拽,翻页,输入表单等动作。这样他们两个结合,对于那些 JS 的渲染问题是不是完美解决了。 注意: 虽然Selenium库加上PhantomJs很好用,但是他毕竟是驱动一个浏览器,然后获取数据。所以在我们使用中,会发现他并没有我们使用一些解析库速度快。这其实就是他的弊端,所以我还是建议大家,不到实在找不到解决办法的时候,不去使用他们。 二、安装 Windows 第一种方法是:下载源码安装,下载地址( https://pypi

自己动手实现分布式任务调度框架(续)

删除回忆录丶 提交于 2019-12-25 17:19:04
  之前写过一篇: 自己动手实现分布式任务调度框架 本来是用来闲来分享一下自己的思维方式,时至今日发现居然有些人正在使用了,本着对代码负责任的态度,对代码部分已知bug进行了修改,并增加了若干功能,如立即启动,实时停止等功能,新增加的功能会在这一篇做详细的说明。   提到分布式任务调度,市面上本身已经有一些框架工具可以使用,但是个人觉得功能做的都太丰富,架构都过于复杂,所以才有了我重复造轮子。个人喜欢把复杂的问题简单化,利用有限的资源实现竟可能多的功能。因为有几个朋友问部署方式,这里再次强调下:我的这个服务可以直接打成jar放在自己本地仓库,然后依赖进去,或者直接copy代码过去,当成自己项目的一部分就可以了。也就是说跟随你们自己的项目启动,所以我这里也没有写界面。下面先谈谈怎么基于上次的代码实现任务立即启动吧!   调度和自己服务整合后部署图抽象成如下:      用户在前端点击立即请求按钮,通过各种负载均衡软件或者设备,到达某台机器的某个带有本调度框架的服务,然后进行具体的执行,也就是说这个立即启动就是一个最常见最简单的请求,没有过多复杂的问题(比如多节点会不会重复执行这些)。最简单的办法,当用户请求过来直接用一个线程或者线程池执行用户点的那个任务的逻辑代码就行了,当然我这里没有那么粗暴,现有的调度代码资源如下: package com.rdpaas.task

Java 常见异常种类

不羁岁月 提交于 2019-12-25 11:06:57
------------------------------第一种理解---------------------- 1、什么是异常 结构不佳的代码不能运行,这是Java的基本理念。 发现错误的理想时机是在编译期。然而,编译器并不能发现所有的错误,余下的问题就需要在程序运行时解决。这就需要错误能通过某种方式,把适当的信息 传递给特定的接收者处理。Java中的异常处理的目的在于通过使用少量的代码来简化大型、可靠的程序的生成,通过此方式让你的应用中没有未处理的错误,而 且它还带来了一个明显的好处:降低错误处理代码的复杂度。 异常,根据字面理解,有意外之意。把它置于代码层面来理解,即阻止了当前方法或作用域继续执行。 在Java中,异常被当做对象来处理,其基类是Throwable。 2、Java中的异常类型   Java从Throwable直接派生出Exception和Error。其中Exception是可以抛出的基本类型,在Java类库、方法以及运行时故障中都可能抛出Exception型异常。 Exception表示可以恢复的异常 ,是编译器可以捕捉到的; Error表示编译时和系统错误,表示系统在运行期间出现了严重的错误,属于不可恢复的错误 ,由于这属于JVM层次的严重错误,因此这种错误会导致程序终止执行。 Exception又分为检查异常和运行时异常。 异常类的结构层次图如下:   

那些年,我们不懂的却又不得不提的 JAVA异常和异常处理!

北慕城南 提交于 2019-12-25 11:02:11
---恢复内容开始--- 首先,我是个小小的菜鸟,最近突然突发奇想,想研究一下java的异常和异常的处理,稍有些理解,老鸟们莫要嘲笑。。。   既然要讲异常和异常的处理,我们就要先了解异常,那么,什么是异常呢? 简单的说,就是在一个程序运行的时候,发生的不可知的错误时而停止运行的时候,我管它叫做异常。 可以说异常时时刻刻陪在我们身边,从简单的代码环节,到生活上,都有可能发生异常。举个比例,我们去爬山的时候 要坐电缆,可是不巧,电缆没电了,怎么办? 一般情况我们有两种解决方法,一个是爬上去,一个是呆在原地。 现在在从这个例子来分析: 人乘坐电缆来到山上,这个可以看成是在运行时候的代码。 电缆没电了,人呆在原地,这个就可以看成是异常。 电缆没电了,我们爬上去,这个就可以说是异常处理。 废话这么多,就是想让比我还要小的菜鸟更容易的理解异常,那好我们直接来用代码来来看看什么事异常。 出错的代码 运行后显示的错误信息 这一段代码运行的时候会出现错误,而编译时不会出错,这就是异常!(比较专业,没有生活小案列容易懂 >*-*<)   以上讲的就是异常,但是异常是怎么在控制台中显示出来的呢? 接下来我就要给大家介绍一下异常的架构和分支了!   其中,Throwable是所有异常的超类,他继承与Object类。因为所有类都继承与Object类  

JAVA学习--异常Exception的处理

时光毁灭记忆、已成空白 提交于 2019-12-25 06:52:14
* 二、如何处理Exception的异常 * Java提供的是异常处理的抓抛模型 * 1."抛":当我们执行代码时,一旦出现异常,就会在异常的代码处生成一个对应的异常类型的对象,并 * 将此对象抛出。(自动抛出 / 手动抛出) * >一旦抛出此异常类的对象,那么程序就终止执行 * >此异常类的对象抛给方法的调用者。 * 2."抓":抓住上一步抛出来的异常类的对象。如何抓?即为异常处理的方式 * java 提供了两种方式用来处理一个异常类的对象。 * 处理的方式一: * try{ * //可能出现异常的代码 * }catch(Exception1 e1){ * //处理的方式1 * }catch(Exception2 e2){ * //处理的方式2 * }finally{ * //一定要执行的代码 * } * 注:1.try内声明的变量,类似于局部变量,出了try{}语句,就不能被调用 * 2.finally是可选的。 * 3.catch语句内部是对异常对象的处理: * >getMessage(); printStackTrace(); * 4.可以有多个catch语句,try中抛出的异常类对象从上往下去匹配catch中的异常类的类型,一旦满足 * 就执行catch中的代码。执行完,就跳出其后的多条catch语句 * 5.如果异常处理了,那么其后的代码继续执行。 * 6

第八周课程报告&&实验报告六

扶醉桌前 提交于 2019-12-25 06:50:29
Java实验报告 班级 计科一班 学号 20188390 姓名 宋志豪 实验四 类的继承 实验目的 理解异常的基本概念; 掌握异常处理方法及熟悉常见异常的捕获方法。 实验要求 练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。 掌握自定义异常类的方法。 实验内容 编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印"数组越界"信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。 自定义异常类的使用 车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。 实验代码: package 测试; import java.util.Scanner; public class Main { public static void main(String[] args){ char ch[]={'我','她'}; try{ for(int i=0;i<10;i++){ System.out.println("ch[i]="+ch[i]); } } catch (ArrayIndexOutOfBoundsException aE){ aE.printStackTrace(); System.out