一 DCL

1.1创建用户
a) Create user ‘用户名’@’主机地址’ identified by ‘新密码’
b) 主机地址 localhost or 127.0.0.1
‘%’代表任意主机地址[慎重]
密码可以为空
1.2 用户授权
Grant 权限1,权限2…on 数据库名.表名 to ‘用户名’@’主机地址’;
Create 创建, alter 修改库,表 DDL drop 删除 select 查询
update 修改记录,
DQLAll 代表所有的权限[慎重]

  • . *所有库,所有表[慎重]
  • 数据库名.[经常使用]
    1.3查看权限
    Show grant for ‘用户名’@’主机地址’
    1.4 撤销授权
    Revoke 权限1,权限2…on数据库名,表名 from ‘用户名’@’主机地址’;权限
    All 代表所有的权限[慎重]
    . 所有库.所有表[慎重]
    数据库名.
    [经常使用]
    1.5 删除用户
    Drop user ‘用户名’@’主机地址’;
    1.6密码管理
    a)超级管理员Mysqladmin -u用户名 -p passwrod(加密) 新密码
    b)普通用户set password for ‘用户名’@’主机地址’=password(‘新密码’);
    four mySQL DCL JDBC

二 JDBC【重点】

2 .1 概述
java dataBase Connectivity 数据库连接 就是通过java 来进行操作数据库JDBC; 是关系型数据库的一套规范(接口),对我们只需要学习接口的方法即可驱动;是mysql厂商提供给我们的(jar)
2.2 初体验
需求在java控制台输出数据库查询结果
1.创建数据库表和表记录
2.创建java工程
3.导入jar包Mysql驱动
4.编写代码
//创建连接数据库
//1.1 注册 驱动
//1.2 导入地址 - 获取连接
//编写sql语句
//传入语句(小货车)-创建语句执行者
//传回语句并返回结果(执行sql并返回结果)
//检查 - 处理结果
//关闭资源
four mySQL DCL JDBC

2.3 API 详解
都是sun 公司提供的规范;java.sql.*
DriverManager;用于管理一组JDBC驱动程序的基本服务确定java代码连接那个服务器.
//注册驱动 DriverManager.registerDriver(Driver mysql实现类)
four mySQL DCL JDBC
静态代码块已经帮我们实现类注册驱动的功能,我们只需要把com.mysql.jdbc 类,加载到jvm虚拟机内存并初始化Class.forName(“com.mysql.jdbc”)
;//获取连接
2.3.1
DriverManager.getConnection(String 数据库, String 用户名, String 密码);
数据库地址;格式固定
Jdbc;mysql;//主机地址:端口号/数据库名;
Jdbc:mysql://localhost:3306/db_day04;
Jdbc;mysql;///bd_day04;
Jdbc;mysql;///db_day04/?CharacterEncoding=utf-8;·
2.3.2
Connection ;调试器和调试器之间的连接
让java代码与数据库建立通道
//创建语句执行者(小货车)进今天学习,后续不用 有bug
Public Statement createStatement();
//创建预编译语句执行者(高铁) 今后使用,很重要
Public PreparedStatement prepareStatement(String sql);
//事务安全
2.3.3
Statement把java代码编写sql传递给数据库,并返回数据库的结果
//执行sql语句[了解]
Public boolean execute (String sql);执行dml(增删改)语句返回false,执行dql(查) 语句返回true
//执行dml语句
Public int executeUpdate(String dml);返回结果为影响行数
//执行dal语句
Public ResultSet exectueQuery(String dql);返回结果虚拟表
2.3.4
ResultSet
用于接收数据库查询的虚拟变结果集
//指针下移Public boolean next();若有记录返回则就返回true,若没有记录返回false;
//获取记录Public T getXxx(int 第几列 | String 列名);//特殊GetString 可以获得全部类型 底层进行转换(数值 , 日期)
four mySQL DCL JDBC
流程图
four mySQL DCL JDBC
2.4
实现增删改

增加
four mySQL DCL JDBC
删除
four mySQL DCL JDBC
修改
four mySQL DCL JDBC
2.5 工具类
我们在操作JDBC时发现,获取连接、关闭资源等代码属于公共部分,抽取到工具类,简化代码,提高效率
步骤分析-

// 提供获取连接的方法
// 提供关闭资源的方法 【方法重载】
代码片段参考 com.itheima.c_utils包下

2.6事务安全
需求
张三给李四转账
技术分析
通过Connection操作事务
//开启事务 关闭自动提交时
Public void setAutoCommit(boolean false)
;// 提交事务
Public void commit();
// 回滚事务
Public void rollback()步骤准备
1 准备表记录
2 编写代码(jbdc)
//获取连接
//开启事务
//创建语句执行者(小货车
//雨琪扣钱
//巴元加钱
//提交事务
//回滚事务
//关闭资源
four mySQL DCL JDBC
four mySQL DCL JDBC

2.7 案例用户登录
需求
模拟用户登录需求
分析
在控制台输入用户名和密码,根据用户名和密码查询数据库,根据返回结果看用户是否登录成功
步骤分析

//在控制台输入用户名和密码scanner技术
//根据用户名和密码查询数据库jdbc技术
//根据数据库返回结果判断用户是否登录成功id else技术

配置文件
four mySQL DCL JDBC
将连接数据库和关闭资源 写入方法中 节约资源
four mySQL DCL JDBC
在sun公司专门提供了一个工具类ResourceBundle资源包专门用于加载propreties 这个配置文件的key
four mySQL DCL JDBC
four mySQL DCL JDBC
four mySQL DCL JDBC
代码片段
four mySQL DCL JDBC
four mySQL DCL JDBC

在登录用户需求中有一个bug 是非常致命的,下一篇文章进行讲解

进行理顺这篇章的思路, 代码的优化
初体验 在初测驱动 需要一个实现类 mysql 提供;了一个 Driver 来 newDriver进行实现,可是我们发现 静态代码块已经帮助我们实现了,我们这需要把类加载到虚拟机里面Class.forName(“com.mysql.jdbc.Driver”); 之后在进行增删改的时候我们需要每次都写连接 和 关闭资源, 这样很浪费资源,我们可以进行写成方法进行调用,这样省时省力,在写关闭资源是,写两个调用一个是 dml(增删改)时 需要关闭两个资源,dql(查询)时,需要关闭三个资源 . 在注册和连接的时需要写driver,url,user,password 四个固定的常量,则我们可以把它们放在配置文件中, 就是文件 JDBC.properties文件, 而java为我们提供了一个专门加载properties的方法,ResourceBundle加载文件的key,

相关文章: