写在前面

JDBC以一种统一的方式来对各种各样的数据库进行存取,JDBC为开发人员隐藏了不同数据库的不同特性。程序员开发时,知道要开发访问数据库的应用,于是将一个对应数据库的JDBC驱动程序类的引用进行了编码,并通过使用适当的JDBC URL 连接到数据库。

首先保证oracle服务开启,至于怎么开启,请看oracle篇。

第一步

当然是创建配置文件啊

1.选好文件夹右键 new file

或者

点左上角file 再选路径

2.取号配置文件名字+文件后缀  name.properties   点finish

3.编辑配置文件

点Source  ♂   根据具体情况写,#是注释,

driver后边写的是JDBC驱动文件名(固定写法)

url=jdbc:oracle:thin:ip地址: 端口:数据库名

本机地址@localhost 或者127.0.0.1

name=数据库账号名

password=密码

第二步

编写一个类

 import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties; public class JdbcTest { public void queryEmp() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
// 配置文件路径
String configFile = "db.properties";
// 创建一个Properties对象
Properties prop = new Properties();
// 将Properties配置文件 读入输入流
// 读取Properties配置文件的方法有6种
InputStream in = ClassLoader.getSystemResourceAsStream(configFile);
try {
prop.load(in);
} catch (IOException e1) { e1.printStackTrace();
}
String driver = prop.getProperty("driver");
String url = prop.getProperty("url");
String name = prop.getProperty("name");
String password = prop.getProperty("password"); try {
// 加载JDBC驱动
Class.forName(driver);
// 获取连接 链接数据库
conn = DriverManager.getConnection(url, name, password);
String sql = "select * from emp where empno=?";
// 获取Statement对象,来写SQL语句
ps = conn.prepareStatement(sql);
ps.setInt(, );
// 执行SQL语句,获取结果集
rs = ps.executeQuery();
while (rs.next()) {
String ename = rs.getString("ename");
int empno = rs.getInt("empno");
Date date = rs.getDate("hiredate");
double salary = rs.getDouble("sal");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String hiredate = sdf.format(date);
System.out.println("员工姓名:" + ename + "\t员工编号" + empno
+ "\t入职日期" + hiredate + "\t工资" + salary);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源 必须写 很占内存
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} }
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} }

写个main方法测试一哈

 public class Test {

     public static void main(String[] args) {
JdbcTest test = new JdbcTest();
test.queryEmp();
}
}

控制台输出

说明链接到数据了,over!

写在后边

这么做有什么弊端?

这种方式带来的问题:

1、数据库服务器名称、用户名和口令都可能需要改变,由此引发JDBC URL需要修改;
2、数据库可能改用别的产品,如改用DB2或者MySql,引发JDBC驱动程序包和类名需要修改;
3、随着实际使用终端的增加,原配置的连接池参数可能需要调整;

我们的WEB应用每次接受到一个客户的请求,都会和数据库取得连接,数据库操作结束后就会断开连接,这样的话就会耗费服务器大量的时间和内存。

因为此时数据库每次配置链接都要将Connection对象加载到内存中,再验证用户名和密码。这个是很可怕的。

解决办法:
程序员应该不需要关心“具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL格式是什么?访问数据库的用户名和口令是什么?”等等这些问题,程序员编写的程序应该没有对 JDBC 驱动程序的引用,没有服务器名称,没有用户名称或口令 —— 甚至没有数据库池或连接管理。而是把这些问题交给J2EE容器来配置和管理,程序员只需要对这些配置和管理进行引用即可。

由此,就有了JNDI,配置数据源。

