JDBC(java Datebase Connector)

jdbc驱动程序

四种类型:

  jdbc-odbc桥接驱动程序

  Native-API

  JDBC-Net

  Native-Protocol  (常见)

 public class DBToolOld
{
public static void main(String[] args)
{
// 1、注册驱动
// DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// new驱动类的时候会注册一份,DriverManager.registerDriver又会去注册一份驱动
// 硬编码在类中,不方便修改
// System.setProperty("driver", "oracle.jdbc.driver.OracleDriver");
// 因为key和value都是字符串,可以改到配置文件中
// 需要约定好key的值,注册起来不太方便
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2、获得连接对象
String oracleUrl = "jdbc:oracle:thin:@192.168.6.100:1521:NIIT";
Connection conn = DriverManager.getConnection(oracleUrl, "scott",
"tiger");
// 3、开始执行SQL语句,先创建Statement对象
Statement stmt = conn.createStatement();
// 4、执行SQL语句,返回一个结果集,只有是SELECT语句、executeQuery才会返回结果集
ResultSet rs = stmt
.executeQuery("SELECT empNo, ename, hireDate, sal FROM Emp");
// 5、处理结果集
while (rs.next())
{
int empNo = rs.getInt(1); //根据列下标获得值
System.out.println(empNo);
String ename = rs.getString("ename"); //根据列名获得值,推荐这种方式
System.out.println(ename);
Date joinDate = rs.getDate("hireDate");
System.out.println(joinDate);
Double sal = rs.getDouble("sal");
System.out.println(sal);
System.out.println("============");
}
//6、关闭资源
rs.close();
stmt.close();
conn.close();
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} }
}

实际上常用的是:

 public class DBTool
{
private static DBTool instance; private DBTool()
{ } public static DBTool getInstance()
{
if (instance == null)
{
instance = new DBTool(); // 如果该实例为空,表示没实例化,在自己这里实例化,否则直接返回已经实例化好的对象
}
return instance;
} public Connection getConnection()
{
Connection conn = null;
try
{
Properties p = new Properties();
p.load(new FileReader("db.properties"));
String driverName = p.getProperty("driverName");
String url = p.getProperty("url");
String userName = p.getProperty("username");
String pwd = p.getProperty("password");
Class.forName(driverName);
conn = DriverManager.getConnection(url, userName, pwd);
}
catch (IOException | SQLException | ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
} public static void closeAll(Connection conn, Statement stmt, ResultSet rs)
{
close(rs);
close(stmt);
close(conn);
} private static void close(AutoCloseable ac)
{
try
{
if (ac != null)
{
ac.close();
ac = null;
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

此时驱动配置文件使用映射:

 driverName = com.mysql.jdbc.Driver
url = jdbc:mysql://192.168.6.66:3307/hn
username = zxj
password = wxniit

JDBC——架构层、驱动的更多相关文章

  1. 【转】USB协议架构及驱动架构

    1. USB协议 1.1 USB主机系统 在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器.USB主机控制器包含硬件.软件和固件一部分. 1.2 USB设备系统 ...

  2. 老调重弹:JDBC系列之<驱动加载原理全面解析) ----转

      最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解.所以便把JDBC 这个东东翻出来,好好总结一番,作为自己的笔记,也是给读者 ...

  3. Linux3.10.0块IO子系统流程(6)-- 派发SCSI命令到低层驱动

    在SCSI策略例程中最后调用scsi_dispatch_cmd将SCSI命令描述符派发给低层驱动进行处理 /** * scsi_dispatch_command - Dispatch a comman ...

  4. Android HAL层与Linux Kernel层驱动开发简介

    近日稍微对Android中的驱动开发做了一些简要的了解. HAL:Hardware Abstract Layer 硬件抽象层,由于Linux Kernel需要遵循GPL开源协议,硬件厂商为了保护自己硬 ...

  5. jdbc 03:注册驱动的方式

    jdbc连接mysql时,注册驱动的方式 package com.examples.jdbc.o3_注册驱动方式; //mysql驱动所在的包 import com.mysql.jdbc.Driver ...

  6. 架构-层-BLL:BLL

    ylbtech-架构-层-BLL:BLL 业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分.它的关注点主要集中在业务规则的制定.业务流程的实现等与业务需求有关的 ...

  7. 架构-层-DAL:DAL

    ylbtech-架构-层-DAL:DAL DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer).其功能主要是负责数据库的访问.简单地说就是实现对数据表的Select(查询 ...

  8. 关于jdbc注冊驱动的那点事

    看到非常多人写jdbc连接工具类的时候,都会写到Class.forName()去显示载入类,一写错点点就会抛出ClassNotFoundException,关于显示载入类,究竟会不会产生作用呢? 參考 ...

  9. JDBC架构

    JDBC API支持两层和三层处理模型进行数据库访问,但在一般的JDBC体系结构由两层组成: JDBC API: 提供了应用程序对JDBC的管理连接. JDBC Driver API: 支持JDBC管 ...

随机推荐

  1. Loadrunner 录制成功,但是脚本并没有产生

    LR 在用IE 录制脚本已经成功,但是结束录制以后,并没有脚本产生,在产生脚本log 中提示: [Net An. Error    (14c8:1cec)] Request Connection: R ...

  2. Java笔记(三)……基础语法

    关键字 标识符 在程序中自定义的一些名称 由26个英文字母大小写,数字:0-9,符号:_ $组成 定义合法标识符规则: 数字不可以开头. 不可以使用关键字. Java中严格区分大小写. 注意:在起名字 ...

  3. hadoop部署小结的命令

    hadoop部署总结的命令 学习笔记,转自:hadoop部署总结的命令http://www.aboutyun.com/thread-5385-1-1.html(出处: about云开发)

  4. 嵌套在母版页中的repeater自动生成控件ID

    注:如果直接在后台通过e.Item.FindControl()方法直接找控件,然后再通过对其ID赋值,在编译之后会出现“母版页名称_ID“类似的很长的ID值(详情点击) 解决方法:<asp:Co ...

  5. hdu1839之二分+邻接表+Dijkstra+队列优化

    Delay Constrained Maximum Capacity Path Time Limit: 10000/10000 MS (Java/Others)    Memory Limit: 65 ...

  6. 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段

    1.查看表空间中数据文件存储的路径以及是否可以自动扩展 SELECT TABLESPACE_NAME, BYTES/1024/1024 FILE_SIZE_MB, FILE_NAME FROM DBA ...

  7. git 秘钥的生成

    在命令查看自己的秘钥还是公钥 cat .ssh/id_rsa.pub/cat .ssh/id_rsa

  8. 换种眼光看Spring之bean是怎么诞生的(一)

    Java的世界里处处存在了对象,有时候换一种眼光往往会给自己带来与之前大不一样的理解. 一个对象的出现离不开字节码,拿classforname来讲,classforname("...&quo ...

  9. jsp页面转发到servlet

    一个简单的例子来了解一下jsp页面转发到servlet的过程,环境 eclipse.tomcat 1.工程目录结构如下 2.各部分代码如下 1>index.jsp <%@ page lan ...

  10. iframe框架自适应高度 uncanght SecurityError: Blocked a frame with origin "null" from accessing a frame ....

    来源于crm项目的contact/edit.html 一.背景是这样的 最近在做crm系统的前端页面,有一个页面呢,点击“查看全部信息”时会弹出,这个弹窗里面又有分页导航,分页不是使用ajax 异步刷 ...