JDBC基础篇(MYSQL)——自定义JDBCUtil工具类
package util;
import java.io.File;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* jdbc通用的方法
* @author mzy
*
*/
public class JdbcUtil {
//url
private static String url = null;
//user
private static String user = null;
//password
private static String password = null;
//驱动程序类
private static String driverClass = null;
/**
* 只注册一次,静态代码块
*/
static{
//注册驱动程序
try {
/**
* 读取jdbc.properties文件
*/
//1)创建Properties对象
Properties prop = new Properties();
//构造输入流
/**
* 相对路径: . 这个点代表当前目录。当前目录本质上是java命令运行的目录
* java项目: 在ecplise中,当前目录指向项目的根目录。
* web项目: 当前目录指向%tomcat%/bin目录
* 1)结论: 在web项目不能使用相对路径
*
* web项目中加载配置文件: ServletContext.getRealPath() / getResourceAsStream() 这种方式对于jdbcUtil这个工具而言,放到java项目中找不到ServletContext对象,不通用的!
* 2)不能使用ServletContext读取文件
*
* 3)使用类路径方式读取配置文件
*
*/
//1)获取类的对象
Class clazz = JdbcUtil.class;
//2) 使用类路径的读取方法去读取文件
/**
* 这个斜杠:代表项目的类路径的根目录。 类路径: 查询类的目录/路径
* java项目下: 类路径的根目录,指向项目的bin目录
* web项目下:类路径的根目录,指向项目的WEB-INF/classes目录
*
* 只有把配置文件放在src目录的根目录下,那么这些文件就会自动拷贝到项目的类路径根目录下。
*/
InputStream in = clazz.getResourceAsStream("/jdbc.properties");
// File f = new File(clazz.getResource("/").getFile());
// System.out.println(f.getAbsolutePath());
//构造输入流
// InputStream in = new FileInputStream("./src/jdbc.properties");
//2)加载文件
prop.load(in);
//3)读取文件内容
url = prop.getProperty("url");
user = prop.getProperty("user");
password = prop.getProperty("password");
driverClass = prop.getProperty("driverClass");
// 测试是否从properties中读到
System.out.println(url);
System.out.println(user);
System.out.println(password);
System.out.println(driverClass);
Class.forName(driverClass);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取连接方法
*/
public static Connection getConnection(){
try {
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 释放资源的方法
*/
public static void close(Statement stmt,Connection conn){
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
/**
* 释放资源的方法
*/
public static void close(ResultSet rs,Statement stmt,Connection conn){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void main(String[] args) {
System.out.println(JdbcUtil.getConnection());
}
}
注意:
其中的jdbc.properties文件在src目录下:
jdbc.properties中的内容如下:
url=jdbc:mysql://localhost:3306/test
user=root
password=123456
driverClass=com.mysql.jdbc.Driver
JDBC基础篇(MYSQL)——自定义JDBCUtil工具类的更多相关文章
- (3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest【待完善】
(3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest 关键字:Mysql日志分析工具.mysqlsla 常用工具 [1]mysqldumpslow:官方提供的慢 ...
- (3.13)mysql基础深入——mysql日志分析工具之mysqlsla【待完善】
(3.13)mysql基础深入——mysql 日志分析工具之mysqlsla 关键字:Mysql日志分析工具.mysqlsla 常用工具 [1]mysqldumpslow:官方提供的慢查询日志分析工具 ...
- 【SSH三大框架】Hibernate基础第二篇:编写HibernateUtil工具类优化性能
相对于上一篇中的代码编写HibernateUtil类以提高程序的执行速度 首先,仍然要写一个javabean(User.java): package cn.itcast.hibernate.domai ...
- Maven基础&&Spring框架阶段常用工具类整理
常用工具类 1.密码加密工具类: package com.itheima.utils; import java.security.MessageDigest; import sun.misc.BASE ...
- Android 自定义Dialog工具类
由于项目的需要,系统的弹出框已经不能满足我们的需求,我们需要各式各样的弹出框,这时就需要我们去自定义弹出框了. 新建布局文件 dialog_layout.xml,将下面内容复制进去 <?xml ...
- spring-boot-jpa 自定义查询工具类
1.pom文件中添加如下配置 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...
- 黑马程序员——【Java基础】——泛型、Utilities工具类、其他对象API
---------- android培训.java培训.期待与您交流! ---------- 一.泛型 (一)泛型概述 1.泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制 ...
- Java基础---泛型、集合框架工具类:collections和Arrays
第一讲 泛型(Generic) 一.概述 1.JDK1.5版本以后出现的新特性.用于解决安全问题,是一个类型安全机制. 2.JDK1.5的集合类希望在定义集合时,明确表明你要向集合中装入那种类 ...
- 对于java自定义的工具类的提炼 注意事项
1.工具类的方法都用static修饰. 因为工具类一般不创建对象,直接类名.方法()使用 2.一些 定义的常亮需要 public static final 修饰. 3.一些与数据库的连接之类的设定 , ...
随机推荐
- IO流 connect reset
目录 出现场景 解决思路 出现场景 通过外部OBS下载10文件,然后通过工具将这10个文件打包成一个文件A.zip上传,最后将这个A.zip下载并解压,解压A.zip后发现文件数量不是10个. 解决思 ...
- java并发编程基础——线程相关的类
线程相关类 java还为线程安全提供了一些工具类. 一.ThreadLocal类(Thread Local Variable) ThreadLocal类,是线程局部变量的意思.功用非常简单,就是为每一 ...
- 微信小程序云开发-数据条件查询
一.使用where条件查询 在.get()语句之前增加.where语句实现条件查询. 二.通过doc查询单条数据 1.使用doc来查询数据库中的单条数据 2.定义一个空对象,用来展示插叙到的单条数据 ...
- git 强推本地分支覆盖远程分支
git 强推本地分支覆盖远程分支git push origin 分支名 --force
- python虚拟环境之Pyenv
一.windows下安装 1.使用命令安装 pip install pyenv-win --target %USERPROFILE%/.pyenv %USERPROFILE%/是具体的路径,例如 ## ...
- tomcat与springmvc 结合 之---第19篇(下,补充) springmvc 加载.xml文件的bean标签的过程
writedby 张艳涛,上一篇写了springmvc对<mvc:annoXXXX/>标签的解析过程,其实是遗漏重要的细节,因为理解的不深入吧 今天接着解析<bean>标签 & ...
- 构建后端第6篇之---java 多态的本质 父类引用 指向子类实现
张艳涛写于2021-2-20 今天来个破例了,不用英文写了,今天在家里电脑写的工具不行,简单的说 主题是:java多态的原理与实现 结论是:java的多态 Father father= new Son ...
- SourceTree 3.1.3版本跳过注册
1.进入文件夹 %LocalAppData%\Atlassian\SourceTree\ 找到SourceTree的目录 2.里面添加一个json文件 accounts.json 内容如下: [{&q ...
- videojs文档翻译-EventTarget
EventTarget new EventTarget() EventTarget是一个可以与DOM EventTarget具有相同API的类. 它增加了包含冗长功能的缩写功能. 例如:on函数是 ...
- vue使用GraphVis开发无限拓展的关系图谱
1.去GraphVis官网下载对应的js,新版和旧版的js有所不同,看自己需求引入旧版还是新版(GraphVis官方网址:http://www.graphvis.cn/) visgraph.min.j ...