JDBC中的接口及代码封装

简介: JDBC的接口都在:java.sql包下 java.sql.DriverManager(类)                                             java.sql.

JDBC的接口都在:java.sql包下


java.sql.DriverManager(类)

                                           


java.sql.Connection(数据库连接对象)

                                            connection.close(); :关闭Java如数据库的链接

                 connection.createStatement();

                 prepareStatement()创建sql预处理对象

                 prepareCall()创建存储过程处理对象

java.sql.Statement(sql执行对象)

                                           executeUpdate(String) 返回 int(所影响函数) 执行 insert update delete

                                           executeQuery(String)  ResultSet   执行 select 返回查询结果  结果就包装在 ResultSet(接口内)

                                           批处理多条sql 

                                           addBatch(String) 添加 insert update delete

                                           executeBatch() int[]

java.sql.PreparedStatement(SQL预处理)


java.sql.ResultSet(记录集对象)


java.sql.ResultSetMetaData(查询出来的表结构)


java.sql.CallableStatement(调用存储过程)


DataSource  (数据库源 javax.sql)数据员:javax.sql.DataSource


DriverManager创建了Connection对象  Connection创建了接口

Statement接收Connection来实现sql语句


网页验证 ——逻辑运算——准备数据库申请sql———数据库

61020c6db97eba0a04b6501ccabb2b4e7b13648d


sql查询

            ResultSet方法中的resultSet.next()方法查询 

     用while循环 因为while循环比较适合不知道次数的循环

     查询:举例他有个类似光标一样的东西如果有就返回一个TRUE 没有就返回fales

     2c71b75a900adc473085b82133753a9a8c01c3b3


如过有常用的代码你可以将它包装起来 节省工程量

jdbc链接:


public class Test {
    private static Test ourInstance = new Test();
    private DataSource dataSource = null;

    public static Test getInstance() {
        return ourInstance;
    }

    private Test() {
        ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
        try {
            comboPooledDataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
            comboPooledDataSource.setJdbcUrl("");
            comboPooledDataSource.setUser("root");
            comboPooledDataSource.setPassword("");
            comboPooledDataSource.setMaxPoolSize(3);
            comboPooledDataSource.setMinPoolSize(1);
            dataSource = comboPooledDataSource;
            Connection connection = dataSource.getConnection();
            System.out.println("初始化成功");
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}


sql预处理


   public static ResultSet getResultSet(Connection connection, String sql, Object... objects) throws SQLException {
        PreparedStatement connection1 = connection.prepareStatement(sql);
        for (int i = 0; i < objects.length; i++) {
            connection1.setObject(i + 1, objects[i]);
        }
        ResultSet rs = connection1.executeQuery();
        return rs;
    }

    public static int getUpdate(Connection connection, String sql, Object... objects) throws SQLException {
        PreparedStatement pst = connection.prepareStatement(sql);
        for (int i = 0; i < objects.length; i++) {
            pst.setObject(i + 1, objects[i]);
        }
        int a = pst.executeUpdate();
        return a;
    }

sql事务:
    public Connection getDataSource() throws SQLException {
        Connection connection = dataSource.getConnection();
        connection.getAutoCommit();
        return connection;
    }

    public Connection getDataSource2() throws SQLException {
        Connection connection = dataSource.getConnection();
        connection.setAutoCommit(false);
        return connection;
    }



JDBC增删查改训练


import java.sql.*;
import java.sql.Connection;

public class T1 {
    public static <connection> void main(String[] args) throws Exception {
        Connection connection = DriverManager.getConnection("jdbc:mysql://47.101.201.210/Test?useSSL=FALSE&serverTimezone=UTC",
                "root",
                "Sb1996350.");
        Statement c = connection.createStatement();
        //int a/*打印影响函数*/ = c.executeUpdate/*执行更新语句*/("");//删除  添加 更行  都是属于更新语句
        //  System.out.println(a);
        Connection connection1 = T2.getInstance().getconnctin();//如果有经常要用的代码,可以将它封装起来、用的话直接通过方法调用就行
        Statement statement = connection.createStatement();//这里将connection对象给 Statement
        //   调用Statement 类中的sql执行代码
        ResultSet resultSet = statement.executeQuery("select *from student");//jdbc一切以查询为主如果列起别名查询的时候就输别名
       //resultSet 方法中每一个表的数据类型都有两种得值方式   一种是字符串类型(列的名字) 一种是整数型(第几行)
        while (resultSet.next()) {
       int sid=resultSet.getInt(1);//表的第一个个字段
            System.out.println(sid);
       String to=resultSet.getString(2);//表的第二个字段
            System.out.println(to);
        }
       connection.close();//用完后及时关闭 良好的代码书写习惯
    }
}





目录
相关文章
|
6月前
|
Java 数据库连接
27SpringBoot之JDBC(完整代码)
27SpringBoot之JDBC(完整代码)
52 0
|
6月前
|
SQL Java 数据库连接
26SpringBoot之JDBC(关键代码)
26SpringBoot之JDBC(关键代码)
47 0
|
6月前
|
SQL 存储 Java
JDBC Statement:执行 SQL 语句的重要接口
在Java应用程序中,与数据库进行交互是一项常见的任务。为了执行数据库操作,我们需要使用JDBC(Java Database Connectivity)来建立与数据库的连接并执行SQL语句。Statement接口是JDBC中的一个重要接口,它用于执行SQL语句并与数据库进行交互。本文将详细介绍Statement接口的使用,包括如何创建Statement对象、执行SQL语句、处理结果等内容。
107 0
|
6月前
|
SQL Java 关系型数据库
Java的JDBC编程<-----用Java代码操作数据库(MySQL数据库)
Java的JDBC编程<-----用Java代码操作数据库(MySQL数据库)
24 0
|
2月前
|
SQL Java 数据库连接
JDBC如何封装成Mybaits持久层框架只需4
本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。
17 0
|
7月前
|
SQL Java 数据库连接
jdbc应用开发接口流程是怎么样的
jdbc应用开发接口流程是怎么样的
|
2月前
|
SQL druid Java
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
30 0
|
3月前
|
SQL Java 数据库连接
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)(下)
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
350 1
|
3月前
|
SQL Java 数据库连接
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)(中)
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
28 0
|
3月前
|
SQL 存储 Java
JDBC技术【封装JDBC工具类、Statement的使用、PreparedStatement的使用(重点)、ResultSet的使用】(二)-全面详解(学习总结---从入门到深化)
JDBC技术【封装JDBC工具类、Statement的使用、PreparedStatement的使用(重点)、ResultSet的使用】(二)-全面详解(学习总结---从入门到深化)
37 0