java系列--JDBC连接oracle
《oracle开发实战经典》《oracle DBA从入门到精通》
JDBC连接数据库
JNDI连接池
oracle.jdbc.driver.OracleDriver 其实就是一个包下的类
URL地址格式:jdbc(协议名): 数据库类型(子协议名):\\数据库IP地址:端口号:数据库名
1)oracle
2)mysql
java.sql.DriverManager类:管理一组 JDBC 驱动程序的基本服务。
getConnection(String url, String user, String passqord)
如果封装的话,用到java.util.Properties对象的load( )方法和getProperty( )方法,java.lang.Class类的getResourceAsStream( )方法
java.sql.Statement接口:用于执行静态 SQL 语句并返回它所生成结果的对象。
在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。
statement接口用来装载sql语句的两个方法:
---executeUpdate 主要用于增删改查
---executeQuery(sql) 主要用于查询语句,执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。
StringBuffer
StringBuilder: 将 StringBuilder 的实例用于多个线程是不安全的。在 StringBuilder 上的主要操作是 append 和 insert 方法
3、写sql语句规范:必须使用StringBuilder存储,每一个关键字单独占一行,每一行左右要敲空格 ---工作中可以使用excel表格制作
4、接口 ResultSet ---表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
结果集的分类:是否可以滚动,是否可以更新
结果集类型的设置:
createStatement(int resultSetType, int resultSetConcurrency,int resultSetHoldability)throws SQLException
结果集中游标移动的方法:
数据类型对应:
Oracle Java
Number(4) int/long
Number(4,2) double
Char/VarChar2 String
Date java.sql.Date
步骤:1、 加载驱动对象 Class.forName(" ");该方法是一个静态方法,同时它可能抛出异常,所有需要写在try-catch语句块中
2、建立连接 使用java.sql中的Connection接口来声明一个对象,再使用DriverManager类的静态方法getConnection创建连接对象
try {
if(connection == null || connection.isClosed()){
Class.forName("oracle.jdbc.driver.OracleDriver"); //反射检查驱动包是否存在,此处可以使用Properties配置
connection = DriverManager.getConnection("jdbc:oracle:thin:@PC-201510220952:1521:orcl","aa","aa"); //获得connection
}
} catch (ClassNotFoundException e) {
Log.logger.error(e.getMessage() + "---请检查数据库连接的jar包");
}catch (SQLException e){
Log.logger.error(e.getMessage() + "--- 请检查url和用户名、密码");
}
3、关闭数据库连接 实际项目中会出现”连接泄漏“,所有一般将close写在try-catch-finally的finally语句中,保证即便发生异常,也可以关闭数据库
添加jar包步骤:
1)、jdbc驱动包:用于连接oracle,是有oracle自身提供,目录 D:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib下ojdbc6.jar--将驱动包复制到项目的lib文件夹下
2)、右键项目名称--Build path-- configure build path--Java Build Path--Libraries--Add JARs--选择项目lib文件夹下的ojdbc6.jar
简便操作:点击ojdbc6.jar -- 右键 -- Add Build Path to...
MyEclipse DataBase Explorer -- MyEclipse Derby --右键新建--Database Driver完整配置--Test Driver是否成功--拷贝Connection URL到记事本--同时拷贝Driver ClassName到记事本
java.sql 接口 Connection ---特定数据库的连接(会话,session)默认情况下,Connection 对象处于自动提交模式下,这意味着它在执行每个语句后都会自动提交更改。
数据库connection的使用原则:
晚打开,早关闭 ---目的是节省资源
1、数据库的connection的打开、关闭,比简单的SQL执行,要更耗费性能
2、数据库的connection。是企业级工程的最宝贵资源---数据操作的瓶颈通常在connection获取上
每一个交易一个connection
交易 ---泛称:biz或service类中的每一个public方法 (很多业务逻辑写在biz)
---用户注册示例: 1、画业务流程图 ------A、用户名是否被占用
B、身份证ID是否有效 通过web service
C、手机校验
D、密码校验
E、密码加密
F、邮箱校验
2、数据的openConnection()在需要的时候打开
3、在biz方法结束的时候关闭Connection
4、注意:transaction的处理在biz的public方法
biz方法的主要职责: 1、业务流程控制
2、处理响应的业务逻辑
3、调用Dao方法,完成数据库操作
4、transaction处理
5、关闭非托管资源
oracle管理:
oracle user: 用于登录(需要赋权)
Connection:sun公司为了管理各种数据库,定义了java.sql接口
Session :oracle对客户端的管理(多线程,进程)
oo思想: SRP / OCP
核心思想:三层开发 ui -->> biz -->> dao 调用关系
1、一个ui的方法最好只调一个biz的public方法
2、一个biz的public方法可以调用多个dao的多个方法
实体:
entity -->> vo(value object) -->> pojo(plain old java object) -->> dto(data transfer object)
特点:没有方法,只有简单属性,用于数据传输
java系列--JDBC连接oracle的更多相关文章
- JAVA通过JDBC连接Oracle数据库详解【转载】
JAVA通过JDBC连接Oracle数据库详解 (2011-03-15 00:10:03) 转载▼http://blog.sina.com.cn/s/blog_61da86dd0100q27w.htm ...
- java使用jdbc连接oracle(其他数据库类似)
最基本的Oracle数据库连接代码: 1.右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\oracle\product ...
- java通过JDBC连接Oracle并调用存储过程和存储方法
初始配置:电脑安装oracle 11g(这里也可使是其它版本也可,此教程演示为11g),java环境,eclipse,oracle关于jdbc的jar包. 一,在scott用户下首先要有存储过程和存储 ...
- java中JDBC连接Oracle数据库
package com.xxxx.lunwen.test;import java.sql.*;public class DBUtil { static { try { // 加载Oracle驱动程序 ...
- Java使用JDBC连接Oracle数据库
import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; /** * @author liu ...
- Java通过JDBC连接Oracle之后查询结果和在sqlplus查询结果不一样
问题描述: 在sqlplus 下 orcl数据库中创建一张表后,使用insert语句插入几条数据 然后用java查询数据,发现在终端中输出的结果和在sqlplus中查询结果不一样. 在sqlplus中 ...
- JDBC连接ORACLE无法登陆java.sql.SQLException: ORA-01017: invalid username/password; logon denied
当用jdbc连接Oracle数据库的时候 private Connection getConnection() throws SQLException { OracleDataSource ods = ...
- jdbc连接oracle数据库
/*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...
- Linux(Centos)下jdbc连接oracle速度超慢的问题
最近在centos下写个java swing程序,发现在linux用jdbc连接oracle及其缓慢,还经常失败.但是同样的程序在windows下运行就连接的非常快.网上搜索了很长时间都和我这情况没关 ...
随机推荐
- debug经验汇总
(1)使用pstack (2)调试core文件 # gdb ./segment core (3)使用strace strace -tt -f -s 1234 -o /tmp/strace.cwc -p ...
- Logcat过滤及常见用法整理
Usage: logcat [options] [filterspecs] options include:-s Set default filter to silent. ...
- RTC-高效率实现TimerTicker编解码
源:RTC-高效率实现TimerTicker编解码 嵌入式系统中时间是很重要的,在以往的系统中设计者常常使用一种叫RTC的专用芯片来维持时间,这种芯片种类很多接口形式也很多,如常用的DS1302.PC ...
- [转]HTTPS连接的前几毫秒发生了什么
本文由 伯乐在线 - 水果泡腾片 翻译.未经许可,禁止转载!英文出处:JEFF MOSER.欢迎加入翻译小组. 提示:英文原文写于2009年,当时的Firefox和最新版的Firefox,界面也有很大 ...
- 用批处理文件删除n天前的文件
原文:http://blog.csdn.net/leehq/archive/2007/08/03/1723743.aspx 公司服务器用来备份数据的硬盘过段时间就会被备份文件占满,弄得我老是要登录到服 ...
- 新手常见的python报错及解决方案
此篇文章整理新手编写代码常见的一些错误,有些错误是粗心的错误,但对于新手而已,会折腾很长时间才搞定,所以在此总结下我遇到的一些问题.希望帮助到刚入门的朋友们.后续会不断补充. 目录 1.NameErr ...
- 解决Ubuntu系统中文乱码显示问题,终端打开文件及查看目录
解决Ubuntu系统中文乱码显示问题 [日期:2014-02-20] 来源:Linux社区 作者:njchenyi [字体:大 中 小] 我是先安装了Ubuntu 12.04 Server,然后 ...
- 设置自己Eclipse代码风格(内部)
经过这几次的代码提交,发现很多人的代码风格不够规范.个人认为很有必要强制性规定一下代码的规范. 整体来说,有三种代码风格,其中两种类似于这样的: public void function(){ //f ...
- IFeatureWorkspace OpenFeatureClass Example(转)
网络来源:http://changqingnew.blog.163.com/blog/static/1075233820103383633639/ //IFeatureWorkspace OpenFe ...
- php登录
if ($name && $passowrd){ $sql = "SELECT * FROM liuyanban WHERE name = '$name' and passw ...