美文网首页饥人谷技术博客
JDBC编程:JDBC原理和基础编程

JDBC编程:JDBC原理和基础编程

作者: _Jun | 来源:发表于2020-12-03 14:03 被阅读0次

什么是JDBC:

JDBC(Java DataBase Connectivity)就是Java数据库连接,简单说就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。

JDBC

特点:

1)跨平台运行:这是继承了Java语言的“一次编译,到处运行”的特点;
2)不受数据库供应商的限制:巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过SQL调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互;

常用接口:

1)Driver接口:
Driver接口由数据库厂家提供,作为java开发人员,只需要使用Driver接口就可以了。

2)Connection接口:
Connection与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果。

常用方法:

createStatement():创建向数据库发送sql的statement对象。
prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。
prepareCall(sql):创建执行存储过程的callableStatement对象。
setAutoCommit(boolean autoCommit):设置事务是否自动提交。
commit() :在链接上提交事务。
rollback() :在此链接上回滚事务。

3)Statement接口:
用于执行静态SQL语句并返回它所生成结果的对象。

三种Statement类:

Statement:由createStatement创建,用于发送简单的SQL语句(不带参数)。
PreparedStatement :继承自Statement接口,由preparedStatement创建,用于发送含有一个或多个参数的SQL语句。
CallableStatement:继承自PreparedStatement接口,由方法prepareCall创建,用于调用存储过程。

常用Statement方法:

execute(String sql):运行语句,返回是否有结果集
executeQuery(String sql):运行select语句,执行查询操作,返回ResultSet结果集。
executeUpdate(String sql):运行insert/update/delete语句,执行更新操作。
addBatch(String sql) :把多条sql语句放到一个批处理中。
executeBatch():向数据库发送一批sql语句执行。

4)ResultSet接口:
执行sql查询语句返回的结果集。

ResultSet提供检索不同类型字段的方法:

getString(int index)、getString(String columnName):获得在数据库里是varchar、char等类型的数据对象。
getFloat(int index)、getFloat(String columnName):获得在数据库里是Float类型的数据对象。
getDate(int index)、getDate(String columnName):获得在数据库里是Date类型的数据。
getBoolean(int index)、getBoolean(String columnName):获得在数据库里是Boolean类型的数据。
getObject(int index)、getObject(String columnName):获取在数据库里任意类型的数据。

ResultSet对结果集进行滚动的方法:

next():移动到下一行
Previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面。
【使用后依次关闭对象及连接:ResultSet → Statement → Connection】

编程步骤:

1)加载驱动程序;

Class.forName(driverClass)
//加载MySql驱动
Class.forName("com.mysql.jdbc.Driver")
//加载Oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver")

2)获取数据连接:通过DriverManager类创建数据库连接对象Connection;

 Connection conn = DriverManager.getConnection(url, user,password);

3)创建Statement对象:

 Statement stmt = conn.createStatement();

4)调用Statement对象的相关方法执行相对应的 SQL 语句:通过execuUpdate()方法用来数据的更新,包括插入和删除等操作;

5)关闭数据库连接:使用完数据库或者不需要访问数据库时,通过Connection的close() 方法及时关闭数据连接;

例:

获取连接数据库资源

private static ResourceBundle bundle= ResourceBundle.getBundle("connect");//资源包
private static String driver= bundle.getString("driver");//驱动程序
private static String url=bundle.getString("url"); //数据库连接地址
private static String user=bundle.getString("user");//用户名称
private static String password=bundle.getString("password");//用户密码</pre>

创建连接

public Connection getConn() {
        try {
            Class.forName(driver);//加载驱动
            Connection conn;
            conn=DriverManager.getConnection(url, user, password);//创建连接
            return conn;
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

执行方法

public void Update(String sql, ArrayList<String> parameters) {
    Connection connection = getConn();//获取连接
    PreparedStatement ps = null;//初始化陈述清单
    try {
        connection.setAutoCommit(false);// 更改JDBC事务的默认提交方式,默认是true,是自动提交;
        ps = connection.prepareStatement(sql);//设置sql语句 
        
        for (int i = 0; i < parameters.size(); i++) {
        ps.setString(i + 1, parameters.get(i));//设置参数
        }
        ps.executeUpdate();
        connection.commit();//提交JDBC事务,如果没问题,这时才真正的删除了;
        connection.setAutoCommit(true);// 恢复JDBC事务的默认提交方式;
                                        
    } catch (SQLException e) {
        try {
             //回滚JDBC事务,出现异常,为保证数据完整性,此次操作回滚,不删除;
            connection.rollback();
        } catch (SQLException e1) {
        e1.printStackTrace();
        }
        e.printStackTrace();
    }finally{
                    
        try {                                     
            //关闭资源
            ps.close();connection.close();
        } catch (SQLException e) {e.printStackTrace(); }}}

相关文章

  • JDBC编程目录

    JDBC编程目录 SQL基础JDBC基础JDBC进阶

  • JDBC编程:JDBC原理和基础编程

    什么是JDBC: JDBC(Java DataBase Connectivity)就是Java数据库连接,简单说就...

  • JDBC编程一一jdbc原理和基础编程

    JDBC 什么是JDBC Java Database Connectivity:Java访问数据库的解决方案。JD...

  • Hibernate与jdbc优缺点

    基础部分: jdbc缺点:1、编程的时候很繁琐,用的try和catch比较多2、jdbc没有做数据的缓存,// 内...

  • JDBC基础编程

    通过属性文件维护连接属性 后缀是.properties的文本文件,通常该文件中尽量避免使用中文。文件中若含有中文,...

  • 第一章 简介

    1.1 The JDBC API jdbctm API提供了从JavaTM编程语言编程访问关系型数据。使用JDBC...

  • Java数据库连接——JDBC编程

    本文概述 本篇文章将分四块内容对JDBC编程进行介绍:一. JDBC编程概述二. JDBC开发步骤三. 工具类撰写...

  • JDBC编程:JDBC高级编程

    事物处理 批量更新 返回自动主键 DAO 1,事物处理 什么是事物? 事务(Transaction):数据库中保证...

  • web开发日记-JDBC

    有点高产了。。。 ps:必须在工程依赖中添加mysql-jdbc.jar的包。 基础操作 增删改查 JDBC编程之...

  • JAVA技术知识体系

    java基础 java虚拟机 集合框架 网络编程-Socket 并发编程-Thread io 数据库操作-JDBC...

网友评论

    本文标题:JDBC编程:JDBC原理和基础编程

    本文链接:https://www.haomeiwen.com/subject/xrsmwktx.html