java的JDBC编程

概念:

JDBC:(Java Database Connectivity) java数据库连接.

  • 是一种用于执行SQL语句的Java API.他是java中的数据库连接规范,这个API由 java.sql.,javax.sql. 包中的一些类和接口组成,它为Java 开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问.

JDBC工作原理

JDBC统一了不同的数据库访问接口,我们只需要学习一套API就可以操作各种数据库.
在这里插入图片描述

JDBC常用接口和类

数据库连接Connection
Connection接口实现类由数据库提供,获取Connection对象通常有两种方法:
1.一种通过DriverManager(驱动管理类)的静态方法获取
2.一种是通过DataSource(数据源)对象获取。实际应用中会使用DataSource对像.

使用JDBC进行数据库的插入

package MySQL;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class TestJDBC {
public static void testInster() throws SQLException {
        //0.现在数据库中创建好数据库和数据表
        //1.创建DataSource对象.这个对象是程序级,每个程序创建一个dataSourse."单例"
        // 如果MysqlDataSource类能成功导入,说明前面的jar包导入没问题
        DataSource dataSource = new MysqlDataSource();
        //2.设置dataSourse的属性,为和数据库连接做准备
        //Mysql是一个服务器,要想访问MySQL,需要知道MySQL的IP地址,端口号,
        // 以及要访问的数据库名,以及用户名和密码
        //IP地址:一台主机的地址.端口号:一台主机上可能同时部署着很多的服务程序,到底要访问哪个服务器,使用端口号来区分
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java05_10?charcterEncoding=utf8&useSSL=true");
        //必须先转换类型再设置,因为有的数据库不是CS结构
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("1184127373");
        //3.创建Connection对象,用来表示和数据库建立一次链接
        //这个操作可能是操作失败的,会抛出SQLException异常
        Connection connection = dataSource.getConnection();
        //4.链接建立好,就可以操作数据库了.核心就是拼装SQL语句
        //?是占位符,可以把具体的变量替换到?位置上去
        //此处的sql语句可以没有;
        //拼装SQL,并没有真正的执行SQL
        String sql = "insert into java05_10test values(?,?)";
        //用下面语句来辅助拼装sql语句,setxxx的类型,需要和数据库表的类型相匹配
        PreparedStatement statement = connection.prepareStatement(sql);
        //替换第一个?,类型是String
        statement.setString(1,"王维");
        //替换第二个?,类型是int
        statement.setInt(2,36);
        System.out.println(statement);
        //5.执行SQL,
        int ret = statement.executeUpdate();
        System.out.println(ret);
        //6.释放相关资源,一定要先释放statement,再释放connection,
        // 先创建的要后释放,不然可能会存在资源泄露的问题
        statement.close();
        connection.close();
    }

  
}

使用JDBC进行数据库的查找

package MySQL;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TestJDBC {
 public static void testselect() throws SQLException {
        //0.现在数据库中创建好数据库和数据表
        //1.创建DataSource对象.这个对象是程序级,每个程序创建一个dataSourse."单例"
        // 如果MysqlDataSource类能成功导入,说明前面的jar包导入没问题
        DataSource dataSource = new MysqlDataSource();
        //2.设置dataSourse的属性,为和数据库连接做准备
        //Mysql是一个服务器,要想访问MySQL,需要知道MySQL的IP地址,端口号,
        // 以及要访问的数据库名,以及用户名和密码
        //IP地址:一台主机的地址.端口号:一台主机上可能同时部署着很多的服务程序,到底要访问哪个服务器,使用端口号来区分
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java05_10?charcterEncoding=utf8&useSSL=true");
        //必须先转换类型再设置,因为有的数据库不是CS结构
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("1184127373");
        //3.创建Connection对象,用来表示和数据库建立一次链接
        //这个操作可能是操作失败的,会抛出SQLException异常
        Connection connection = dataSource.getConnection();
        //4.拼装SQL语句
        String sql = "select * from java05_10test";
        PreparedStatement statement = connection.prepareStatement(sql);
        //5.此处没有?,不需要替换,直接执行就可
        //resultSet中国就包含了查询结果
          ResultSet resultSet = statement.executeQuery();
        //6.遍历结果集合.类似于迭代器
        while (resultSet.next()){
            String name = resultSet.getString("name");
            int age = resultSet.getInt("age");
            System.out.println(name + ":" + age);
        }
        //7.释放资源.顺序不能颠倒,先创建的最后释放
        resultSet.close();
        statement.close();
        connection.close();

    }
    }

setURL设置:
在这里插入图片描述

JDBC使用套路总结:

  1. 先在数据库中创建好数据库和数据表.
  2. 创建DataSource对象.这个对象是程序级,每个程序创建一个dataSourse.
  3. 设置dataSourse的属性,为和数据库连接做准备
  4. 创建Connection对象,用来表示和数据库建立一次链接
  5. 拼装SQL语句,执行SQL.
  6. 释放相关资源,先创建的要后释放,不然可能会存在资源泄露的问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值