java APIs for database ------JDBC

# JDBC
# Study Note of JAVA Tutorial
# victor
# 2016.05.27

JDBC helps you to write Java applications that manage these three programming activities:

  1. Connect to a data source, like a database
  2. end queries and update statements to the database
  3. etrieve and process the results received from the database in answer to your query

package myjdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

// connect to oracle database
public class dbsession {

    private Connection con = null;
    private PreparedStatement pstmt = null;
    private String dburl = null;
    private String username = null;
    private String password = null;

    public dbsession(String url,String user,String pass){
        dburl = url;
        username = user;
        password = pass;
    }

    private boolean getdbconnection(){
        try {
            //初始化驱动包
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //根据数据库连接字符,名称,密码给 connection 赋值
            con = DriverManager.getConnection(dburl, username, password);
            return true;
        } catch (Exception e) {
        e.printStackTrace();
        setIs_exception(true);
        setEx(e);
        return false;
        }
    }

    private boolean getpreparestatement(String sql){
        try {
            //处理 SQL 语句
            pstmt = con.prepareStatement(sql);
            return true;
        } catch (SQLException e) {
            e.printStackTrace();
            setIs_exception(true);
            setEx(e);
            return false;
        }
    }

    public void execute(String sql){
        if (getdbconnection()){
            sql = sql.toUpperCase();
            System.out.println("execute SQL :: "+sql);
            if(getpreparestatement(sql)){
                if (sql.startsWith("SELECT")){
                    try {
                        ResultSet res = pstmt.executeQuery();
                        setIs_select(true);
                        setResultset(res);
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        setIs_exception(true);
                        setEx(e);
                    }
                }
                else if(sql.startsWith("INSERT") || sql.startsWith("UPDATE")|| sql.startsWith("DELETE")){
                    try {
                        Integer count = pstmt.executeUpdate();
                        setIs_update(true);
                        setCount(count);
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        setIs_exception(true);
                        setEx(e);
                    }
                }
                else{
                    setIs_exception(true);
                    setEx(new Exception("other functions are not supported in class dbsession"));
                }
            }
            else{
                System.out.println("prepare sql statement exception!");
            }
        }
        else{
            System.out.println("connect oracle database exception!");
        }
    }

    public void printexception(){
        System.out.println("dbsession::"+getEx());
    }

    public void printresult() throws SQLException{
        if (isIs_update()){
            System.out.println("update database: "+getCount()+" rows");
        } else if(isIs_select()){
            ResultSetMetaData rsmd = resultset.getMetaData();
            int columnsNumber = rsmd.getColumnCount();
            int rownumber =0;
            //遍历 ResultSet
            while(resultset.next()){
                rownumber ++;
                for(int i = 1;i <= columnsNumber;i++){
                System.out.println("row->"+rownumber+", column->"+i+", selected value is:"+resultset.getString(i));
                }
            }
        }
    }

    private boolean is_exception = false;
    private boolean is_update = false;
    private boolean is_select = false;

    private Exception ex = null;
    private Integer count = null;
    private ResultSet resultset = null;

    public boolean is_exception_occured() {
        return is_exception;
    }
    private void setIs_exception(boolean is_exception) {
        this.is_exception = is_exception;
    }
    public boolean isIs_update() {
        return is_update;
    }
    private void setIs_update(boolean is_update) {
        this.is_update = is_update;
    }
    public boolean isIs_select() {
        return is_select;
    }
    private void setIs_select(boolean is_select) {
        this.is_select = is_select;
    }
    public Exception getEx() {
        return ex;
    }
    private void setEx(Exception ex) {
        this.ex = ex;
    }
    public Integer getCount() {
        return count;
    }
    private void setCount(Integer count) {
        this.count = count;
    }
    public ResultSet getResultset() {
        return resultset;
    }
    private void setResultset(ResultSet resultset) {
        this.resultset = resultset;
    }

