JDBC:

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

      使用Eclipse来操作数据库有六个步骤:

      1 加载驱动

      2 获取链接对象

      3 创建语句对象

      4 循环取得结果集

        5 再循环中数据类型转换

      6 关闭资源

      接下来做一些简单的JDBC代码实例

    注:下面的代码我用是throws Exception来抛出异常,会使结构不太严谨,因为是初学,所有没有贴出严谨结构的代码,会在最后补充。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException; public class JDBC { public static void main(String[] args) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
//产生JDBC Driver对象,三种方法
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
new oracle.jdbc.driver.OracleDriver();
Class.forName("oracle.jdbc.driver.OracleDriver");//这个Driver的实例化在构建过程中会自动向DriverManager自动注册
//连接数据库
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","c##scott","root");//拿到数据库的链接 //创建语句对象statement,作用:调用方法向数据库传递SQL语句,并接受数据库返回的结果集
java.sql.Statement sts = conn.createStatement();
ResultSet rs = sts.executeQuery("select * from a_tab"); //在第一条记录的前一位,
rs.next(); //循环取得结果集 while (rs.next()) {
//转化数据类型
System.out.print(rs.getInt("id") + " ");
System.out.print(rs.getString("name") + " ");
System.out.println(rs.getString("ad") + " ");
} //关闭资源
rs.close();
sts.close();
conn.close();
} }

循环取得结果集:

往数据库中添加数据:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement; public class JDBC_03{
public static void main(String[] args) throws Exception{
//1 加载驱动 就是实例化链接对象
Class.forName("oracle.jdbc.driver.OracleDriver");
//2 获取数据库的链接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "c##scott", "root");
//3 创建语句对象 传输语句并执行 还要接收返回的结果集
Statement ss = conn.createStatement();
String sql ="insert into a_tab values(123,'xiaoming','beijing')";
System.out.println(sql);
ss.execute(sql);
//6 关闭资源
ss.close();
conn.close();
}
}

换一种方法:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement; import oracle.jdbc.OracleDriver; public class JDBC_04 { public static void main(String[] args) throws SQLException{ if (args.length != ) {
System.out.println("请输入三个值");
System.exit(); }
int id = Integer.parseInt(args[]);
String name = args[];
String ad = args[]; //加载驱动
new OracleDriver();
//获取链接,
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "c##scott", "root");
//创建语句
Statement st = conn.createStatement();
String sql = "insert into a_tab values('"+ id + "','"+ name +"','"+ ad +"')";
System.out.println(sql);
st.executeUpdate(sql);
//关闭资源
st.close();
conn.close();
} }

使用batch来添加:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement; import oracle.jdbc.driver.OracleDriver; public class JDBC_06 { public static void main(String[] args) throws Exception{
//加载驱动
new OracleDriver();
//连接数据库
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "c##scott", "root");
//创建语句
Statement stmt = conn.createStatement();
stmt.addBatch("insert into a_tab values(10001,'hello0','addbatch')");
stmt.addBatch("insert into a_tab values(10001,'hello0','addbatch')");
stmt.addBatch("insert into a_tab values(10001,'hello0','addbatch')");
/*PreparedStatement st = conn.prepareStatement("insert into a_tab values(?,?,?)") ;
st.setInt(1, 123);
st.setString(2, "xiaoxiao");
st.setString(3, "beijing");
st.addBatch(); st.setInt(1, 120);
st.setString(2, "xiaoxiao");
st.setString(3, "beijing");
st.addBatch();
st.executeBatch();
*/
stmt.executeBatch(); //关闭
stmt.close();
conn.close(); } }

