# 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 ## 创建项目 ![image-20261012085533185](assets/image-20261012085533185.png) 选择 quickstart 骨架 org.apache.maven.archetypes:maven-archetype-quickstart ![image-20261012085806146](assets/image-20261012085806146.png) ![image-20261012090126756](assets/image-20261012090126756.png) ## 基于junit进行单元测试 默认待的是 3.8.1的 junit 升级到 5.13.2 在pom中添加 依赖 ```xml org.junit.jupiter junit-jupiter-api 5.14.4 test ``` ![image-20261012090635103](assets/image-20261012090635103.png) ![image-20261012090812184](assets/image-20261012090812184.png) ### 使用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 "); } } ``` ![image-20261012091222384](assets/image-20261012091222384.png) 使用Test库进行 CRUD import 导入这个类 ![image-20261012093418514](assets/image-20261012093418514.png) ## 三层架构 - Controller Servlet - 接收请求、调用业务 - 返回结果..... - Service - 业务层 : 可以拥有事务 - 转账 : - Dao 更新 张三 - Dao 更新 李四 - Dao Data Access Object 数据访问对象 单表的操作 JDBC - insert(数据):影响行数 - update(数据):影响行数 - deletebyId(数据):影响行数 - deletebyCondition(数据):影响行数 - count(数据):整形 - selectById(主键) : 单行数据 - selectList(条件) : 多行数据 > 生成单元测试 > > ALT+INSERT 选择Test ![image-20261012133205769](assets/image-20261012133205769.png) ![image-20261012133250088](assets/image-20261012133250088.png) ## 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; } } ``` ![image-20261012144844177](assets/image-20261012144844177.png) 事务 # 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); } } } ``` ![image-20261012164835405](assets/image-20261012164835405.png) ## 安装中间件 - Tomcat - Jetty - Weblogic ### 下载 [Apache Tomcat® - Apache Tomcat 10 Software Downloads](https://tomcat.apache.org/download-10.cgi) ![image-20261012164956944](assets/image-20261012164956944.png) ![image-20261012165235559](assets/image-20261012165235559.png) ### 安装 解压缩 ( 需要安装JDK 并且配置 JAVA_HOME) ![image-20261012165325428](assets/image-20261012165325428.png) ![image-20261012165403770](assets/image-20261012165403770.png) 执行bin目录中的 startup.bat ![image-20261012165509841](assets/image-20261012165509841.png) 测试网站是否可用 http://localhost:8080 ![image-20261012165552803](assets/image-20261012165552803.png) ### 在IDEA中集成Tomcat ![image-20261012165633738](assets/image-20261012165633738.png) ![image-20261012165718932](assets/image-20261012165718932.png) 选择Tomcat Server ![image-20261012165733974](assets/image-20261012165733974.png) ![image-20261012165800434](assets/image-20261012165800434.png)