目录
JDBC介绍
JDBC数据库编程的流程
1.加载驱动类,注册驱动
2.创建数据库连接
3.写SQL语句
4.预编译SQL语句
5.设置SQL语句中?处的值
URL字符串格式
MySQL服务端执行流程
Java对数据库进行操作(CRUD语法)
1.增 insert
2.删 delete
3.改 update
4.查 select
JDBC介绍
JDBC(Java Database Connectivity) Java数据库连接技术
JDK中提供与JDBC有关的API都在java.sql包里面
API(Application Programming Interface)
API是三方库中的一系列类和接口中方法的集合
调用API指的就是调用三方库中代码
JDBC数据库编程的流程
1.加载驱动类,注册驱动
Class.forName("驱动类路径")
2.创建数据库连接
DriverManager.getConnection()方法是用来建立client-server之间的TCP连接的方法
有三个参数 1.url连接地址字符串 2.用户名 3.密码
private static String URL= "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false"; //URL
private static String USER= "root"; //数据库用户名
private static String PASSWORD= "root"; //数据库密码
private static String DRIVER = "com.mysql.jdbc.Driver";
private Connection conn = null; //成员变量conn,存储连接对象的指针,可以被任意的测试方法访问到
//在程序运行过程中,只需要做一次的注册驱动的代码放在静态代码块里面
static {
try {
Class.forName(DRIVER);
System.out.println("mysql驱动注册成功!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("mysql驱动注册失败!");
}
}
@Before
public void before(){
try {
//建立数据库连接
conn = DriverManager.getConnection(URL,USER,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
}
@After
public void after(){
try {
//关闭数据库连接
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
3.写SQL语句
用 ?为占位符代替值
4.预编译SQL语句
5.设置SQL语句中?处的值
URL字符串格式
url字符串格式:
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false"
协议// IP:端口/数据库名称?参数 名和参数值
1.(必须有)协议部分 "jdbc:mysql://"
Client与Server之间的通信协议是TCP/IP
传输的内容的协议是 "jdbc:mysql://"
2.(必须有)IP:端口 "localhost:3306"
IP是服务端所在的机器的IP地址
服务端在本地可以写localhost,如果不在本地,必须写对方的ip地址
端口默认是3306
3.(必须有)数据库名称"test"
Mysql允许一个数据库服务端创建多个数据仓库
在建立CS连接的时候必须指定具体连接的仓库名称
如果指定的仓库名称不存在,连接会失败
4.(可选)连接参数 用?拼接的部分
每一组参数都是kv结构 k=v,k是参数名,v是参数值
可以有多组,多组之间用&拼接
MySQL服务端执行流程
Java对数据库进行操作(CRUD语法)
1.增 insert
2.删 delete
delete truncate drop 有什么区别?
delete 删除表中的数据,不会删表结构
drop 会删除表的结构和所有数据行,及其约束、索引等
truncate 会清空表中的所有行,但表结构及其约束、索引等保持不变,自增长的主键从头开始
Delete语法: delete from 表名 where 条件
没有where条件=删除整张表的数据
3.改 update
Update语法:update 表名 set 字段名=值 [,字段名=值...] where 条件
单列更新 多列更新
Update可以没有while条件,但是通常情况下都是要指定where条件防止全表更新
4.查 select
Select查询语法: select 列名列表 from 表名
[inner join | left join | right join 表名]
[on 连表条件]
where 条件
group by 分组字段
having 分组的筛选条件
limit 起始位置,往后的偏移量
order by 排序字段
增删改用executeUpdate() 方法执行,返回int,代表受影响的函数
只有查询用executeQuery()方法执行,返回ResultSet,代表查询的结果集
分享两篇详细Mysql执行流程的文章:
呕心沥血整理出来的mysql执行流程,一定要看!_流星007的博客-CSDN博客
深入理解MySQL执行过程及执行顺序



