jdbc工具类2..0

一、创建外部文件

url=jdbc:mysql:///qy66
use=root
password=root
driver=com.mysql.jdbc.Driver

二、创建工具类

package cn.zhouzhou;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;/** jdbc2.0?* *    一、配置文件*1.在SRC下创建文件 格式为properties  jdbc.properties2.写入url=jdbc:mysql:///qy66 注意【这里的qy66】 是自己的数据库中有的 库!use=rootpassword=rootdriver=com.mysql.jdbc.Driver 3.好处?这样写 可以直接在外部文件改变驱动、用户名、或是连接地址二、获得路径的方式?1.读取文件        Properties pro01=new Properties();2.获取文件路径    ClassLoader class01=工具类存在硬编码问题.class.getClassLoader();    classloader()类加载器!3.通过getPath(); 提供文件路径4.load(Reader reader)         以简单的线性格式从输入字符流读取属性列表(关键字和元素对)5.getProperty(String key)     使用此属性列表中指定的键搜索属性。 三、获取连接对象?四、释放资源?*/
public class 工具类存在硬编码问题 {private static String driver;private static String url;private static String use;private static String password;//文件的读取?static{try {Properties pro01=new Properties();                                //读取文件?proerties
                                                                ClassLoader class01=工具类存在硬编码问题.class.getClassLoader();//获取SRC路径?classloader()类加载器! 作用 将class文件加载到jvm虚拟机中去,程序就可以正确运行了
            URL res=class01.getResource("jdbc.properties");    //getResource? 获得SRC目录下的jdbc.properties文件String path=res.getPath();                        //getpath()?     提供文件路径
                                        pro01.load(new FileReader(path));url=pro01.getProperty("url");use=pro01.getProperty("use");password=pro01.getProperty("password");driver=pro01.getProperty("driver");} catch (Exception e) {e.printStackTrace();}  }//获取连接对象?public static Connection  getConnection() throws SQLException{return DriverManager.getConnection(url, use, password);}//释放资源?public static void close(Statement stmt,Connection conn){if (stmt!=null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn!=null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}//还要释放资源? 方法的重载。public static void close(ResultSet rs,Statement stmt, Connection conn){if (rs!=null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (stmt!=null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn!=null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}    
}

三、测试类

package cn.zhouzhou;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/** 测试?执行写的工具类?* */
public class Text01 {public static void main(String[] args) throws SQLException {Connection con=工具类存在硬编码问题.getConnection();    //1.注册
        String string="select * from shop";            //2.查询
        PreparedStatement start=con.prepareStatement(string); //3.设置 执行语句
        ResultSet rs=con.prepareStatement(string).executeQuery(); while (rs.next()) {System.out.println(rs.getInt(1)+" "+rs.getString(2)+"  "+rs.getDouble(3));}    工具类存在硬编码问题.close(rs, start, con);     //4.关闭资源
    }/** 输出结果!2 打牌支出  200.03 衣服支出  100.04 工资收入  200100.05 商品收入  2000.06 张三  2000.07 工资收入  0.012 003  5000.0* */}

 

转载于:https://www.cnblogs.com/ZXF6/p/10645204.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 获取系统时间now,date

(1) 直接在命令窗输入now,返回数字,这个数字一般无意义;输入date,返回具体日期: >> now ans 7.3699e05 >> date ans 23-Oct-2017 (2)想要将时间精确…

bash shell脚本访问PostgreSQL的三种方式

bash脚本里有三种方式访问PostgreSQL数据库 但前提是要设置密码文件。当然对于有系统对应账户的数据库角色可以绕过密码登录环节,如 1$ sudo -u postgres psql或 12$ sudo su - postgres$ psql但是对于没有系统账户对应的数据库角色,如要使用脚本登录则…

linux-shell-命令总结

第一种方法执行: 第二种方法执行: 第三种方法执行: 第四种方法:执行 第三种和第四种方法都是在新的进程里执行程序 函数方法 方法就是一个命令,命令写在字符串的第一个位置 type:可以接外部命令&#xff0c…

matlab plot绘制曲线

1)语法 plot(Y) plot(X1,Y1,…) plot(X1,Y1,LineSpec,…) plot(…,’PropertyName’,PropertyValue,…) plot(axes_handle,…) h plot(…) hlines plot(‘v6’,…) 2)说明 plot(Y)如果Y是mn的数组,…

【转】iPython入门技巧

【转】http://www.cnblogs.com/cuiyubo/p/6823478.html 学习《利用python进行数据分析》 第三章 IPython:一种交互式计算和开发环境的笔记,共享给大家,同时为自己作为备忘用。 安装ipython用pip即可。ps.博主用的是win7系统,所以接下来的都是…

