中软国际暑期实习day01(2020.08.10)-JDBC

今天是暑期实习的第一天,主要是配置一些安装环境以及复习有关JDBC的知识。

  • 开发工具:IDEA
  • 数据库:MySql
  • 数据库工具:Navicat

文章目录
  • 1.JDBC概述
  • 2.JDBC的使用
    • (1)环境准备
    • (2)建立数据库
    • (3)建立JDBC配置文件`jdbc.properties`
    • (4)建立JDBC工具类`JDBCUtil`
    • (5)建立一个测试类进行测试
    • (6)执行该测试类
  • 3.JDBC总结

1.JDBC概述 JDBC(Java Database Connectivity)Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
有了JDBC,用Java操作数据库就更方便快捷了。
2.JDBC的使用 (1)环境准备 导入相应的mysql驱动。
中软国际暑期实习day01(2020.08.10)-JDBC
文章图片

(2)建立数据库
/* Navicat Premium Data Transfer Source Server: localhost_3306 Source Server Type: MySQL Source Server Version : 50728 Source Host: localhost:3306 Source Schema: test Target Server Type: MySQL Target Server Version : 50728 File Encoding: 65001 Date: 14/08/2020 20:33:00 */SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user`( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES (1, 'xiaoming', '123'); INSERT INTO `user` VALUES (2, 'xiaohong', '123'); INSERT INTO `user` VALUES (3, 'xiaogang', '123'); SET FOREIGN_KEY_CHECKS = 1;

(3)建立JDBC配置文件jdbc.properties
driver = com.mysql.jdbc.Driver url = jdbc:mysql://localhost:3306/test?useSSL=false user = root password = 123456

(4)建立JDBC工具类JDBCUtil 由于在实际项目里面,会多次访问数据库,因此将相关数据库的操作抽象成一个类,以方便开发。
import java.io.FileReader; import java.io.IOException; import java.net.URL; import java.sql.*; import java.util.Properties; /** * @className: JDBCUtil * @description: * @author: * @date: 10/08/2020 14:00 */ public class JDBCUtil { private static String url; private static String user; private static String password; static { try{// 加载配置文件 Properties properties=new Properties(); ClassLoader classLoader=JDBCUtil.class.getClassLoader(); URL res=classLoader.getResource("jdbc.properties"); assert res != null; String path=res.getPath(); properties.load(new FileReader(path)); // 进行数据库配置 String driver = properties.getProperty("driver"); url=properties.getProperty("url"); user=properties.getProperty("user"); password=properties.getProperty("password"); //注册驱动 Class.forName(driver); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } }// 得到数据库连接 public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url,user,password); }// 释放数据库资源 public static void close(Statement statement,Connection connection) throws SQLException { if(statement!=null){ statement.close(); }if(connection!=null){ connection.close(); } }// 释放数据库资源 public static void close(ResultSet resultSet, Statement statement, Connection connection) throws SQLException { if(resultSet!=null){ resultSet.close(); }close(statement,connection); } }

(5)建立一个测试类进行测试 JdbcTest.java
import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; /** * @className: JdbcTest * @description: * @author: * @date: 10/08/2020 13:59 */ public class JdbcTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入用户名"); String username = scanner.nextLine(); System.out.println("请输入密码"); String password = scanner.nextLine(); try { boolean deleteFlag = new JdbcTest().delete(username, password); if (deleteFlag) { System.out.println("删除成功"); } else { System.out.println("删除失败"); }} catch (SQLException e) { e.printStackTrace(); }}/** * 删除 * * @param username * @param password * @return * @throws SQLException */ public boolean delete(String username, String password) throws SQLException { if (username == null || password == null) { return false; }Connection connection = null; Statement statement = null; try { connection = JDBCUtil.getConnection(); String sql = "delete from test.user where username = '" + username + "'and password = '" + password + "'"; statement = connection.createStatement(); int count = statement.executeUpdate(sql); return count > 0; } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtil.close(statement, connection); }return false; } }

(6)执行该测试类 输入正确的用户名和密码便会删除该用户,否则便不会,由于比较简单,这里不展示最终结果。
3.JDBC总结
  • JDBC是Java操作数据库的一套接口(标准)
  • 使用JDBC前需导入相应的驱动
  • 配置JDBC
    • driver:驱动
    • url:数据库地址
    • username:数据库用户
    • password:相应数据库用户对应密码
  • 使用JDBC
    • 导入读取配置文件
    • 进行数据库配置
    • 注册数据库驱动
    • 获取数据库连接
    • 编写相应的sql语句
    • 获取执行sql语句的对象:Statement
    • 执行sql语句
      • executeUpdate:执行增删改操作
      • executeQuery:执行查操作
    • 处理结果
    • 释放资源
【中软国际暑期实习day01(2020.08.10)-JDBC】中软国际暑期实习day01(2020.08.10)-JDBC
文章图片

    推荐阅读