JDBC数据库编程
JDBC(Java Database Connectivity),Java数据库连接技术
官方JDK中提供的与JDBC有关的API都在Java.sql包里面
API(Application Programming Interface)
API是三方库中一系列类和接口中方法的集合
调用API指的就是三方库中代码
注册mysql的驱动
需要让mysql驱动包中的Driver类发生类加载即可
Class.forName(String):这个方法是JDK提供的专门用于类加载的方法,参数是类的路径的字符串,必须是全路径"包名+类型"
该方法会抛出有个编译时异常,ClassNotFoundException
Class.forName("com.mysql.jdbc.Driver");
DriverManager.getConnection()方法是用来建立client-server之间的TCP连接的方法
有三个参数 1、url连接地址字符串;2、用户名;3、密码
url字符串的格式:
协议//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是参数值
可以有多组,多组之间用&拼接
参数名 | 参数值 | 说明 |
useUnicode | true | 是否采用Unicode编码集传输数据 如果不设置,默认是拉丁文,那么中文传输可能会乱码 |
characterEncoding | utf-8 | 使用Unicode中的utf-8这个版本的字符集 |
useSSL | false | 是否使用SSL证书进行安全认证 |
serverTimezone | 如果客户端所在城市与服务端所在城市的时区不一样,可能会出现时间错乱的情况 可以通过这个参数来设置服务端的时区 |
Java第19天整理
1、整理JDBC编程的流程
1、安装数据库驱动jar包;
2、加载驱动类、注册驱动
使用Class.forName("驱动类路径");
3、创建数据库连接:
DriverManager.getConnection() 建立连接
4、写SQL语句用?作为占位符代替值
5、预编译SQL语句
6、设置SQL语句中的?处的值
7、增删改查
增:
改:
删:
查:
2、整理mysql的几大模块
1、连接器模块--负责客户端连接、用户名和密码校验、权限分配等
2、分析器模块--将客户端发过来的SQL语句进行分析
3、优化器模块--将符合MySQL的标准语义规则的SQL语句进行优化
4、执行器模块--API调用存储引擎,创建SQL语句执行计划
5、存储引擎模块--运行执行计划
6、缓存(为什么被弱化了)--主要为了提升查询的效率,之所以删除掉,是因为查询缓存的失效非常频繁。
3、整理CRUD的语法
1、增:
2、改:
3、 删
4、查
4、url连接字符串的组成部分和格式
DriverManager.getConnection()方法是用来简历client-server之间的TCP连接的方法
有三个参数 1、url连接地址字符串;2、用户名;3、密码
url字符串的格式:
协议//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是参数值
可以有多组,多组之间用&拼接
参数名 | 参数值 | 说明 |
useUnicode | true | 是否采用Unicode编码集传输数据 如果不设置,默认是拉丁文,那么中文传输可能会乱码 |
characterEncoding | utf-8 | 使用Unicode中的utf-8这个版本的字符集 |
useSSL | false | 是否使用SSL证书进行安全认证 |
serverTimezone | 如果客户端所在城市与服务端所在城市的时区不一样,可能会出现时间错乱的情况 可以通过这个参数来设置服务端的时区 |