JDBC的基础

本文介绍了JavaDatabaseConnectivity(JDBC)的核心对象及其使用步骤,包括DriverManager、Connection、Statement和ResultSet。同时强调了防范SQL注入风险,提倡使用PreparedStatement,并提到了MD5加密工具类在密码安全中的应用。
摘要由CSDN通过智能技术生成

JDBC

概念

  • Java DataBase Connectivity简称JDBC

  • 操作数据库的规范,规范就是接口

  • 驱动:jdbc是连接数据库的工具

四个核心的对象

  • DriverManager:管理驱动
  • Connection:负责连接数据库并传送数据
  • Statement:获取sql语句的对象
  • ResultSet:保存查询结果

使用步骤

数据库名称与实体类名字一样

  1. 导入jar包
  2. 注册驱动(获取字节码方式)
  3. 获取数据库连接
  4. 定义sql语句
  5. 获取执行sql语句的对象Statement
  6. 执行sql接受返回结果
  7. 处理结果
  8. 释放资源(从后往前去释放)
    例:
package com.xiaozhao;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class jdbc {
    public static void main(String[] args) throws Exception {
        //1.注册驱动 固定的
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/jdbc";
        String username = "root";
        String password = "root";
        Connection conn = DriverManager.getConnection(url,username,password);
        //3.定义sql语句
        String sql = "update student set name= '张三' where id = 1";
        //4.获取执行sql的对象 Statement
        Statement stmt = conn.createStatement();
        //5.执行sql  (受影响的行数)
        int count = stmt.executeUpdate(sql);
        //6.处理结果
        System.out.println(count);
        //7.释放资源
        stmt.close();
        conn.close();
    }
}

sql注入

  • statement执行sql语句的时候会有sql注入的风险,所以推荐使用PreparedStatemen
  • sql语句中的参数使用(?)替代
  • 查询使用executeQuery();增删改使用executeUpdate();

加密工具类

package utils;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Utils {

    public static String encrypt(String password){
        MessageDigest md = null;
        String s = null;
        try {
            md = MessageDigest.getInstance("MD5");
            md.update(password.getBytes());
            s = new BigInteger(1, md.digest()).toString(16);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return s;
    }
}

包顺序
lib:jar包
utila:工具类
model:数据库实体类
dao:持久层
impl:持久层的实体类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值