JDBC之一:JDBC快速入门
(1)下载Oracle的JDBC驱动,一般放在$ORACLE_HOME/jdbc/lib目录,关于驱动的版本请见:
http://elf8848.iteye.com/blog/811037
- 随Oracle 11.1发布的Oracle JDBC驱动11.1版本
ojdbc5.jar: 适用于jdk5
ojdbc6.jar: 适用于jdk6 (如果你使用jdk1.5,就不能使用这个驱动)
***_g.jar 只是用javac -g编译,生成所有调试信息,其它全一样
- ojdbc6.jar:支持JDK6,支持JDBC 4.0,新的java.sql.SQLXML类型没有被支持。
ojdbc5.jar:全面支持使用JDK5 和 JDBC 3.0 。
- 建议使用oracle.jdbc.OracleDriver类,不建议使用oracle.jdbc.driver.OracleDriver。从9.0.1开始的每个release都推荐使用oracle.jdbc。
- j2se1.2,1.3,1.4不再支持。11R1不再包括这些版本的jar和zip,如果仍然使用这些版本,可以继续使用10gR2的jdbc。
(2)使用Eclipse EE创建一个Dynamics Web Project,并将ojdbc6.jar放入WebContent/WEB-INF/lib目录下。
(3)写Dao接口
package com.ljh.irms2.dao;
import java.sql.Connection;
public interface DbHelper {
public Connection getDbConnection();
}
(4)实现Dao类
package com.ljh.irms2.dao.impl; import java.sql.Connection;
import java.sql.DriverManager; import com.ljh.irms2.dao.DbHelper; public class DbHelperImpl implementsDbHelper { privatefinal static String URL ="jdbc:oracle:thin:@192.168.0.1:1521:irmsdc2";
privatefinal static String USERNAME = "NFJD_DC_XZ";
privatefinal static String PASSWORD = "NFJD_DC_XZ"; @Override
publicConnection getDbConnection() {
Connectionconn = null;
try{
//注册JDBC驱动程序
Class.forName("oracle.jdbc.OracleDriver");
//打开一个数据库连接
conn= DriverManager.getConnection(URL, USERNAME, PASSWORD);
}catch (Exception e) {
e.printStackTrace();
}
returnconn; } }
(5)使用数据库连接对数据进行增删查改
package com.ljh.irms2.dao.impl.test; import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import com.ljh.irms2.dao.impl.DbHelperImpl; import org.junit.Test; public class DbHelperImplTest { @Test
publicvoid test() {
//(1)使用获取到的数据库连接
DbHelperImplhelper = new DbHelperImpl();
Connectionconn = helper.getDbConnection(); //(2)从数据库连接中创建一个statement对象,然后通过些对象执行语句,并获取结果集。
Statementstmt = null;
ResultSetrs = null;
Stringsql = "SELECT * FROM user_tables"; try{
stmt= conn.createStatement();
rs= stmt.executeQuery(sql);
while(rs.next()){
System.out.print(rs.getString("table_name")+"\n");
}
//(3)关闭资源
rs.close();
stmt.close();
conn.close(); }catch (SQLException e) {
e.printStackTrace();
}
}
}
关键步骤有:
(1)注册JDBC驱动程序
Class.forName("oracle.jdbc.OracleDriver");
(2)打开一个数据库连接
conn = DriverManager.getConnection(URL,USERNAME, PASSWORD);
(3)从数据库连接中创建一个statement对象,然后通过些对象执行语句,并获取结果集。
Statementstmt = null;
ResultSetrs = null;
Stringsql = "SELECT * FROM user_tables";
try{
stmt= conn.createStatement();
rs= stmt.executeQuery(sql);
(4)对结果集进行处理
while(rs.next()){
System.out.print(rs.getString("table_name")+"\n");
}
(5)关闭资源
rs.close();
stmt.close();
conn.close();
JDBC之一:JDBC快速入门的更多相关文章
- 01.JDBC操作数据库-快速入门操作
/** * 简单入门操作 * 注:先将mysql-connector-java-5.1.36.jar 构建 Build Path环境当中去 * @param args * @throws Except ...
- day39-Spring 12-Spring的JDBC模板:快速入门
Spring AOP的关键是它的底层的原理和思想,配置和使用并不是十分困难.AOP本身就是一个思想,是面向对象的延伸,不是用来替换面向对象的,而是用来解决面向对象中的一些问题的.在最初的时候提出过一个 ...
- Java学习:JDBC快速入门
本节类容 JDBC基本概念 快速入门 JDBC基本概念 概念: Java DataBase Connectivity Java 数据库连接,Java语言操作数据库 JDBC本质: 其实是官方(sun公 ...
- JDBC快速入门
/** * JDBC快速入门: * 1.导入jar包 数据库驱动 * 2.注册驱动 * 3.获取数据库连接对象 Connection * 4.定义sql语句 * 5.获取发送执行sql语句的对象 St ...
- 一个简单程序快速入门JDBC
首先创建jdbc的库,再在这个库里面创建一张users表. drop database if exists jdbc; create database if not exists jdbc; use ...
- Java学习笔记36(jdbc快速入门)
JDBC: Java DataBase Connectivity 是java程序连接存取数据库的应用程序接口 (是sun公司的程序员定义的一套操作数据库的规则,然后下面的各个公司如:mysql,sql ...
- JDBC基础:JDBC快速入门,JDBC工具类,SQL注入攻击,JDBC管理事务
JDBC基础 重难点梳理 一.JDBC快速入门 1.jdbc的概念 JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以 ...
- Mybatis框架 的快速入门
MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...
- MyBatis学习总结(一)——MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
随机推荐
- 我的第一个QML Button的实现
编写第一个QML,在成功跑完HelloWorld后,决定自己实现Button按钮类. Button是在Quick2版本以上的QtQuick Controls出现的. 在Qt5.5.1版本中,选择插入Q ...
- 编译安装hph
一.安装相关的依赖: yum -y install gcc gcc-c++ bzip2-devel libjpeg-devel libpng-devel freetype-devel libxml2- ...
- OSA-MAC: A MAC Protocol for Opportunistic Spectrum Access in Cognitive Radio Networks
This full text paper was peer reviewed at the direction of IEEE Communications Society subject matte ...
- QT---线程间通信(要先编译libqt-mt.so?)
在 Qt 系统中,运行着一个GUI 主事件线程,这个主线程从窗口系统中获取事件,并将它们分发到各个组件去处理.在 QThread 类中有一种从非主事件线程中将事件提交给一个对象的方法,也就是 QThr ...
- Css 小技巧总结
相对偏移 指定left top等属性就能够够完美控制一个元素的位置 如: position:relative; left:2px; 今天遇到一个很好玩的问题,当两个并排浮动框,当一个框的长度太大时就会 ...
- tar解压错误
# tar -zxvf aaa.tar.gz tar: This does not look like a tar archive tar: Skipping to next header ...
- UVA_Cubic Eight-Puzzle UVA 1604
Let's play a puzzle using eight cubes placed on a 3 x 3 board leaving one empty square.Faces of cube ...
- UESTC_Judgment Day CDOJ 11
Today is the judgment day. The world is ending and all man will pay for their guilt and sin. Now the ...
- 关于#ifndef,#define,#end的说明
#ifndef,#define,#end 是宏定义的一种---条件编译 这样我直接举个例子好了:我定义两个相同的类A分别在single.h和singlenew.h single.h: #include ...
- FZU1862(线段树 或者 DP)
Problem 1862 QueryProblem Accept: 100 Submit: 249Time Limit: 2000 mSec Memory Limit : 32768 KB ...