当前位置: 首页 > news >正文

JavaWeb学习打卡18(JDBC案例详解)

什么是JDBC:Java连接数据库!

连接数据库需要 jar 包的支持:

  • java.sql
  • javax.sql
  • mysql-conneter-java.... (连接驱动所需要的包,必须要导入)

 JDBC实现:

导入数据库依赖:

  <!--       Mysql的驱动-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency>

在 Mysql 中创建一个 jdbc 数据库 ,并创建一个  users  数据表

IDEA中连接数据库:

在IDEA中向数据库编写 sql 命令:

JDBC 固定步骤:

1.加载驱动

2.连接数据库,代表数据库

3.向数据库发送SQL的对象Statement:CRUD(增删改查)

4. 编写SQL(根据业务,写不同的SQL)

5.执行SQL

6.关闭连接,释放资源(先开的资源后关)

package com.xu.test;import com.mysql.jdbc.Driver;import java.sql.*;public class TestJdbc {public static void main(String[] args) throws ClassNotFoundException, SQLException {//配置信息//useUnicode=true&characterEncoding=utf-8 解决中文乱码问题//useSSL=true  建立安全连接String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8&useSSL=true";String username = "root";String password = "123456";//1.加载驱动Class.forName("com.mysql.jdbc.Driver");//这里有可能会爆红找不到这个类,我们抛出一下异常即可//2.连接数据库,Connection connection = DriverManager.getConnection(url, username, password);//这里也需要抛出异常//3.向数据库发送SQL 对象Statement:CRUD(增删改查)Statement statement = connection.createStatement();//4.编写SQLString sql = "select * from jdbc.users;";//5.执行 查询 SQL用:executeQuery(sql) ,返回一个结果集//执行 增加,修改,删除的 SQL 用:statement.executeUpdate(sql),返回的受影响的行数//int i = statement.executeUpdate(sql);ResultSet rs = statement.executeQuery(sql);//rs里面存在数据则遍历出来while (rs.next()){System.out.println("id="+rs.getObject("id"));System.out.println("username="+rs.getObject("username"));System.out.println("pwd="+rs.getObject("pwd"));System.out.println("email="+rs.getObject("email"));System.out.println("birthday="+rs.getObject("birthday"));}//6.关闭连接,释放资源(一定要做)先开后关rs.close();statement.close();connection.close();}
}

运行结果:

测试JDBC插入数据:

package com.xu.test;import java.sql.*;public class TestJdbc {public static void main(String[] args) throws ClassNotFoundException, SQLException {//配置信息//useUnicode=true&characterEncoding=utf-8 解决中文乱码问题//useSSL=true  建立安全连接String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8&useSSL=true";String username = "root";String password = "123456";//1.加载驱动Class.forName("com.mysql.jdbc.Driver");//这里有可能会爆红找不到这个类,我们抛出一下异常即可//2.连接数据库,Connection connection = DriverManager.getConnection(url, username, password);//这里也需要抛出异常//3.编写SQLString sql = "insert into jdbc.users(id, username, pwd, email, birthday) VALUES (?,?,?,?,?);";//4.预编译PreparedStatement preparedStatement = connection.prepareStatement(sql);preparedStatement.setInt(1,4);//给第一个占位符 ? 赋值为 1preparedStatement.setString(2,"小许");//给第二个占位符 ? 赋值为 小许preparedStatement.setString(3,"123456");//给第三个占位符 ? 赋值为 123456preparedStatement.setString(4,"654321@qq.com");//给第四个占位符 ? 赋值为 654321@qq.compreparedStatement.setDate(5,new Date(new java.util.Date().getTime()));//给第五个占位符 ? 赋值为 new Date(new java.util.Date().getTime())//5.执行SQLint i = preparedStatement.executeUpdate();if (i > 0){System.out.println("插入成功@");}//6.关闭连接,释放资源(一定要做)先开后关preparedStatement.close();connection.close();}
}

运行结果:

Junit 单元测试

添加依赖:

        <dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId><version>5.7.2</version></dependency>

简单使用

@Test注解只有在方法上有效,只要加了这个注解的方法,就可以直接运行!

package com.xu.test;import org.junit.jupiter.api.Test;public class TestDemo {@Testpublic void test(){System.out.println("这里是Test 注解测试方法");}
}

运行结果(正确):

若报错,则直接回说明错误:

http://www.dtcms.com/a/304610.html

相关文章:

  • ansible 使用更高版本的python版本
  • Python中的决策树机器学习模型简要介绍和代码示例(基于sklearn)
  • 【牛客网C语言刷题合集】(五)——主要二进制、操作符部分
  • GO 开发环境安装及配置
  • Claude Code 使用教程(对接智谱模型)
  • 84、【OS】【Nuttx】【启动】栈溢出保护:asm 关键字(下)
  • SpringBoot集成Quzrtz实现定时任务
  • 【目标检测】小样本度量学习
  • 记录一个TI DSP编译器的Bug
  • CentOS安装ffmpeg并转码视频为mp4
  • 预过滤环境光贴图制作教程:第四阶段 - Lambert 无权重预过滤(Stage 3)
  • 预过滤环境光贴图制作教程:第一步 - HDR 转立方体贴图
  • Android Compose 自定义组件完全指南
  • 对College数据进行多模型预测(R语言)
  • 《React与Vue构建TODO应用的深层逻辑》
  • 【lucene】SegmentCoreReaders
  • linux_前台,后台进程
  • LeetCode热题100——155. 最小栈
  • (LeetCode 面试经典 150 题) 150. 逆波兰表达式求值 (栈)
  • 电脑主机显示的python版本是3.8.6,但是我在控制面板没有找到,想删除不知道怎么操作怎么办
  • 《 java 随想录》| LeetCode链表高频考题
  • 【LeetCode】大厂面试算法真题回忆(111)--身高排序
  • 鱼皮项目简易版 RPC 框架开发(五)
  • 2.oracle保姆级安装教程
  • 逐渐走进Ai世界~
  • Django模型开发:模型字段、元数据与继承全方位讲解
  • Unity_SRP Batcher
  • 【WRF-Chem 实例1】namelist.input 详解- 模拟CO2
  • 基于AI代码疫苗技术的开源软件供应链安全治理
  • C# _列表(List<T>)_ 字典(Dictionary<TKey, TValue>)