使用JDBC,以及JDBC的方法

简介

  1. JDVBC就是使用java语言操作关系型数据库的一套API

  2. 全称:Java DataBase Connectivity


操作数据库

1.创建工程,导入驱动jar包,使用maven
2.注册驱动:
        Class.forName("com.mysql.jdbc.Driver");
3.获取连接:
    connection conn=DriveManager.getConnection(url,username,password);
    url:端口,访问的数据库
    username:数据库的账号
    password:数据库的密码
4.定义sql语句:
    String sql="update.....";
5.获取执行Sql对象:
    Statement stmt=conn.createStatement();
6.执行SQL
    stmt.executeUpdate(sql);
7.处理返回结果
8.释放资源
    
   //1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
                                                 这个是数据库
        String url="jdbc:mysql://localhost:3306/(dormitory)?serverTimezone=GMT%2B8";//端口号,要连接的哪个数据库
        String username="root";//数据库的账号
        String password="1234";//数据库的密码
        //2.创建连接对象,获取连接
        Connection conn=DriverManager.getConnection(url,username,password);
        //3.定义sql语句
        String sql="update student set gender='男' where id=3";
​
        //4.获取sql执行对象
        Statement stmt=conn.createStatement();
        //5.执行sql,受影响的行数
        int count=stmt.executeUpdate(sql);
        if (count==1){
            System.out.println("更新成功");
        }
        //关闭执行对象
        //关闭连接
        stmt.close();
        conn.close();

Drivermanager

  1. 注册驱动:

    例:
    Class.forName("com.mysql.cj.jdbc.Driver");
    ​
    static{
            //加载mysql驱动
            try {
                Class.forName(driverName);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
  2. 获取数据库的连接:

    Connection conn=DriverManager.getConnection(url,username,password);
    ​
    1.url:(连接路径)
    "jdbc:mysql://localhost:3306/dormitory?serverTimezone=GMT%2B8";
        jdbc:mysql://               :协议,固定的书写格式
        localhost:3306/             :ip地址:端口号/
        dormitory?                  :数据库
        serverTimezone=GMT%2B8";    :就是对比时间,数据库是外国人发明的,我们要对比到我们的北京时间
    ​
    ​
    ​
    ​

    Connection

    1. 获取执行SQL的对象

    1.获取执行的SQL的对象
        1.普通的执行SQL对象:
            Statement createStatement();
        2.预编译SQL的执行SQL对象,防止SQL注入
            PreparedStatement preparedStatement(sql)
        3.执行存储过程的对象
            CallableStatement prepareCall(sql)
    1. 事物管理


statement

  1. 执行SQL语句

int executeUpdate(sql);执行DML,DDL
DML:对数据的增删该的操作
DDL:对数据库和表进行增删改的操作
返回值:DML语句影响的行数,DDL语句执行后,执行成功也肯能返回0
​
​
​
ResultSet executeQuery(sql);执行DQL
DQL:执行对数据的查询操作
返回值:ResultSet结果集对象

ResultSet(结果集对象)

  1. 封装了DQL查询语句的结果

boolean next();
    1.将光标从当前位置向前移动一行
    2.判断当前行是否为有效行
    3.返回值:
        true:有效行,当前行有数据
        false:无效行当前行没有数据
        
xxx getxxx(参数);
    1.获取数据
    2.xxx:数据类型
        如 int getInt(参数) || String getString(参数)
    3.参数:
        int:列的编号,从1开始
        String:列的名称

prepareStatement

  1. 预编译SQL语句并执行,预防SQL注入问题

//获取prepareStatement 对象
String sql="select * from user where username=? and password=?";
​
//通过Connection对象获取,并创宇对应的sql语句
prepareStatement pstmt=conn.prepareStatement(sql);
​
//设置参数
prepareStatement对象:setXxx(参数1,参数2):给?赋值
Xxx:数据类型;如SetInt(参数1,参数2)
参数:
    参数1:?的位置编号,从1开始
    参数2:?的值

  1. SQL注入通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JDBCJava Database Connectivity)是Java编程语言中用于连接和操作数据库的API。JDBC提供了一种标准的方法来访问不同类型的数据库,如Oracle、MySQL、PostgreSQL等。JDBC的主要功能包括建立连接、执行SQL语句、处理结果集等。 以下是使用JDBC连接数据库的步骤: 1. 加载JDBC驱动程序:使用Class.forName()方法加载JDBC驱动程序。 2. 建立连接:使用DriverManager.getConnection()方法建立与数据库的连接。 3. 创建Statement对象:使用Connection.createStatement()方法创建Statement对象,用于执行SQL语句。 4. 执行SQL语句:使用Statement.execute()方法执行SQL语句。 5. 处理结果集:使用ResultSet对象处理SQL查询结果。 以下是一个使用JDBC连接MySQL数据库的示例代码: ```java import java.sql.*; public class JDBCDemo { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); // 创建Statement对象 stmt = conn.createStatement(); // 执行SQL语句 rs = stmt.executeQuery("SELECT * FROM user"); // 处理结果集 while (rs.next()) { System.out.println(rs.getString("name") + " " + rs.getInt("age")); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁惜若༒奔已꧂

争取做到更好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值