数据源,一下篇讲。

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

  1. JAVA JDBC 读取配置文件链接数据库(oracle)

    ----db.properties-------- dbDriver = oracle.jdbc.driver.OracleDriverurl = jdbc:oracle:thin:@192.168. ...

  2. Spring 链接数据库

    一.前言 Spring 现在是我们在做 JavaWeb 开发中,用的最主流的框架.以后是不是我们暂时不知道,但现在是.废话不多我就介绍 Spring 中.链接数据库的三种方式: git源码地址 需要的 ...

  3. JDBC的使用(一):引用外部jar;代码链接数据库

    一:引用外部jar 1.首先不jar文件放到项目下: 2.在Eclipse中,右键相应的项目--构建路径--配置构建路径--库--添加外部jar:选中-打开-应用-确定. 二:代码链接数据库 1.加载 ...

  4. 1019 JDBC链接数据库进行修删改查

    package com.liu.test01; import java.sql.Statement; import java.sql.Connection; import java.sql.Drive ...

  5. 4、原生jdbc链接数据库常用资源名

    原生jdbc链接数据库要素:#MySql:String url="jdbc:mysql://localhost:3306/数据库名";String name="root& ...

  6. JDBC中链接数据库前为什么要用Class.forName(驱动类)加载驱动类?

    使用JDBC链接数据库时,为什么要先使用Class.forName(String name)来加载类? 答: 实际上就是为了加载类时,调用静态初始化块中的注册函数. 可以看一下MySql的Driber ...

  7. jdbc链接数据库,获取表名,字段名和数据

    import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import  ...

  8. JDBC链接数据库步骤

    java中定义链接数据库的标准:JDBC 1.导包:不同数据库有不同的jdbc驱动包,而且jdbc驱动包和数据库版本必须对应 2.测试 3.写代码 try { 1.//加载JDBC驱动    Clas ...

  9. 理解class.forName() ---使用jdbc方式链接数据库时会经常看到这句代码

    目录(?)[-] 官方文档 类装载 两种装载方法的区别 不同的类装载器 是否实例化类 在jdbc链接数据库中的应用 资源   原文地址:http://yanwushu.sinaapp.com/clas ...

随机推荐

  1. 虚拟机 VMware Tools 安装

    Ubuntu 或具有图形用户界面的 Ubuntu Server 要挂载 CD 镜像并解压,请按以下步骤操作: 启动此虚拟机. 使用具有管理员权限或 root 用户权限的帐户登录此虚拟机. 选择:对于F ...

  2. SVN 环境搭建 需要注意的地方

    一. 服务器上安装的软件: 先 安装 Subversion 下载的地址:http://www.sliksvn.com/en/download 安装 TortoiseSVN    下载地址:http:/ ...

  3. CC2530低功耗设置(针对终端设备)

    一. 终端设备只完成发送数据 1.开启POWER_SAVING 预编译 2.f8wConfig_cfg 中的RFD_RCVC_ALWAYS_ON=FALSE 3.f8wConfig_cfg中四个DPo ...

  4. 服务端REST与SOAP的探讨(转)

    声明: 闲来逛论坛看到一篇不错的文章,阅读后受益匪浅. 本文从一个简单的应用场景出发,使用REST和SOAP两种不同的架构风格实现,通过对REST与SOAP Web服务具体对比,旨在帮助读者更深刻理解 ...

  5. Android画图之抗锯齿 paint 和 Canvas 两种方式

    在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿.其实Android自带了解决方式.    方法一:给Paint加上抗锯齿标志.然后将Paint对象作为参数传给canvas的绘制方法. ...

  6. git提交忽略不必要的文件或文件夹

    创建maven项目,使用git提交,有时需要忽略不必要的文件或文件夹,只保留一些基本. 例如如下截图,实际开发中我们只需提交:src,.gitignore,pom.xml 而自己项目文件一般都保留,但 ...

  7. linux中uptime命令查看linux系统负载

    阅读目录 uptime cat /proc/loadavg 何为系统负载呢? 进阶参考 uptime 另外还有一个参数 -V(大写),是用来查询版本的 [appdeploy@CNSZ22PL0088: ...

  8. [转]MSSQL 判断临时表是否存在

    原文来自:http://www.cnblogs.com/szfhquan/p/4229150.html 方法一: 1 if exists (select * from tempdb.dbo.sysob ...

  9. [转]Excel.dll 导出Excel控制

    Excel.dll 导出Excel控制 2010-06-12 11:26 2932人阅读 评论(2) 收藏 举报 excelmicrosoftstring产品服务器google 最近做了个导出Exce ...

  10. 显示器如何显示一个YUV422格式的图形

    记录在开发过程中对知识点的一些理解: 在开发渲染程序的过程中,需要对视屏文件进行解码解码后特效文件的叠加,使用的技术是(FFmpeg+DirectX) 解码出来的视屏数据格式是YUYV,使用Direc ...