JDBC数据库编程(无敌详细!!从0到1)

目录

概述JDBC

如何下载驱动包

如何使用jar包

 编写代码(使用)

数据库查询


概述JDBC
JDBC ,即 Java Database Connectivity java 数据库连接。是一种用于执行 SQL 语句的 Java API ,它是 Java中的数据库连接规范

目标: 使用java 代码操作数据库
不同数据库提供的原生 api,差异较大. 学习使用成本作用: jdbc 统一了各种数据库的 api. 使用 jdbc 这一套 api 就能操作各种数据库

配置:
1)从中央仓库下载 mysql 的 jdbc 驱动包 (jar)
2)jar 引|入到项目中 (拷贝, add as library)
使用:
1)创建数据源 DataSource,填写 url, username, password
2)建立连接.
3)构造 sql 语句.
4)执行 sql 语句
5)释放资源. 先申请的资源,后释放.

如何下载驱动包

1. mvnrepository.com中央仓库中搜索MySQL Connector java(老版)(MySQL Connector为新版 建议使用老板)

2.下载与mysql驱动包相同的系列 我使用的是5系列

3. 下载

(.jar是java中常见的后缀类型 将java程序打包发给别人)


如何使用jar包

1把jar复制到当前项目的目录中

2把这个目录标记成库


 编写代码(使用)

第一步中先向上转型 再向下转型 是为了让MysqlDataSource这个类名不要扩散到代码其他地方 后续要修改数据库为其他数据库 代码改动小(mysql和程序耦合低)

jdbc:mysql://127.0.0.13306/java109characterEncoding=utf8&useSSL=false

①                      ②              ③      ④            ⑤                                      ⑥

①url是干啥用的?

给jdbc操作mysql使用的

②IP地址,描述网络上一个主机所在位置

127.0.0.1是一个特殊的ip,叫做“环回ip”(当jdbc程序和mysql服务器在同一主机上)

③端口号

④数据库名称(“?”问号后面表示访问资源时,需要哪些具体参数)(“&"表示并且)

⑤字符编码集(不写utf8mb4)

⑥是否要加密 建议不加密 加密需要安装证书

第二步注意

第三步Prepared

先解析检査 sql,看看 sql 是不是有啥问题~~解析完毕之后,也会得到结构化数据,直接把解析好的结构化数据发给数据库服务器,服务器就省下了这部分解析的工作。

需要抛出异常

第四步返回值为影响的行数

第五步释放资源
程序通过代码和服务器进行通信,是需要消耗一定的硬件/软件资源在程序结束的时候, 就需要告知服务器,释放这些资源/客户端也需要释放资源.

修改和删除,代码写法和插入是非常类似的~~ 只要调整 sql 内容即可!!

用户输入学号、姓名进行插入

这种写法不安全 可能导致注入攻击 如输入name );drop database xxxx;

正确方式:

数据库查询
// 1. 创建 DataSource

        DataSource dataSource = new MysqlDataSource();

        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");

        ((MysqlDataSource) dataSource).setUser("root");

        ((MysqlDataSource) dataSource).setPassword("2222");



        // 2. 建立连接

        Connection connection = dataSource.getConnection();



        // 3. 构造 sql

        String sql = "select * from student where id = ?";

        PreparedStatement statement = connection.prepareStatement(sql);

        statement.setInt(1, 100);



        // 4. 执行 sql (和前面不同了)

        //    ResultSet 就表示查询的结果集合 (临时表). 此处就需要针对表进行遍历.

        ResultSet resultSet = statement.executeQuery();



        // 5. 遍历结果集合.

        //    通过 next 方法就可以获取到临时表中的每一行数据. 如果获取到最后一行之后, 再执行 next 返回 false, 循环结束.

        while (resultSet.next()) {

            // 针对这一行进行处理了.

            // 取出列的数据.

            int id = resultSet.getInt("id");

            String name = resultSet.getString("name");

            System.out.println("id = " + id + ", name = " + name);

        }



        // 6. 释放资源

        resultSet.close();

        statement.close();

        connection.close();

 

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值