    public void close(){
        try {
            if (!(resultset.isClosed())){
                resultset.close();
            }
            if (!(pstmt.isClosed())){
                pstmt.close();
            }
            if (!(con.isClosed())){
                con.close();
            }
            System.out.println("session close successfully!");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

TEST CODE:

package myjdbc;

import java.sql.SQLException;

public class Jdbc_Test {

    public static void main(String[] args) throws SQLException {
        // TODO Auto-generated method stub
        dbsession db = new dbsession("jdbc:oracle:thin:@localhost:1522/xe","victor","123");
        db.execute("select sysdate from dual");
        if (db.is_exception_occured()){
            db.printexception();
        }
        else{
            db.printresult();
        }
        db.close();
    }

}

OUTPUT:

execute SQL :: SELECT SYSDATE FROM DUAL
row->1, column->1, selected value is:2016-05-27 17:16:03.0
session close successfully!

时间: 2024-10-05 23:25:23

java APIs for database ------JDBC的相关文章

Java DataBase(JDBC)

A brief review of Database Database (DB): an organised collection of data Relational DBs (first published by Edgar F. Codd (IBM) in 1970) store data in: tables A table in a database consists of: rows & columns Rows: records Columns: attributes of the

Java数据库编程之JDBC增删查改

前言 众多的ORM框架使我们从原生的JDBC编码摆脱出来,但在学习数据库编程之初,应该先掌握底层的JDBC编程,熟练应用后,学起框架才会更得心应手.就像金庸笔下的武侠人物,只要内功深厚,再去学习其他武功绝学,只不过是招式罢了.正所谓,温故而知新,本文回顾了最基础的JDBC增删查改操作. 连接数据库 在之前一篇随笔讲过如何连接数据库——<Java数据库编程之JDBC配置>. 数据库连接工具类 DBConnection package database; import java.sql.*; im

Java之十五 JDBC编程

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事.换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用.同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言"编写一次,处处运行"的优势. Java数

Java基础教程:JDBC编程

Java基础教程:JDBC编程 快速开始 什么是JDBC JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库. JDBC API 库包含下面提到的每个任务,都是与数据库相关的常用用法. 制作到数据库的连接. 创建 SQL 或 MySQL 语句. 执行 SQL 或 MySQL 查询数据库. 查看和修改所产生的记录. 从根本上来说,JDBC 是一种规范,它提供了一套完整的接口,允许便携式访问到底层数据库,因此可以用 J

好程序员Java学习路线分享JDBC初体验

好程序员Java学习路线分享JDBC初体验,JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序 -?Java 具有坚固.安全.易于使用.易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言.所需要的只是 Java应用程序与各种不同数据库之

Java应用程序连接数据库--JDBC基础

Java应用程序连接数据库--JDBC基础 Java应用程序连接数据库–JDBC基础 <!-- MySQL驱动,连接数据库用,由数据库厂商提供 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.25</version> </dependency> &

java 操作hive通过jdbc

直接代码吧:记得要开启hive jdbc服务hive --service hiveserver package hive; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class HiveDemo { static{ //注册jdbc驱动 try { Class.forName("org.apache.

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法 (2011-05-05 16:08:05) 转载▼ 标签: 杂谈 分类: Oracle 出现这个问题,主要是驱动包没放到项目里,解决办法如下: 1.找到oracle里的jdbc\lib: 2.设置系统的 classpath 为 ojdbc14.jar.class12.jar: 3.把这两个jar拷贝到你的项目里的 \WEB-INF\lib 下: 4.

java.lang.UnsupportedOperationException: Database is locked

今天在部署jira系统的时候报错: java.lang.UnsupportedOperationException: Database is locked 原因分析:造成这个错误的原因有很多,如果你是在安装一个新的数据库,那么有可能是entityengine.xml配置错误引起的,也有可能是你的数据库需要修复,也就是说你的数据库出了问题. 解决方法: 必须要删除这个三个:remove three things-- .jira-home.lock .bundled-plugins/ and .os