1.管理数据库连接的Class

代码如下:

/*

* 使用配置文件来配置JDBC连接数据库

* 该类用来管理数据库连接

*/

package jdbcTest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
import java.io.InputStream; /*
* 使用配置文件来配置JDBC连接数据库
* 该类用来管理数据库连接
*/ public class DBUtil { //静态属性,用于DriverManager.getConnection(url,user,psw);中的三个参数
private static String url;
private static String user;
private static String psw; //静态块
static{
try{
//读取配置文件
Properties prop=new Properties(); /*
* 此种写法是以后更加推荐的一种相对路径的处理方法。
* 要读取的文件和Class处于同一目录下
*/ InputStream is=JDBCDemo3.class.getClassLoader().getResourceAsStream("config2.properties"); /*
* 这种写法:class.getResource/getResourceAsStream也可以找到资源
* InputStream is=JDBCDemo3.class.getResourceAsStream("config.properties");
*/ prop.load(is); is.close();//输入流用完后,就可以关掉了 String driver=prop.getProperty("driver");
url=prop.getProperty("url");
user=prop.getProperty("user");
psw=prop.getProperty("psw"); //注册驱动
Class.forName(driver); System.out.println(driver+","+url+","+user+","+psw); }catch(Exception e){
e.printStackTrace();
}
}      //获取连接
public static Connection getConnection() throws Exception{
/*
* 通过DriverManager创建一个数据库的连接并返回
*/
try{
return DriverManager.getConnection(url,user,psw); }catch(Exception e){
e.printStackTrace();
//通知创建者,创建连接时出错
throw e; //注意,如果采用return null;如果外界没有对null进行则会引发空指针异常
}
} //关闭指定的连接
public static void closeConnection(Connection conn){
try{
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}

2.配置文件config.properties

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
user=SYSTEM
psw=Suzhou123 /*
* java.util.Properties
* Properties类用于读取properties文件
* 使用该类,可以类似Map的形式读取配置文件内容
* 文件格式类似:
* key=value,即等号左边key,等号右边为value
*/

3.读取数据库操作

package jdbcTest;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement; /*
* 使用配置文件来配置JDBC连接数据库
* 该类用来管理数据库连接
*/ public class JDBCDemo3 { public static void main(String[] args) { try{ Connection conn=DBUtil.getConnection();
System.out.println("数据库已连接成功"); /*
* 通过Connection创建Statement
* 用来执行sql语句
*/
Statement stmt=conn.createStatement();

//要执行的sql语句
String sql="SELECT * FROM STUDENT";

/*
* 使用executeQuery来执行DQL语句,并且查询后会得到一个查询结果集
*/
ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ String Std_name=rs.getString("NAME");
int Std_age=rs.getInt("AGE");
String Std_sex=rs.getString("SEX");
int Std_no=rs.getInt("SNO"); System.out.println(Std_name+", "+Std_age+", "+Std_sex+", "+Std_no); } /*
* 数据库资源有限,用完一个资源后就关闭,会节约数据库资源
*/
rs.close(); /*
* 当不再通过Statement执行其他sql时,就应当及时关闭Statement,
* 以释放JDBC与数据库的资源占用
*/
stmt.close(); //使用后关闭连接
DBUtil.closeConnection(conn); }catch(Exception e){
e.printStackTrace();
}
} }

以上,就是一个数据库连接的完整操作了。

使用配置文件来配置JDBC连接数据库的更多相关文章

  1. tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】

    tomcat中配置servlet.xml的JNDI或JDBC连接数据库 一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\se ...

  2. (转) Spring Boot JDBC 连接数据库

    文本将对在Spring Boot构建的Web应用中,基于MYSQL数据库的几种数据库连接方式进行介绍. 包括JDBC.JPA.MyBatis.多数据源和事务. 1 JDBC 连接数据库 1.1 属性配 ...

  3. JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】

    1.什么是JDBC JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API 2.为什么我们要用JDBC 市面上有非常多的数据库,本来我们是需要 ...

  4. JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】

    1.什么是JDBC JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API 2.为什么我们要用JDBC 市面上有非常多的数据库,本来我们是需要 ...

  5. jdbc连接数据库,中文出现乱码的问题

    一.使用jdbc连接数据库,插入数据库时,数据里的数据显示乱码,为 " ??? " 两种解决方案: 1.修改服务端的mysql配置文件,编辑my.cnf文件,在[mysqld]下添 ...

  6. Mybatis-基于配置文件的配置(——纪念这个即将被抛弃的孩子)

    虽然内心相信Mybatis基于配置文件的配置早已经在实战之中被注解所遗忘,但是我相信还是会有一小部分人还是需要这种技术去维护原有使用这种方式去搭建的项目. 废话不多说首先使用框架包是不能少的了.导入M ...

  7. 代码的二次重构(开篇:JDBC连接数据库)

    Java中使用JDBC连接数据库时,若是使用初级的代码,代码复用率非常低,连接过程简单来说分为以下几个步骤: 加载驱动包 准备好URL链接获取数据库连接(driver和url根据不同的数据库的不同而不 ...

  8. Spring Boot JDBC 连接数据库

    文本将对在Spring Boot构建的Web应用中,基于MYSQL数据库的几种数据库连接方式进行介绍. 包括JDBC.JPA.MyBatis.多数据源和事务. JDBC 连接数据库 1.属性配置文件( ...

  9. 利用JDBC连接数据库(MySQL)

    1 在eclipse中创建一个maven项目(在Java模式下,不要在JavaEE模式下) 1.1 file  -->> new  -->> project 2 下载数据库驱动 ...

随机推荐

  1. Python里*arg 和**kwargs的作用

    Hi,伙计们.我发现Python新手们在理解*args和**kwargs这两个魔法变量时都有些困难.他们到底是什么?首先,我先告诉大家一个事实,完整地写*args和**kwargs是不必要的,我们可以 ...

  2. python 小试题

    有个同事要帮一个朋友做一个小试题,题目如图: 由于个人在学习python路上,所以想用python 写出来这道题,来练练手,苦思冥想,再加上受同事的一些启发,加以扩展,写出代码如下: #!/usr/b ...

  3. git workflow

    1) fork map-matcher.git repo 2) add ssh-keygen public key to gitlab 3) clone repo git clone git@git. ...

  4. 去掉UITableView多余的空白行分割线

    一.问题描述 在学习和开发中经常会遇到下面的问题,UITableView的UITableViewCell很少或者没有时,但UITableView有很多的空白行分割线.如下图: 如何去掉UITableV ...

  5. 提额 APP

    提额 APP 开始参与这个APP也是巧合,一个月之前,我还在忙于电信运营商的工作,上级就过来问我在之前公司有没有用过 html css js这些.在维库的时候,可是从前台到后台都是要全包的呀,因为项目 ...

  6. .NET LINQ 投影运算

    投影运算      投影是指将对象转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性. 通过使用投影,您可以构建依据每个对象生成的新类型. 您可以映射属性,并对该属性执行数学函数. 还可以在 ...

  7. GIT 从入门到放弃大整理

    跟着廖雪峰学 GIT  http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 GUI f ...

  8. c#中取整,向上取,向下取

    Math.Ceiling()向上取整, Math.Floor()向下取整 示例: d = 4.56789 Math.Ceiling(Convert.ToDecimal(d)).ToString();M ...

  9. css笔记1: html页面的CSS、DIV命名规则

    原地址:http://www.cnblogs.com/rising-fay/archive/2013/02/25/2932592.html CSS命名规则 头:header 内容:content/co ...

  10. VR技术的系统化实现阶段

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 从20世纪80年代至80年代中期,虚拟现实技术的基本概念开始逐渐形成和完善.这一时期出现了一些比较经典的 ...