进程控制:进程的创建、终止、阻塞、唤醒和切换

进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。在操作系统中,一般把进程控制用的程序段称为原语,原语的特点是执行期间不允许中断,它是一个不可分割的基本单位…

jnlp下载

下载.jnlp文件里的内容需先安装好java Java安装好, java环境变量配置http://jingyan.baidu.com/article/4ae03de320d99f3eff9e6bfd.html 打开cmd(WinR)如下输入javaws \文件路径\ TCIA_REMBRANDT_06-22-2015.jnlp 后,按回车: 按…

使用Dagger 2在GWT中进行依赖注入

依赖注入是一种软件开发概念,其中为对象提供了创建所需的所有对象或值。 GWT用户已经熟悉GIN,但已不推荐使用此工具,因此不再支持,因此使用GIN的应用程序当前确实需要告别。 Dagger是GWT的新依赖注入框架。 对于那些不熟悉该框架的…

Java Web Token - JWT

JWT认证过程:https://www.codetd.com/article/3602378 JWT官方文档:https://jwt.io/introduction/转载于:https://www.cnblogs.com/leodaxin/p/10648358.html

中断和异常,陷阱的区别和联系

对于中断,异常和陷阱的各种关系,总结如下: 表 2.1. 中断,异常和陷阱的区别和联系 对CPU来说是 和当前CPU所执行的指令的关系CPU接下来的事情程序员和用户的态度中断被动的异步的没关系跳转到对应的ISR希望有对应的中断&#xff0c…

matlab global(全局变量)

如果想让某个函数中定义的变量能够被其他函数调用,需要用到全局变量。注意,在这两个函数中都要用global修饰这个变量。如: function t1 global x; x0; function t2 global x; yx end

win 2016 ssh_多台WIN10之间的SSH免密登录

网上有很多关于使用win10-ssh客户端登录linux-ssh服务端的介绍,但很少介绍多台win10-ssh服务端之间互访的。以下记录如何免密登录win10-ssh服务。1、安装OpenSSH。网上有很多介绍通过添加win10可选功能安装openssh,此处不赘述。如果通过添加可选功能出现…

Windows下安装及使用NVM

所谓nvm就是一个可以让你在同一台机器上安装和切换不同版本node的工具。这里是一篇安装及使用教程。 第一步:下载nvm 到github上下载最新版本https://github.com/coreybutler/nvm-windows/releases nvm-noinstall.zip: 这个是绿色免安装版本,…

Operating System-Thread(5)弹出式线程使单线程代码多线程化会产生那些有关问题

Operating System-Thread(5)弹出式线程&&使单线程代码多线程化会产生那些问题本文主要内容 弹出式线程(Pop-up threads)使单线程代码多线程化会产生那些问题 一、弹出式线程(Pop-up threads) 以在一个http到达之后一个Service的处理为例子来介绍…

cad2016中选择全图字体怎么操作_CAD2016 软件安装教程

安装包下载地址[软件名称]: CAD 2016[安装环境]: Win 10/Win 8/Win 7/Win xp[CAD2016 32-64bit下载链接]:https://pan.baidu.com/s/1AaeIZrJ6IlvBg3QiY3apWw[提取码]:oqcg(建议复制粘贴链接与提取码)安装中有问题可以咨询微信:XYSHY2CAD 2016介绍AutoCAD…

JavaScipt30(第八个案例)(主要知识点:canvas)

承接上文,这是第8个案例,要实现的效果是按住鼠标不放,进行拖动时可以在画布上画出不同粗细不同颜色的曲线。 附上项目链接: https://github.com/wesbos/JavaScript30 主要思路:鼠标按下时,记录当前x,y坐标,…

死锁的产生、预防和避免

死锁是由于并发进程只能按互斥方式访问临界资源等多种因素引起的,并且是一种与执行时间和速度密切相关的错误现象。死锁的一般定义:若在一个进程集合中,每一个进程都在等待一个永远不会发生的事件而形成一个永久的阻塞状态,这种阻…

python numpy.random模块中提供啦大量的随机数相关的函数

1. numpy中产生随机数的方法 1)rand()   产生[0,1]的浮点随机数,括号里面的参数可以指定产生数组的形状 2)randn()  产生标准正太分布随机数,参数含义与random相同 3)randint()  产生指定范围的随机数,最后一个参数是元祖,他确定数组的…

eclipse复制代码连接数据库404_再见,Eclipse ...

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏 中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业…