pt1:首先安装oracle连接驱动
下载地址:https://pan.baidu.com/s/1jW_ofgU4eJmAn7Y2J5B46A  密码:epkz 1.将ojdbc6.jar导入项目中    先创建一个项目,然后在鼠标移到项目上右键-->new-->folder;folder name:lib;这样就在项目中创建了一个文件夹lib;然后将ojdbc6.jar包导入该文件夹中    2.Reference Library包右键-->build path-->add extend 导入jar包apply and save;   package Db;
import java.sql.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.HashMap;  
import java.util.Map; import org.openqa.selenium.remote.server.handler.DeleteCookie; import bsh.This;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class OrcTest {
    String url;
    String user;
    String pwd;
    String sql;
    Connection connect;// 创建一个数据库连接
    PreparedStatement pre ;// 创建预编译语句对象,一般都是用这个而不用Statement
    ResultSet result;     public OrcTest(String url,String user,String pwd){
        
        this.url=url;
        this.user=user;
        this.pwd=pwd;
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            this.connect=DriverManager.getConnection(this.url, this.user, this.pwd);
        }catch (Exception e) {
            System.out.println("连接数据驱动失败");
            e.printStackTrace();
            
        }
    }
    public void CloseDb(){
        try {
            if(this.pre !=null) {
                this.pre.close();
                System.out.println("关闭事物");
            }
            if(this.result !=null) {
                this.result.close();
                System.out.println("关闭结果对象");
            }
            if(this.connect !=null) {
                this.connect.close();
                System.out.println("关闭连接");
            }
        }catch (Exception e) {
                e.printStackTrace();
            }
    }
    
    // exe_select
    public ArrayList<Object> exeselect(String sql) {
        ArrayList<Object> list =new ArrayList<Object>();
        try {
        this.pre=this.connect.prepareStatement(sql);
        this.result = this.pre.executeQuery();
        ResultSetMetaData rsmd=null;
        int count=0;
        
        rsmd = this.result.getMetaData(); 
        count=rsmd.getColumnCount();
        while(this.result.next()) {
            Map<String, Object> map = new HashMap<String, Object>();  
            for (int i = 1; i <= count; i++) {  
                map.put(rsmd.getColumnLabel(i),this.result.getObject(i));  
            }
            JSONObject json = JSONObject.fromObject(map);
            list.add(json.toString());
          
                                }
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            
            this.CloseDb();
            
        }
        return list;
    }
    
    //delete and update and insert
    public boolean DeleteOrUpdateInsert(String sql) {
        boolean bool;
        try {
        this.pre=this.connect.prepareStatement(sql);
        this.pre.executeUpdate();
        System.out.println("操作成功!!!!!!");
        bool =true;
        }catch (Exception e) {
            bool=false;
            e.printStackTrace();
        }finally {
            this.CloseDb();
        }
        return bool;
    }
    public static void main(String[] args){
        String url="jdbc:oracle:thin:@localhost:1521/orcl";
        String user="SCOTT";
        String pwd="pipeline";
//        String sql="select * from bonus";
        OrcTest ob= new OrcTest(url, user, pwd);
//        System.out.println(ob.exeselect(sql));
//        System.out.println(ob.connect);
        System.out.println(ob.DeleteOrUpdateInsert("insert into bonus(ENAME,JOB,SAL,COMM)VALUES('del','job_del',122,3)"));     }    
    
    
} ============================输出如下: 操作成功!!!!!!
关闭事物
关闭连接
true
============== 关闭事物
关闭结果对象
关闭连接
[{"ENAME":"cdp","COMM":1,"JOB":"jod_1234","SAL":1254}, {"ENAME":"cdp3","COMM":2,"JOB":"job003","SAL":1333}, {"ENAME":"cdp4","COMM":2,"JOB":"job004","SAL":1444}, {"ENAME":"cdp1","COMM":2,"JOB":"job222","SAL":1235}]
oracle.jdbc.driver.T4CConnection@533e64
json转换java 需要全jar包下载git地址  https://github.com/chen1932390299/pyscripts.git

  

