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

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

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

1.JDBC概述

JDBC(Java Database Connectivity)Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
有了JDBC,用Java操作数据库就更方便快捷了。

2.JDBC的使用

(1)环境准备

导入相应的mysql驱动。
在这里插入图片描述

(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:执行查操作
    • 处理结果
    • 释放资源

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值