# hrbu-jdbc
**Repository Path**: hrbu2024/hrbu-jdbc
## Basic Information
- **Project Name**: hrbu-jdbc
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-10-12
- **Last Updated**: 2026-10-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# JDBC
## 代码的顺序
- 项目
- 组织:
- com.neuedu
- org.jshand
- edu.hrbu
- 项目
- jdbc
- 版本号
- 1.0
- 1
- 2026-10-12
- 5.2.25.RELEASE
- 1.0-SNAPSHOT 快照版本()
- 下载jar(驱动)
- [mvnrepository…](https://mvnrepository.com/)
- 坐标
- com.mysql mysql-connector-j 8.4.0
- ```xml
com.mysql
mysql-connector-j
8.4.0
compile
```
- 编写代码
- 加载驱动到内存
- 创建连接 Connection (conn)
- 使用Connection 获取Statement (stmt)
- 使用Statement执行SQL语句
- insert 、update、delete : 返回影响行数
- select : 查询结果集 ResultSet (rs)
- ```sql
select empno ,ename, job,hiredate ,sal,comm ,deptno from emp
```
- 如果是查询 需要解析结果集
- RS rs.next() 用于判断数据集是否还有结果,
- 如果有结果返回true 并且指向有数据的下一行
- 获取当前行的所有字段
- rs.getint(1) rs.getString(2) rs.getString(3) rs.getString(4)
- rs.getint('empno') rs.getString('ename') rs.getString('job') rs.getString(4)
- 否则返回false
- 关闭资源
- rs、stmt、conn
## 创建项目

选择 quickstart 骨架
org.apache.maven.archetypes:maven-archetype-quickstart


## 基于junit进行单元测试
默认待的是 3.8.1的 junit 升级到 5.13.2
在pom中添加 依赖
```xml
org.junit.jupiter
junit-jupiter-api
5.14.4
test
```


### 使用junit
```java
package com.neuedu;
import org.junit.jupiter.api.Test;
public class JDBCTest {
//Test 注解
@Test
public void test1(){
System.out.println("测试1 ");
}
@Test
public void test2(){
System.out.println("测试2 ");
}
}
```

使用Test库进行 CRUD
import 导入这个类

## 三层架构
- Controller Servlet
- 接收请求、调用业务
- 返回结果.....
- Service
- 业务层 : 可以拥有事务
- 转账 :
- Dao 更新 张三
- Dao 更新 李四
- Dao Data Access Object 数据访问对象 单表的操作 JDBC
- insert(数据):影响行数
- update(数据):影响行数
- deletebyId(数据):影响行数
- deletebyCondition(数据):影响行数
- count(数据):整形
- selectById(主键) : 单行数据
- selectList(条件) : 多行数据
> 生成单元测试
>
> ALT+INSERT
选择Test


## JavaBean
属性 使用 基础类型的包装类
//基础类型 byte Byte short Shot int Integer long Long 0
//float Float double Double 0.0
//char Character ''
//boolean Boolean false
```java
package com.neuedu.entity;
import java.util.Date;
public class Emp {
//基础类型 byte short int long 0
// float double 0.0
// boolean false
//char ''空字符
private Integer empno;
private String ename;
private String job;
private Integer mgr;
private Date hiredate;
private Double sal;
private Double comm;
private Integer deptno;
private String address;
public Integer getEmpno() {
return empno;
}
public void setEmpno(Integer empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public Integer getMgr() {
return mgr;
}
public void setMgr(Integer mgr) {
this.mgr = mgr;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
public Double getSal() {
return sal;
}
public void setSal(Double sal) {
this.sal = sal;
}
public Double getComm() {
return comm;
}
public void setComm(Double comm) {
this.comm = comm;
}
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public static void main(String[] args) {
Emp emp = new Emp();
System.out.println(emp);
System.out.println(emp);
System.out.println(emp);
System.out.println(emp);
System.out.println(emp);
}
}
```
EmpDaao
```java
package com.neuedu.dao;
import com.neuedu.entity.Emp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.List;
public class EmpDao {
/**
* 插入数据
* @return
*/
public int insert(Emp emp){
//自定义需要关闭的资源对象
Connection conn = null;
Statement stmt = null;
int count = 0;
try{
//1 加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2 创建连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
//3 创建Statement
stmt = conn.createStatement();
// 4 执行SQL
String sql = "INSERT INTO `test`.`emp` ( `empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno` " +
") " +
"VALUES " +
" ( "+emp.getEmpno()+", '"+emp.getEname()+"', '"+emp.getJob()+"', "+emp.getMgr()+", '"+emp.getHiredate()+"', "+emp.getSal()+", "+emp.getComm()+", "+emp.getDeptno()+" ) " ;
count = stmt.executeUpdate(sql);
}catch (Exception e){
//打印出现异常的栈信息
e.printStackTrace();
}finally {
//关闭资源
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
return count;
}
}
```

事务
# JavaWeb
基于Http协议
```java
package com.neuedu;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer
{
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8080);
Socket accept = server.accept();
InputStreamReader reader = new InputStreamReader(accept.getInputStream());
OutputStreamWriter writer = new OutputStreamWriter(accept.getOutputStream());
new Thread(() -> {
try {
writer.write("hello ....");
} catch (IOException e) {
throw new RuntimeException(e);
}
}).start();
while (true){
char c = (char)reader.read();
System.out.print(c);
}
}
}
```

## 安装中间件
- Tomcat
- Jetty
- Weblogic
### 下载
[Apache Tomcat® - Apache Tomcat 10 Software Downloads](https://tomcat.apache.org/download-10.cgi)


### 安装
解压缩 ( 需要安装JDK 并且配置 JAVA_HOME)


执行bin目录中的 startup.bat

测试网站是否可用
http://localhost:8080

### 在IDEA中集成Tomcat


选择Tomcat Server

