关于Connection的一个测试
原本以为Java中是值传递;那么当把一个connection传递给一个函数的时候,在此函数中调用connection.close()方法额话只是关闭了传递过来的值,不会关闭原来的connection,然而并不是这样的,调用close()方法后会把原来的connection也关闭掉,以下是做的一个测试程序。`package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
public static void main (String[] args) throws ClassNotFoundException, SQLException
{connection();}
private static void connection() throws SQLException, ClassNotFoundException
{Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/mysql";Connection connection = DriverManager.getConnection(url,"root","");Statement ps = connection.createStatement();close(connection);if(connection.isClosed()){System.out.println("connection 已被关闭");}else{System.out.println("connection 未被关闭");}if(null == (ps = connection.createStatement())){System.out.println("connection 确认为空");}else{System.out.println("connection 确认不为空");}open(connection);}
private static void close(Connection conn) throws SQLException
{if(null == conn){System.out.println("connection 为空");}else{System.out.println("connection 不为空 调用close 方法");conn.close();}
}private static void open(Connection conn)
{if(null == conn){System.out.println("connection 为空");}else{System.out.println("connection 不为空 open 方法");conn = null;if(null == conn){System.out.println("少妇白洁");}}
}
private static void tranfor(int i )
{i = 5;System.out.println(i);
}
}
下面是测试的结果:
***connection 不为空 调用close 方法
connection 已被关闭*
Exception in thread “main” com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: **No operations allowed after connection closed.
at** sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
这个是我的一个疑惑,如我的文章有幸被您看到,您知道原因的话,希望您能不吝赐教。
关于Connection的一个测试相关推荐
- Apache中的一个测试小工具
一个不错的 目录中的 ab.exe ,相当简单容易的一个测试小工具. ab -n 1000 -c 50 http://www.xxx.com/(要测试的网站目录)相当的简单容易.让你初步对服务器的性能 ...
- 这是一个测试rss的内容哦
这是一个测试rss的内容哦 转载于:https://www.cnblogs.com/cbyniypeu/p/6725675.html
- 怎样从0开始搭建一个测试框架_0
怎样从0开始搭建一个测试框架_0 在开始之前,请让我先声明几点: 这个"从0开始"并不是说你不需要任何基础知识,而是指框架从无到有的过程,要开始搭建还是需要一定基础 请确保你已经掌 ...
- 定义一个 圆形 Circle类 , 定义其中的长度length属性,定义一个求面积getArea()的方法。 并编写一个测试类,进行长度的赋值和展示,并调用求面积方法展示面积值。
定义一个 圆形 Circle类 , 定义其中的长度length属性,定义一个求面积getArea()的方法. 并编写一个测试类,进行长度的赋值和展示,并调用求面积方法展示面积值. public cla ...
- 一个测试工程师面试官的真实分享!个人超赞同!
最近一段时间都在做集中招聘,参加了许多面试,累个半死.加上之前在团队中最近几年也做了不少面试,关于测试工程师招聘的话题,刚才没事特意google了一下,除了一些面试题外居然没有几篇心得方面的文章.上午 ...
- 如何在gradle上仅运行一个测试类
本文翻译自:How to run only one test class on gradle I am new to Gradle. 我是Gradle的新手. I use Gradle 1.10 an ...
- JAVA 编写一个员工类,成员变量和成员方法自拟,编写一个测试类
课后习题练习 3.4 编写程序实现以下功能: (1).员工类(Emploee):c=成员变量包含员工号和员工姓名,成员方法包含构造方法和输出方法(输出员工信息). (2). 部门主管类(Manager ...
- 定义一个长方形类,定义 求周长和面积的方法,然后定义一个测试了Test,进行测试
定义一个长方形类,定义 求周长和面积的方法,然后定义一个测试了Test,进行测试. import java.util.Scanner; class ChangFangXing{private int ...
- 公司25k招了一个测试员不会自动化,试用期没过就赶走了...
最近翻了一些网站的招聘信息,把一线大厂和大型互联网公司看了个遍,发现市场还是挺火热的,虽说铜三铁四,但是软件测试岗位并没有削减多少,建议大家有空还是多关注和多投简历,不要闭门造车,错过好机会. 仔细分 ...
- 中秋测试大礼包来了,送一个测试流量app~
PS:中秋来临之际,提前祝大家阖家团圆,中秋快乐,送给大家一个测试大礼包,一个用于流量测试的Android app,市场独一份,好用实在~ 流量app仅支持安装在安卓6.0以上设备进行测试,主要通过N ...
最新文章
- 最大子矩阵(降维处理)
- python批量ping50台服务器_Python小技巧—批量ping的方法
- range在c语言中的意思,“range”的含义,你get到了吗?
- 调优您的 LAMP 应用程序的 5 种简单方法
- java代码,继承。。。主要是传值,赋值。
- Please let us know in case of any issues
- 力扣题目——1249. 移除无效的括号
- Struts入门学习(三)---自定义类型转换器
- C语言面试题分类-位运算
- 计算机网络技术自谋职业,过去认知或许都是错的 主编告诉你游戏PC该怎么选
- 基于JQUERY的WEB在线流程图设计器GOOFLOW 0.5版 数据值解析
- 小甲鱼【C语言】《带你学C带你飞》笔记
- 全球与中国乳制品替代杏仁制品市场深度研究分析报告
- 真正拖垮你的,是沉没成本
- final_cut_pro基础
- Android bug日志/错误收集
- 解构金蝶EAS 开发工具
- 计算机应用基础2019年12月所有题,2019年12月网络教育统考《计算机应用基础》复习题(九)...
- SQL 错误 [40000] [42000]: Error while compiling statement: FAILED
- uTools插件-Excalidraw轻量的在线白板绘图工具