JDBC数据库连接

JDBC

1.JDBC基本概念

概念:Java DataBase Connectivity Java数据库连接,Java语言操作数据库。

JDBC本质:一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。真正执行的代码是驱动jar包中的实现类。

2.快速入门

步骤:

​ 1.导入驱动jar包

​ mysql-connector-java-5.1.37-bin.jar

​ 右键–>Add As Library

​ 2.注册驱动

​ 3.获取数据库连接对象 Connection

​ 4.定义sql

​ 5.获取执行sql语句的对象 Statement

​ 6.执行sql,接受返回结果

​ 7.处理结果

​ 8.释放资源

代码实现:

public class JdbcDemo1 {
    public static void main(String[] args) throws Exception {
        //1.导入jar包
        //2.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //3.获取数据库连接对象
        Connection connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/sqltest","root","123456");
        //4.定义sql语句
        String sql = "delete from stu where id = '9'";
        //5.获取执行sql的对象
        Statement statement = connection.createStatement();
        //6.执行sql
        int i = statement.executeUpdate(sql);
        //7.处理结果集
        System.out.println(i);
        //8.释放资源
        statement.close();
        connection.close();
    }
}

3.对JDBC各个接口和类详解

1.DriverManager:驱动管理对象

2.Connection:数据库连接对象

3.Statement:执行sql对象

4.ResultSet:结果集对象

5.PreparedStatement:执行sql对象

4.抽取JDBC工具类

目的:简化书写

分析:

​ 1.注册驱动也抽取

​ 2.抽取一个方法获取连接对象

​ 3.抽取一个方法释放资源

public class JDBCUtil {

    private static Connection connection = null;
    private static PreparedStatement preparedStatement = null;
    private static Statement statement = null;
    private static ResultSet resultSet = null;
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/mysql1?useUnicode=true&characterEncoding=utf-8";
            String user = "root";
            String password = "123456";
            connection = DriverManager.getConnection(url, user, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 查询用此方法
     * @param sql
     * @param o
     * @return
     * @throws SQLException
     */
    public static ResultSet queryUtil(String sql,Object[] o) throws SQLException {
        preparedStatement = connection.prepareStatement(sql);
        if(o!=null && o.length>0){
            for(int i=0;i<o.length;i++){
                preparedStatement.setObject(i+1, o[i]);//ps.setObject(1,"aaa");  ps.setObject(2,"111");
            }
        }
        resultSet = preparedStatement.executeQuery();//此处使用无参的方法
        return resultSet;
    }

    /**
     * 项目中的增删改都用此方法
     * @param sql
     * @throws SQLException
     */
    public static void zenShanGai(String sql) throws SQLException {
        statement = connection.createStatement();
        statement.execute(sql);
    }

    /**
     * 退出的时候调用此方法
     * @throws SQLException
     */
    public static void closeRes() throws SQLException {
        if (connection != null) {
            connection.close();
        }
        if (preparedStatement != null) {
            preparedStatement.close();
        }
        if (statement != null) {
            statement.close();
        }
        if (resultSet != null) {
            resultSet.close();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值