DCL语句
我们现在默认使用的都是root用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。
1.创建用户
create user '用户名' @ '主机名' identifide by '密码';
2.授权用户
create 权限1,权限2 on 数据库名.表名 to '用户名'@'主机名';
3.修改管理员密码
mysqladmin -uroot -p password 新密码 (不需要加引号)
4.修改普通用户密码
set password for '用户名'@'主机名'= password('新密码');
注意:需要在登陆MySQL的情况下操作。
jdbc的概念
客户端操作mysql数据库的方式.
1.什么是jdbc
java数据库连接技术.JDBC是官方制定的操作数据库规范(接口),是由一组接口组成的,接口的实现是由数据库厂商实现。
作用:用来操作数据库,对数据执行增删改查操作
JDBC的好处:
代码不依赖任何的数据库
只要修改少量的代码就可以访问其它类型的数据库。
2.jdbc常用API:
Driver:接口,驱动接口 注册驱动
Connection:接口 连接对象 用来与数据库建立连接
Statement:接口 SQL语句发送对象 用来将SQL语句发送给数据库执行并获得执行结果
ResultSet:接口 结果集对象 用来封装满足查询条件的记录
DriverManager:类 工具类 用来注册和管理驱动 用来获得连接对象
3.jdbc获取连接步骤
(1).导入驱动Jar包
(2).注册驱动
(3).获取连接
4.注册驱动
注册驱动的方法:
Class.forName("com.mysql.jdbc.Driver");
获取连接的方法:
Connection con =
DriverManager.getConnection(jdbc:mysql:///要操作的表, 用户名, 密码);
4.JDBC之执行增删改操作:
Statement对象介绍
作用
SQL发送对象
将SQL语句发送给数据库执行并获得执行结果。
5.如何获取statement对象
通过调用连接对象的方法获取:
Statement sta = con.createStatement();
sta.executeUpdate();更新或者修改
sta. executeQuery();查询
6. ResultSet对象的介绍
结果集对象:用来封装满足查询条件的记录
(2).如何获得ResultSet对象
通过Statement对象的方法获取
ResultSet rls = sta.executeQuery();
方法: boolean next();将指针下移一行并判断当前指针指向的位置是否有记录,有则返回true,否则返回false
* Xxx getXxx(列号/列名)
用法:使用while循环获取;
7.jdbc工具类实现
工具类写法
JDBC工具类
*/
public class JDBCUtil {
private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql:///需要操作的表";
private static final String USER = "账户名";
private static final String PASSWORD = "密码";
static {
try {
// 注册驱动
Class.forName(DRIVER_CLASS);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 返回连接对象
public static Connection getConnection(){
try {
return DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
// 将编译时异常转换为运行时异常
throw new RuntimeException("没有获取到连接对象,连接失败....");
}
}
// 关闭资源
public static void close(Statement stmt,Connection conn){
close(null, stmt, conn);
}
// 关闭资源
public static void close(ResultSet rs, Statement stmt, Connection conn){
try {
// 关闭资源
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
// 关闭资源
if (stmt != null)
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
---------------------------------------------
关闭资源的注意事项
* 开启顺序:Connection --> Statement --> ResultSet
* 关闭顺序:ResultSet --> Statement --> Connection