JDBC
概念
-
Java DataBase Connectivity简称JDBC
-
操作数据库的规范,规范就是接口
-
驱动:jdbc是连接数据库的工具
四个核心的对象
- DriverManager:管理驱动
- Connection:负责连接数据库并传送数据
- Statement:获取sql语句的对象
- ResultSet:保存查询结果
使用步骤
数据库名称与实体类名字一样
- 导入jar包
- 注册驱动(获取字节码方式)
- 获取数据库连接
- 定义sql语句
- 获取执行sql语句的对象Statement
- 执行sql接受返回结果
- 处理结果
- 释放资源(从后往前去释放)
例:
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:持久层的实体类