目录
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执行流程的文章: