Java程序连接数据库
/**
* 了解: 利用 Driver 接口的 connect 方法获取连接
*/
// 第一种实现
/**
* 了解: 利用 Driver 接口的 connect 方法获取连接
*/
@Test
public void oracleJdbcTest() throws Exception {
Driver driver = null; // sun提供的接口
String url = "jdbc:oracle:thin:@192.168.5.139:1521:ORCL";
Properties info = null;
info = new Properties();
info.put("user", "scott");
info.put("password", "tiger");
driver = new OracleDriver(); // Oracle数据库厂商自己实现sun提供的接口Driver
Connection connect = driver.connect(url, info); // 获取连接
System.out.println(connect);
}
======================================
/**
* 了解: 使用 DriverManager 来获取数据库连接
* 版本1:
* 好处: 不需要使用原生的 Driver 方法来获取连接.
* 缺点: 还是耦合了具体的实现类.
*/
//第二种实现
@Test
public void oracleJdbcTest1() throws Exception{
Connection connection=null;
DriverManager.registerDriver(new OracleDriver()); //驱动管理器注册Oracle驱动,实现Java程序可以连接Oracle数据库,如果想要连接不同的数据库则需要注册不同的数据库驱动
String url="jdbc:oracle:thin:@192.168.5.139:1521:ORCL";
Properties info=null;
info=new Properties();
info.put("user", "scott");
info.put("password", "tiger");
connection=DriverManager.getConnection( url, info) ; //DriverManager驱动管理器类,里面的方法都是静态的,类调用获取到一个连接
System.out.println(connection);
}
====================================
/**
* 了解: 更进一步, 不需要关联任何 JDBC 驱动的实现类。
* 但需要提供 JDBC 驱动中 Driver 接口的实现类的全类名的字符串.
*/
//第三种实现
@Test
public void oracleJdbcTest2() throws Exception, InstantiationException, IllegalAccessException, ClassNotFoundException{
Connection connection=null;
String className="oracle.jdbc.driver.OracleDriver";
DriverManager.registerDriver((Driver)Class.forName(className).newInstance()); //注册驱动
String url="jdbc:oracle:thin:@192.168.5.139:1521:ORCL";
Properties info=null;
info=new Properties();
info.put("user", "scott");
info.put("password", "tiger");
connection=DriverManager.getConnection(url,info);
System.out.println(connection);
}
===========================================================
/**
* 能创建一个不和具体 Driver 耦合的获取数据库连接的方法. 即在方法中不再关联任何数据库驱动的 JDBC 实现.
* @throws SQLException
*/
/**
* final version: 若需要手动获取数据库连接:
*
* 更进一步, 不需要关联任何 JDBC 驱动的实现类。
* 但需要提供 JDBC 驱动中 Driver 接口的实现类的全类名的字符串.
*
* 实际上, 在驱动的实现类中有一个静态代码块: 创建了 Driver 实现类的对象, 并把其注册给 DriverManager
* static {
* try {
* java.sql.DriverManager.registerDriver(new Driver());
* } catch (SQLException E) {
* throw new RuntimeException("Can't register driver!");
* }
* }
*
* 而调用 Class 的 forName 方法在加载类实例时, 会调用静态代码块.
*
*/
//第四种实现(最常用)
@Test
public void oracleJdbcTest3() throws Exception{
Connection connection=null;
String className="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@192.168.5.139:1521:ORCL";
Properties info=null;
info=new Properties();
info.put("user", "scott");
info.put("password", "tiger");
Class.forName(className).newInstance();//加载驱动
connection=DriverManager.getConnection(url,info);
System.out.println(connection);
}
Java程序连接数据库的更多相关文章
- jdbc java程序连接数据库 案例
package jdbc; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException; ...
- Java应用程序连接数据库--JDBC基础
Java应用程序连接数据库--JDBC基础 Java应用程序连接数据库–JDBC基础 <!-- MySQL驱动,连接数据库用,由数据库厂商提供 --> <dependency&g ...
- JAVA与数据库MySQL相连接
JDBC(Java数据库连接体系结构): 是Java实现数据库访问的应用程序编程接口,主要功能是管理存放在数据库中的数据.通过接口对象,应用程序可以完成与数据库的连接,执行SQL语句,从数据库中获取结 ...
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...
- 【java 获取数据库信息】获取MySQL或其他数据库的详细信息
1.首先是 通过数据库获取数据表的详细列信息 package com.sxd.mysqlInfo.test; import java.sql.Connection; import java.sql.D ...
- Java与数据库之间时间的处理
Java与数据库之间时间的处理 在数据库中建表: DROP TABLE IF EXISTS `times`; CREATE TABLE `times` ( `id` int(11) NOT NULL ...
- 【助教】Java获取数据库数据展示
本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...
- (转)java读取数据库表信息,子段
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
- Java免费开源数据库、Java嵌入式数据库、Java内存数据库
Java免费开源数据库.Java嵌入式数据库.Java内存数据库 http://blog.csdn.net/leiyinsu/article/details/8597680
随机推荐
- java并发系列 - 第29天:高并发中常见的限流方式
这是java高并发系列第29篇. 环境:jdk1.8. 本文内容 介绍常见的限流算法 通过控制最大并发数来进行限流 通过漏桶算法来进行限流 通过令牌桶算法来进行限流 限流工具类RateLimiter ...
- Python模块——HashLib(摘要算法)与base64
摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...
- coo ceo cfo cto cio 区别
常见的CEO(Chief executive officer)首席执行官类似总经理.总裁,是企业的法人代表. COO(Chief operating officer)首席运营官 类似常务总经理CFO( ...
- 学习Lowdb小型本地JSON数据库
Lowdb是轻量化的基于Node的JSON文件数据库.对于构建不依赖服务器的小型项目,使用LowDB存储和管理数据是非常不错的选择. 一:lowdb 使用及安装 在项目中的根目录安装 lowdb 命令 ...
- Shell总结2
1.---------->>sed命令用来取指定范围行. 2.--------------->>>>“$?“返回值的用法 (1)判断命令.脚本或函数等程序是否执行成 ...
- odoo通过actions.client进行自定义页面
一.使用原因 由于odoo自带页面在项目开发过程中无法满足使用,需要使用到动作ir.actions.client进行自定义视图的开发,实现自定义的xml视图开发. 二.实现目标 三.开发过程 1.项目 ...
- redis 原理系列之--字符串存储的实现原理(1)
背景 redis功能强大,几乎已经成了现代大中型服务必备的缓存技术了. 除了十分给力的缓存功能,redis当做消息队列,数据库也有着不错的表现. 我们都知道,redis 有五种数据类型,string, ...
- Codeforces Round #506 (Div. 3) 1029 F. Multicolored Markers
CF-1029F 题意: a,b个小正方形构造一个矩形,大小为(a+b),并且要求其中要么a个小正方形是矩形,要么b个小正方形是矩形. 思路: 之前在想要分a,b是否为奇数讨论,后来发现根本不需要.只 ...
- 18牛客多校训练第二场 J farm
题意:一个n×m的农田, 每个小格子都有一种作物, 现在喷t次农药,每次农药覆盖一个矩形, 该矩形里面与农药类型不同的植物都会死掉, 求最后植物的死亡数是多少. 题解:二维树状数组. 每次喷农药的时候 ...
- CodeForces 760 C. Pavel and barbecue(dfs+思维)
题目链接:http://codeforces.com/contest/760/problem/C 题意:一共有N个烤炉,有N个烤串,一开始正面朝上放在N个位子上.一秒之后,在位子i的串串会移动到pi位 ...