精简JDBC

目录

1.数据库驱动

2.JDBC

3.编列第一个JDBC程序

1.创建一个普通java项目

2.创建数据库

3.编写测试代码

1.DriverManager

2.URL

3.Statement

4.ResultSet

5.释放资源

4.Statement对象

1.CRUD操作-create

2.CRUD操作-delete

3.CRUD操作-update

4.CRUD操作-read

5.代码实现

1.提取工具类

2.编写增删改查的方法(executeUpdate)

3.查询

4.SQL注入的问题

5.PreparedStatement对象

1.新增

2.删除

3.更新

4.查询

5.防止SQL注入

6.IDEA连接数据库

7.事务 

8.数据库连接池


1.数据库驱动

驱动:声卡、显卡、数据库

我们的程序会通过  数据库 驱动  和数据库打交道

2.JDBC

SUN公司为了简化开发人员的(对数据库的统一)操作,提供了一个(java操作数据库的)规范,俗称JDBC,这些规范的实现由具体的厂商去做,如MySQL的规范MySQL的厂商指定等

3.编列第一个JDBC程序

1.创建一个普通java项目

太过于简单,这里就不演示了

2.创建数据库

新建一个数据库

CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;

新建表插入数据

CREATE TABLE users(
    id INT PRIMARY KEY,
    `name` VARCHAR(40),
    `password` VARCHAR(40),
    email VARCHAR(60),
    birthday DATE
);

INSERT INTO users(id,`name`,`password`,email,birthday)
VALUES(1,'张三','123456','zs@qq.com','2000-01-01');
INSERT INTO users(id,`name`,`password`,email,birthday)
VALUES(2,'李四','123456','ls@qq.com','2000-01-01');
INSERT INTO users(id,`name`,`password`,email,birthday)
VALUES(3,'王五','123456','ww@qq.com','2000-01-01');


SELECT	* FROM users;

导入jar包

3.编写测试代码

步骤总结:

  1. 加载驱动
  2. 连接数据库,代表数据库
  3. 向数据库发送SQL的对象Statement : CRUD
  4. 编写SQL (根据业务,不同的SQL)
  5. 执行SQL
  6. 关闭连接(先开的后关)
package JDBC;

import java.sql.*;

//我的第一个JDBC程序
public class JdbcFirstDemo1 {
    public static void main(String[] args) throws Exception {
        //1.用户信息和url  characterEncoding=utf-8:utf8字符集编码  useUnicode=true:支持中文 useSSL=false:是否使用安全链接
        //mysql8.0需要加时区
        String url = "jdbc:mysql://localhost:3306/jdbcstudy?characterEncoding=utf-8&useSSL=false&useUnicode=true";
        String username="root";
        String password="******";//这里使用自己密码
        //2.加载驱动  mysql 8.0需要加cj com.mysql.cj.jdbc.Driver
        Class.forName("com.mysql.jdbc.Driver");//固定写法 加载驱动
        //3.连接数据库对象 Connection代表数据库
        Connection connection = DriverManager.getConnection(url, username, password);
        //4.执行sql的对象 Statement 执行SQL的对象
        Statement statement = connection.createStatement();
        //5.执行sql的对象 执行sql  可能存在结果,查看返回结果
        String sql="SELECT * FROM users";
        ResultSet resultSet = statement.executeQuery(sql);//返回的结果集,结果接种封装了我们全部查询出来的结果
        while (resultSet.next()){
            System.out.println("id=" + resultSet.getObject("id"));
            System.out.println("name=" + resultSet.getObject("NAME"));
            System.out.println("pwd=" + resultSet.getObject("PASSWORD"));
            System.out.println("email=" + resultSet.getObject("email"));
            System.out.println("birth=" + resultSet.getObject("birthday"));
        }
        //6.释放链接
        resultSet.close();
        statement.close();
        connection.close();
    }
}

1.DriverManager

//DriverManager.registerDriver(new com.mysql.jdbc.Driver());//源码
Class.forName("com.mysql.jdbc.Driver");//固定写法 加载驱动

Connection connection = DriverManager.getConnection(url, username, password);
//connection 代表数据库  可以有以下操作
    //数据库设置自动提交
    //事务提交
    //事务回滚
        connection.rollback();//回滚
        connection.commit();//提交
        connection.setAutoCommit(boolean b);//自动提交 ture/false

2.URL

String url = "jdbc:mysql://localhost:3306/jdbcstudy?characterEncoding=utf-8&useSSL=false&useUnicode=true";
//jdbc:mysql://主机地址:端口号/数据库名?参数1&参数2&参数3;
//mysql默认端口号3306 oralce默认端口号1521
//jdbc:mysql://localhost:3306/数据库名?参数1&参数2&参数3;
//如果在本机上可以直接jdbc:mysql:///数据库名?参数1&参数2&参数3;   linux不可以这样操作

3.Statement

Statement 执行SQL的对象 PrepareStatement 执行SQL的对象

statement.executeQuery();//执行查询语句 返回resultSet:结果集
statement.execute();//执行任何SQL语句
statement.executeUpdate();//更新、插入、删除都使用这个,返回匹配到的行数

4.ResultSet

查询的结果集:封装了所有的查询结果

获得指定数据类型

        resultSet.getObject();//在不知道列类型的情况下使用Object
        //如果知道列类型就使用指定的类型
        resultSet.getString();
        resultSet.getInt();
        resultSet.getFloat();
        resultSet.getDate();
        ...

遍历

        resultSet.beforeFirst();//移动到最前面
        resultSet.afterLast();//移动到最后面
        resultSet.next();//移动到下一个数据
        resultSet.previous();//移动到前一行
        resultSet.absolute(row);//移动到指定行

5.释放资源

        resultSet.close();
        statement.close();
        connection.close();

4.Statement对象

Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。


Statement对象的executeUpdate方法,用于向

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值