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. 2.mongoDB add user in v3.0 问题的解决(Property 'addUser' of object admin is not a func)

    问题:创建mongodb帐户时,出错 > db.addUser('jyu', 'aerohive')  2015-08-05T20:03:02.767+0800 E QUERY    TypeE ...

  2. 关于oracle中日期使用

    spl> select * from emp         where dates          between         to_date('2007-06-12 10:00:00' ...

  3. day3

    程序1: 实现简单的shell sed替换功能 ]new = sys.argv[]file_name = sys.argv[]tmp_file ="tmpfile"open(tmp ...

  4. Note3 :《集体智慧编程》用户相似度计算

    欧几里德距离评价: 以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到图上,并考察他们彼此之间的距离远近.计算出每一轴向上的差值,求平方之后再相加,最后对总和取平方根. # -*- codin ...

  5. [LeetCode] Remove Linked List Elements

    Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...

  6. Python中下划线---完全解读(转)

      Python中下划线---完全解读 Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __xxx ...

  7. devexpress 安装及破解

    安装dx DXperience-10.1.4 破解文件下载

  8. SubSonic指南中文版

    翻译:王鹏程张原 王伟策划:毛凌志2009年1月北京工业大学软件学院PS:有问题反馈至http://lexus.cnblogs.comGetting Started with SubSonicBy S ...

  9. js直接打印pdf文件内容

    (1)需求:是网页上打开一个pdf文件,然后直接打开打印机,就是直接打印,不用用户再次点击打印按钮,这样用户体验好 (2)经历: 我在网上找了资料就是使用window.print(),但是这个只是打印 ...

  10. PHP-Redis扩展使用手册(四)

    /* 添加一个或者多个value到无顺序集合总,如果value已经成set中,则返回false * @param key set名称 * @param value * ... * @return in ...