JDBC概述
- 什么是JDBC
是一种用于执行SQL语句的Java API
它由一组用Java语言编写的类和接口组成
JDBC提供了一种操作数据的标准
JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统
- JDBC的API
java.sql包装的就是JDBC的API.
各大数据库厂商就会对JDBC的API提供实现类
我们也叫:驱动包
注意不要引错包,不用引用这个不要引入com.mysql…Xxx类
连接Mysql
- 添加驱动
1.在项目当中创建一个文件夹为lib
2.把Mysql驱动包复制到该文件夹下
3.builder path 编译路径 - 创建连接
0-查看驱动相关api
ctrl+shift+t 查找drive
点进去后, 要求关联源码,把驱动压缩包直接关联,关联jra的压缩包就可以了
1.加载驱动
把com.mysql.jdbc.Driver这份字节码加载进JVM
当一份字节码被加载到JVM时,就会执行该字节码中的静态代码块,静态代码块就是这个样子 - 2.获取连接对象
连接时要求传入数据库地址url=“jdbc:mysql://localhost:3306/数据库名”
这里就以本机的数据库服务器为例子,你可以输入其他的服务器地址的
用户名
密码
在图形化界面可以查看连接数 - 示例
- 从1.6开始不用我们手动加载驱动了
- 从1.6开始它会自动读这个文件
在JavaWeb中不支持自动注册,所以以后我们都要自己手动写上。 - 操作Mysql创建表
五个步骤 :
1.加载驱动
2.连接数据库
3.创建要执行的sql语句
4.执行sql
5.释放数据资源
其中创建执行语句这里注意:
Statement接口,用来执行静态SQL语句对象
把SQL语句发送到数据库中去执行。并返回执行的结果
对于DQL返回查询的结果集
对于DML返回受影响的行数
对于DDL返回0
函数:executeUpate(String)
是执行DML和DDL语句的
释放资源的注意:
为什么要释放资源
Connection连接就相当于Java和到Mysql之间建立管道
连接只连接到数据,Statement 就相当于从数据库又接了一个管道连接Mysql的执行程序
连接图
释放资源逻辑的意思就是把管道给撤了最后的总示例:
执行DML操作
和上面的差不多,不解释了
查询操作
- 结果集
ResultSet
表示数据库查询的结果的集合,在执行查询语句时就会得到一个这样的结果 - 常用方法
boolean next():判断是否有下一行数据,若有,则向下移动一行指针.
getXxx(int columnIndex):获取当前行中,第几列.(从1开始):不推荐
getXxx(String columnName):获取当前行中的,指定列名的列的值.columnName是列名/列的别名
若列的类型是VARCHAR/CHAR/TEXT,都使用getString来获取列的值.
若列的类型是int/integer/–>getInt来获取列的值. - 执行sql
executeQuery(Sql)会得到一个结果集
获了一个数据 - 获取一行数据
- 获取多行数据
- Mysql与Java数据类型对照表
DAO设计
- 没有使用DAO存在的问题
多个地方都要都同时做CRUD(就是增删改查)操作时,重复的代码就会很多 - 什么是DAO
Data Access Object(数据存取对象)
位于业务逻辑和持久化数据之间
实现对持久化数据的访问
示例图
ORM
- 什么是ORM
对象关系映射
将关系数据库中表中的记录映射成为对象,以对象的形式展现
因此ORM的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。
对应关系 - 示意图
domain
- 什么是domain
就是一个类
符合JavaBean规范
一个类当中有字段和该字段的getter与Setter方法
作用
是用户与数据库交互的核心中转站
示例
创建一个domain类 - 保存数据
- 获取数据