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 注解测试方法");} }
运行结果(正确):
若报错,则直接回说明错误: