扫盲:

Classloader 类加载器,用来加载 Java 类到 Java 虚拟机中。与普通程序不同的是。Java程序(class文件)并不是本地的可执行程序。当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行,负责加载Java class的这部分就叫做Class Loader。

JVM本身包含了一个ClassLoader称为Bootstrap ClassLoader,和JVM一样,BootstrapClassLoader是用本地代码实现的,它负责加载核心JavaClass(即所有java.*开头的类)。另外JVM还会提供两个ClassLoader,它们都是用Java语言编写的,由BootstrapClassLoader加载;其中Extension ClassLoader负责加载扩展的Javaclass(例如所有javax.*开头的类和存放在JRE的ext目录下的类),ApplicationClassLoader负责加载应用程序自身的类。

当运行一个程序的时候,JVM启动,运行bootstrapclassloader,该ClassLoader加载java核心API(ExtClassLoader和AppClassLoader也在此时被加载),然后调用ExtClassLoader加载扩展API,最后AppClassLoader加载CLASSPATH目录下定义的Class,这就是一个程序最基本的加载流程。

一:工具类

 package Jdbc_Test;

 import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties; public class jdbcutils {
private jdbcutils(){};
private static Connection con;
public static void main(String[] args)throws IOException{ }
public static Connection getCon(){
/*
通过读取properites配置文件来获取数据库连接信息。
通过类加载器,读取当前父目录的配置文件。通过class.getClassLoader方法getResourceAstream获取配置文件的
内容,然后通过IO流处理properites文件获取对应的key值。
配置文件便于灵活配置数据库信息。
*/
InputStream inp=jdbcutils.class.getClassLoader().getResourceAsStream("database.properties");
Properties pro=new Properties();
try {
pro.load(inp);
}catch (Exception ex){
throw new RuntimeException(ex+"读取配置文件失败!");
}
try {
String Drverclass = pro.getProperty("Driver.class");
String url = pro.getProperty("Url");
String username = pro.getProperty("username");
String password = pro.getProperty("password");
Class.forName(Drverclass);
con = DriverManager.getConnection(url, username, password);
}catch (Exception ex){
throw new RuntimeException(ex+"数据库连接失败!");
}
return con;
}
public static void cls_re(Connection con, Statement sta, ResultSet re){
if(con!=null){
try{
con.close();
}catch (Exception ex){}
}
if(sta!=null){
try{
sta.close();
}catch (Exception ex){}
}
if(re!=null){
try{
re.close();
}catch (Exception ex){}
} }
public static void cls_re(Connection con, Statement sta){
if(con!=null){
try{
con.close();
}catch (Exception ex){}
}
if(sta!=null){
try{
sta.close();
}catch (Exception ex){}
} }
}

二:测试代码:

 package Jdbc_Test;

 import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List; public class jdbc_test {
public static void main(String... args)throws Exception{
Connection con =jdbcutils.getCon();
PreparedStatement pre=con.prepareStatement("select * from system_user");
ResultSet re=pre.executeQuery();
List <Sys_User> lis =new ArrayList<Sys_User>();
while (re.next()){
Sys_User sys=new Sys_User(re.getString("username"),re.getString("password"));
lis.add(sys);
}
System.out.print(lis);
}
}
class Sys_User{
private String username;
private String password;
public Sys_User(String username ,String password){
this.username=username;
this.password=password;
} @Override
public String toString() {
String info=this.username+" "+this.password;
return info;
}
}

properites配置文件:

 Driver.class=com.mysql.jdbc.Driver
Url=jdbc:mysql://192.168.147.146:3306/homework_day13
username=test
password=

需要注意配置文件中不能有双引号 !

JDBC通过配置文件(properites)读取数据库配置信息的更多相关文章

  1. 读取数据库配置信息的两种方式(以后开发项目用java链接数据库)-------java基础知识

    第一步:先建立jdbc.properties user=root password url/yanlong driver=com.mysql.jdbc.Driver 第一种方式:直接文件读取 pack ...

  2. PropertyPlaceholderConfigurer的用法(使用spring提供的类读取数据库配置信息.properties)

    http://www.cnblogs.com/wanggd/archive/2013/07/04/3172042.html(写的很好)

  3. golang 读取 ini配置信息

      package main //BY: 29295842@qq.com//这个有一定问题   如果配置信息里有中文就不行//[Server] ;MYSQL配置//Server=localhost   ...

  4. 泛微ecology OA系统某接口存在数据库配置信息泄露漏洞

    2漏洞详情 攻击者可通过该漏洞页面直接获取到数据库配置信息,攻击者可通过访问存在漏洞的页面并解密从而获取数据库配置信息,如攻击者可直接访问数据库,则可直接获取用户数据,由于泛微e-cology默认数据 ...

  5. 泛微e-cology OA系统某接口存在数据库配置信息泄露漏洞复现

    1.简介(开场废话) 攻击者可通过存在漏洞的页面直接获取到数据库配置信息.如果攻击者可直接访问数据库,则可直接获取用户数据,甚至可以直接控制数据库服务器. 2.影响范围 漏洞涉及范围包括不限于8.0. ...

  6. 泛微ecology OA系统在数据库配置信息泄露

    漏洞描述 攻击者可通过该漏洞页面直接获取到数据库配置信息,攻击者可通过访问存在漏洞的页面并解密从而获取数据库配置信息,如攻击者可直接访问数据库,则可直接获取用户数据,由于泛微e-cology默认数据库 ...

  7. spring读取加密配置信息

    描述&背景Spring框架配置数据库等连接等属性时,都是交由 PopertyPlaceholderConfigurer进行读取.properties文件的,但如果项目不允许在配置文件中明文保存 ...

  8. spring boot mybatis XML文件读取properties配置信息

    配置文件application.properties中相关配置信息可以在部署以后修改,引用配置信息可以在代码和mybatis的映射文件中 1.JAVA代码 可以通过变量去读取 application. ...

  9. java 读取数据库中文信息,为何在jsp页面中出现乱码

    有如下几种解决办法:1.保证项目的字符编码和每一个jsp页面的字符编码一致,如果不一致可能导致中文乱码问题<%@ page language="java" contentTy ...

随机推荐

  1. Algorithm——两个排序数组的中位数

    ps:城际的网速还是不错的-

  2. Thymeleaf模板表达式

    日期格式.组件提取等. ${#dates.format(date)}${#dates.arrayFormat(datesArray)}${#dates.listFormat(datesList)}${ ...

  3. Ubuntu 添加删除用户 How to Add and Delete Users on Ubuntu 16.04

      Introduction One of the most basic tasks that you should know how to do on a fresh Linux server is ...

  4. ADB指令大全

    Android Debug Bridge version 1.0.26.26 -a - directs adb to listen on all interfaces for a connection ...

  5. window 命令行

    清屏 cls 启动服务 net start 服务名(nexus.mysql) 关闭服务 net stop 服务名(nexus.mysql) 删除服务 sc delete 服务名 如果服务名有空格,加引 ...

  6. jdk下载及安装

    下载下载 jdk 下载 java se 版本的即可. web 开发前不需要像安装 java se 一样安装java ee,只要在项目中添加 java ee 的jar 包就可以了,里面大多是接口和抽象类 ...

  7. Week5——applet

    1.定义 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 2.特点(不同于Java  a ...

  8. 第四章 数据更新 4-1 数据的插入(INSERT 语句的使用方法)

    一.什么是INSERT 用来插入数据的SQL就是INSERT语句.   二.INSERT 语句的基本语法. 列清单 值清单 列清单和值清单的列数必须保持一致,如果不一致会出错.   原则上,执行一次I ...

  9. jQuery 中bind(),live(),delegate(),on() 区别

    on()来改写通过 .bind(), .live(), .delegate()所注册的事件 /* The jQuery .bind(), .live(), and .delegate() method ...

  10. 官方推荐的MySQL参数设置值

    这oracle官方推荐的在OLTP环境下,MySQL参数设置的最佳实践. 下面的参数设置,对系统的性能会很有帮助.但是建议大家还是结合实际情况使用. APPLIES TO: MySQL Server ...