java与Mysql --JDBC技术

# JDBC

Java DataBase Connectivity Java数据库连接.

## 第一步:准备数据库驱动

在Maven中下载MySQL的驱动.

![1555553733394](assets/1555553733394.png)

![1555553766175](assets/1555553766175.png)

## 第二步:构建SE项目

![1555553988521](assets/1555553988521.png)

## 第三步:提供Lib目录

在项目的根目录下提供Folder(文件夹)lib用于盛放项目中所需要使用的第三方Jar文件

![1555554092040](assets/1555554092040.png)

## 第四步:添加所需要的Jar文件并完成依赖关系

把MySQL的驱动Jar文件复制到lib目录下.并右键把Jar文件添加依赖关系.

![1555554171832](assets/1555554171832.png)

完成后我的目录结构应该是:

![1555554264878](assets/1555554264878.png)

## 第五步:建立数据表

> ​    这里使用Stu

![1555554422004](assets/1555554422004.png)

```mysql
DROP TABLE IF EXISTS `stu`;
CREATE TABLE `stu` (
  `sid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `sname` varchar(50) DEFAULT NULL,
  `sage` int(10) unsigned DEFAULT NULL,
  `sgender` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`sid`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- ----------------------------
-- Records of stu
-- ----------------------------
INSERT INTO `stu` VALUES ('1', '张三', '17', '男');
INSERT INTO `stu` VALUES ('2', '李四', '18', '男');
INSERT INTO `stu` VALUES ('3', '王五', '19', '男');
INSERT INTO `stu` VALUES ('4', '赵六', null, '男');
INSERT INTO `stu` VALUES ('5', '孙七', '17', '女');

```

## 第六步:建立PO类

### JavaEE的三层结构

JavaEE典型的三层结构:

* 控制层
* 业务层
* 持久层

我们下项目中往往会按照这个结构进行分包.

* 建立包含所有PO类的包 com.XXX.bean/model/domain
* 建立包含所有业务的包  com.XXX.biz/service
* 建立包含所有数据库操作的包  com.XXX.dao

业务和数据库操作都有两套

* dao/service                           接口
* daoImpl/serviceImpl                      实现类

![1555555017641](assets/1555555017641.png)

所以我们项目的包结构是

![1555555118844](assets/1555555118844.png)

### PO 和 BO 和 POJO

- POJO(Plain ordinary java object) 简单java对象
- BO(Business Object) 业务对象 
- PO(Persistant Object) 持久对象 

POJO 就是一个普通的JavaBean. 

PO 类.该类往往映射数据库中的某张表.简单说就是就是数据表中有什么字段.该类就有什么字段.除了字段以外就是GET和SET方法.

BO 是数据库没有与之对应的表.但是在业务执行过程中需要使用该类型的对象.这样的类就是BO类.

### 建立对应的Stu类和提供Dao、Service

### 目录

![1555555625582](assets/1555555625582.png)

## 第七步:写获取数据库连接的工具类

凡是需要对数据库做操作的地方都需要和数据库进行连接。我们把连接的功能抽取出来定义成工具类

### 修改Eclipse的类注释模板

![1555557827701](assets/1555557827701.png)

![1555557883876](assets/1555557883876.png)

如果要改类的模板选择Types, 在Edit弹出的窗口中提供如下内容

```java
/**
 * @ClassName:  ${type_name}   
 * @Description:${todo}(这里用一句话描述这个类的作用)   
 * @author: ${user}
 * @date:   ${date} ${time}   
 *   
 * ${tags}  
 * @Copyright: ${year} www.hwua.com Inc. All rights reserved. 
 * 
 */
```

### JDBC所需要使用的三个类/接口

Java想要完成JDBC的操作需要通过三个类/接口来完成

* java.sql.Connection         数据库连接对象
* java.sql.PreparedStatement  数据库预处理对象 加载SQL语句
* java.sql.ResultSet                    数据库结果集对象 封装了查询的结果集.

### 提供保存连接数据库的四个参数的配置文件

在SRC根目录下新建配置文件config.properties

![1555558509111](assets/1555558509111.png)

![1555558564803](assets/1555558564803.png)

### 提供具体的配置

```properties
# Drvier Class Jar包中的Driver.class的完整路径
driver=com.mysql.cj.jdbc.Driver
# URL
url=jdbc:mysql://localhost:8888/tc39;    
# User Name
user=root
# PassWord
password=123456
```

* driver 数据库连接驱动Jar文件中Driver.class的完整路径

![1555558838381](assets/1555558838381.png)

* url 请求的路径 请求连接的数据库的路径

```shell
https://www.baidu.com
jdbc:mysql://localhost:8888/数据库
格式:
协议名://Host IP Address : 端口号 / 访问的资源

//-- Oracle的写法有点特殊
jdbc:oracle:thin:locahost:1521/ 数据库
```

* user 数据库的登录用户名 root
* password 上面用户登录所使用的密码

# 连接池

# 反射

# JDBC的模板类

# 参考

1. [类注释模板修改](<https://www.cnblogs.com/lr393993507/p/5867623.html>)
2. [常见的数据库端口号](<https://www.cnblogs.com/ziranquliu/p/6220587.html>)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值