Java 数据库操作oracle增删改查,通用封装基于hashmap的更多相关文章

  1. Linq 数据库操作(增删改查)

    Linq数据库增删改查 Linq是一种查询语言,集成包含在formwork中,包含在C#语言中,它的作用是降低查询的门槛,提高开发效率,是我们必须掌握的技术之一,下面是我自己对linq数据库操作的方法 ...

  2. spring boot快速入门 4: jpa数据库操作 实现增删改查

    spring boot jpa逆向生成表 简单实例: 第一步:pom文件: <?xml version="1.0" encoding="UTF-8"?&g ...

  3. 初次尝试PHP——一个简单的对数据库操作的增删改查例子

    第一次学习PHP,很多人说PHP是最好的语言,学习了一点点,还不敢说这样的话,不过确实蛮好用的. 做了一个简单的对数据库的增删改查的操作,主要是将四种操作写成了独立的函数,之后直接调用函数.以下是代码 ...

  4. iOS sqlite 增删改查 简单封装(基于 FMDB)

    /** *  对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查 * *  基于 FMDB * *  操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整 ...

  5. MySQL数据库操作:“增删改查”,忘记密码重置等。

    [注] 数据库的“增删查改”,参考原作者Wid:http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#d11.感谢大佬们的技术分享 ...

  6. flask 数据库操作(增删改查)

    数据库操作 现在我们创建了模型,生成了数据库和表,下面来学习常用的数据库操作,数据库操作主要是CRUD,即Create(创建).Read(读取/查询).Update(更新)和Delete(删除). S ...

  7. ThinkPHP 数据库操作(二) : 增删改查

    基本使用 可以直接使用数据库运行原生SQL操作了,支持 query (查询操作)和 execute (写入操作)方法,并且支持参数绑定. Db::query('select * from think_ ...

  8. php单例模式封装数据库操作类增删改查

    <?php//三私一公 单例class Db{ //数据库连接对象 private static $instance; private static $table_name; private $ ...

  9. laravel中的数据库操作(增删改查)方法一

    导入命名空间和DBnamespace App\Http\Controllers; use Illuminate\Support\Facades\DB; public function index(){ ...

随机推荐

  1. JDBC入门(5)--- 时间类型、大数据

    一.时间类型 数据库类型与Java中类型的对应关系: DATE->java.sql.Date:表示日期,只有年月日,没有时分秒,会丢失时间. TIME->java.sql.Time:表示时 ...

  2. 几个css3动画库

    Hover.css 查看演示: http://ianlunn.github.io/Hover/ github地址: https://github.com/IanLunn/Hover Animate.c ...

  3. Java与C++区别:重载(Overloading)

    Java中一个类的函数重载可以在本类中的函数和来自父类中的函数之间进行,而C++类中的函数重载只能是本类中的(即不包括来自父类的函数),这是他们一个非常重要的区别.在其他方面的要求都是一致的,即要求函 ...

  4. MySQL Metadata

    http://www.devart.com/dotconnect/mysql/docs/MetaData.html In this overload first parameter is name o ...

  5. Spring MVC基本配置和实现(三)

    Item public class Item { private Integer id; private String name; public Integer getId() { return id ...

  6. WCF--找不到具有绑定 BasicHttpBinding 的终结点的与方案 https 匹配的基址。注册的基址方案是 [http]。

    <system.serviceModel> <services> <service name="xxxxx.xxxxxx"> <endpo ...

  7. 关于serialVersionUID与序列化"

    java序列化trick and trap 厂内经常出现序列化对象版本不匹配问题,于是发本文说明一些序列化的注意点 调用MQ.memcached.rpc等等涉及到远程通讯的都会经过序列化,虽然客户端透 ...

  8. ZOJ Problem Set – 2321 Filling Out the Team

    Time Limit: 2 Seconds      Memory Limit: 65536 KB Over the years, the people of the great city of Pi ...

  9. MySQL 8.0.2复制新特性(翻译)

    译者:知数堂星耀队 MySQL 8.0.2复制新特性 MySQL 8 正在变得原来越好,而且这也在我们MySQL复制研发团队引起了一阵热潮.我们一直致力于全面提升MySQL复制,通过引入新的和一些有趣 ...

  10. Python实例---基于页面的后台管理[简单版]

    后台管理菜单 + 母板[css/content/js] 向后台提交数据[2种]:       1.  模态对话框(数据少操作,且Js复杂):        form表单 :优点:简单,前端提交后后台处 ...