JDBC中的接口及代码封装

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();//用完后及时关闭 良好的代码书写习惯
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值