使用事务:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement; import oracle.jdbc.OracleDriver; public class JDBC_08 { public static void main(String[] args) throws Exception{
//加载驱动
new OracleDriver();
//链接对象
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","c##scott","root");
//传输对象
Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);//并发只读模式
//如果没有第一个参数 只能用resultset里面的next();
//有了这个参数 就能用所有方法
ResultSet rs = st.executeQuery("select * from a_tab");
rs.next();//从头顶进入第一行
System.out.println(rs.getInt());//第一行第一列
System.out.println(rs.getString());
System.out.println(rs.getString());
System.out.println(rs.getString());
System.out.println("----------------");
rs.last();
System.out.println(rs.getInt("id"));
System.out.println(rs.isLast() + "-----"); rs.absolute();
System.out.println(rs.getInt() + "absolute 2"); rs.previous();
System.out.println(rs.getInt() + "previous");
} }

最后来个集合,对数据的基本操作:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement; import oracle.jdbc.driver.OracleDriver;
import oracle.net.aso.s; public class JDBC_09 { public static void main(String[] args) throws Exception{
//加载驱动
new OracleDriver();
//链接对象
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","c##scott","root");
//传输对象
Statement sts = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);//并发可更新
//结果集对象
ResultSet rs = sts.executeQuery("select ID,NAME,AD from a_tab");
//结果处理
rs.next();
//增
rs.updateInt(, );//第一个字段,9999
rs.updateString("NAME", "aobama");
rs.updateString("AD", "baigong");
//rs.insertRow();//把这行插入结果集和数据库 rs.moveToCurrentRow();//把光标移动到新建的行 //删
rs.absolute();//移动到指定行
rs.deleteRow();//删除改行 //改
rs.updateString("NAME", "newyue");//更改内存中的数据集中的数据
rs.updateRow();//把更改的数据更新到数据库中
//关闭
rs.close();
sts.close();
conn.close(); } }

严谨代码(以后工作中要使用严谨的代码结构,否则会被老板骂死的):

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import org.omg.CORBA.COMM_FAILURE; /**
* try catch
* ClassNotFoundException SQLException
*
* oracle\product\12.1.0\dbhome_1\jdbc\lib 把这个目录下面的 ojdbc7.jar 拿到 当前项目中 --
* 简单使用jdbc 6步 :
* 1 加载驱动
* 2 获取链接/或者说链接数据库
* 3 创建语句对象 statement 作用:
* 4 循环取得结果集
* 5在循环结果集中数据类型进行转换
* 6 关闭资源
*/
public class JDBC_00_Decktop { public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
//<一> 产生JDBC driver对象 就是说 加载驱动 有三种方法
//1.1 forName句柄 加载文件 获取实例
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
//1.2 跟上面一样
//这个Driver实例在构建过程中会向DriverManager里面自动注册,不用自己管
Class.forName("oracle.jdbc.driver.OracleDriver");
//1.3 直接实例化
new oracle.jdbc.driver.OracleDriver(); //<二> 连接数据库 --- 就是通过DriverManager的获取链接方法 传过去三个函数,数据库路径 用户名 密码
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "system", "root"); //<三> 创建语句对象 Statement 作用:调用方法向数据库传递SQL语句,并接收返回的结果集。
stmt = conn.createStatement();
//----结果集怎么获取
rs = stmt.executeQuery("select * from c##scott.emp");//字符串内不用加分号
//rs 在第一条记录的上方
//rs.next();//返回的是boolean型
System.out.println("EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO"); //<四> 循环获取结果集
while (rs.next()) {
//<五> 在循环中把数据类型进行转换得到自己想要的数据类型(java对应的数据类型) 其实我们可以随意转换,只要不失去精度就可以
System.out.print(rs.getString("empno")+" ");
System.out.print(rs.getString("ename")+" ");
System.out.print(rs.getString("job")+" ");
System.out.print(rs.getInt("mgr")+" ");
System.out.print(rs.getString("hiredate")+" ");
System.out.print(rs.getInt("sal")+" ");
System.out.print(rs.getInt("comm")+" ");
System.out.println(rs.getInt("deptno")+" "); }
} catch (Exception e) {
e.printStackTrace();
}finally{
try{
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}catch (SQLException e2) {
e2.printStackTrace();
}
}
}
}

以上就是我在JDBC中的所学,望各位斧正!

JDBC(用Eclipse操作数据库Oracle)的基础操作集合的更多相关文章

  1. Oracle知识梳理(三)操作篇:SQL基础操作汇总

    Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:       CREATE TABLE  table_name ( col_ ...

  2. JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一

    系列博文: JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一 传送门 JavaWeb_(Mybatis框架)使用Mybatis对表进行增.删.改.查操作_ ...

  3. MySQL 数据库中的基础操作

    数据库中的表操作 1.创建表 表的表名命名规则: -- 数据库表命名规则重要说明: -- (1)数据库表名称可以支持大写字母A-Z,小写字母a-z,数字0-9,字符包括下划线 _ ,可以组合使用; - ...

  4. MongoDB:数据库介绍与基础操作

    二.部署在本地服务器 在上次的学习过程中,我们主要进行了MongoDB运行环境的搭建和可视化工具的安装.此次我们将学习MongoDB有关的基本概念和在adminmongo上的基本操作.该文档中的数据库 ...

  5. Oracle之基础操作

    sqlplus常用命令: 进入sqlplus模式:sqlplus /nolog 管理员登录: conn / as sysdba 登录本机的数据库 conn sys/123456 as sysdba 普 ...

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

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

  7. 菜鸡之NetCore 使用EF操作数据库 Oracle & Sqlserver (一)

    摘要: 该篇文章主要记录netCore EFCore 如何操作Oracle和SqlServer 数据库,采用Codefirst方式创建数据库以及表. 一, 项目建立 项目采用DDD领域驱动设计模式[学 ...

  8. oracle 之 基础操作

    //删除存在的表空间及数据 drop tablespace TS_YYGL including contents and datafiles 若是出现了提示 错误 导致无法全部删除,那么就执行以下语句 ...

  9. 数据库oracle行列的操作(MiTAC)

    1.两个重要的网址(参考): http://lovejuan1314.iteye.com/blog/413694http://www.cnblogs.com/heekui/archive/2009/0 ...

随机推荐

  1. HashMap解决hash冲突的方法

    HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置.当程序执行 map.put(String,Obect)方法 时,系统将调用String的 hashCode() 方法得到其 h ...

  2. [Angular 2] Directive intro and exportAs

    First, What is directive, what is the difference between component and directive. For my understandi ...

  3. 合并js文件minify实例

    将min目录放入项目中后,js中引入方式是: <script type="text/javascript" src="__PUBLIC__/min/?b=publi ...

  4. 《赢在用户:Web人物角色创建和应用实践指南》阅读总结

           本书针对创建人物角色的每一个步骤,包括进行定性.定量的用户研究,生成人物角色分类,使人物角色真实可信等进行了十分详细的介绍.而且,在人物角色如何指导总体商业策略.确定信息架构.内容和设计 ...

  5. MySQL join buffer使用

      原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://huanghualiang.blog.51cto.com/6782683/12 ...

  6. cocos2d-x3.2在xcode6.1下的 环境搭建

    由于最近需要给CP开发游戏SDK,顺便又重新接触了下cocos2d-x,自己曾在2011年的时候用过cocos2d-x早起的版本,现发现3.2版于原来的差距还是蛮大的,环境搭建流程如下: 1.xcod ...

  7. Centos自动登录系统并自动打开VNC Server

    系统自动登录 修改配置文件 sudo vim /etc/gdm/custom.conf 增加配置 [daemon] AutomaticLogin=spark AutomaticLoginEnable= ...

  8. Eclipse的java代码出错:The import org.apache cannot be resolved

    Eclipse中,折腾java代码. 把之前在android中的代码拿过来使用. 结果出现The import org.apache cannot be resolved的错误: [解决过程] 1.这 ...

  9. 视频-某hadoop高级应用-搜索提示

    看了北风的免费视频,只有一个案例,苦逼买不起几百上千的视频教程 先搭建简单的web项目,基于struts,使用到了bootstrap. 界面: web.xml <filter> <f ...

  10. 琐碎-关于hadoop2.X那些端口

    此文转载http://www.aboutyun.com/thread-7513-1-1.html Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访 ...