使用JDBC连接mysql实现CURD操作

Java学习day01

1.JDBC

 1.1 什么是JDBC

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

1.2 连接mysql

1.导入jar包:mysql-connector-java-5.1.37-bin.jar。

2.创建JDBCTest

import java.sql.*;

public class JDBCTest {
    public static void main(String[] args) throws Exception{
        //1.注册驱动
        Driver driver = new com.mysql.jdbc.Driver();
        DriverManager.registerDriver(driver);
        //2.获得连接
        String url = "jdbc:mysql://ip:端口号/数据库名";
        String username = "username";
        String password = "password";
        Connection conn = DriverManager.getConnection(url,username,password);
        //3.创建sql语句执行对象
        Statement statement = conn.createStatement();
        //4.获取结果集对象
        String sql = "select * from tb_admin";
        ResultSet resultSet = statement.executeQuery(sql);
        //5.处理结果集对象
        while (resultSet.next()){
            System.out.println(resultSet.getObject("id"));
        }
        //6.释放资源
        resultSet.close();
        statement.close();
        conn.close();
    }
}

1.3 创建自己的JDBCUtils

为了方便以后的使用,创建自己的JDBCUtils。

import com.mysql.jdbc.Driver;

import java.io.FileInputStream;
import java.sql.*;
import java.util.Properties;

public class JDBCUtils {
    
    private static String url;
    private static String username;
    private static String password;
    
    static {
        try {
            /*
            阅读com.mysql.jdbc.Driver源码,该类在创建的时候就已经进了行驱动注册,
            所以直接创建该类避免2次注册
             */
            Class.forName("com.mysql.jdbc.Driver");
            
            //通过JDBCUtils.properties配置文件获取连接是需要的参数
            Properties properties = new Properties();
            properties.load(new FileInputStream("resourse/config.properties"));
            url = properties.getProperty("url");
            username = properties.getProperty("username");
            password = properties.getProperty("password");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    //获取Connection对象
    public static Connection getConn() throws SQLException {
        return DriverManager.getConnection(url,username,password);
    }
    
    //释放资源
    public static void CloseAll(Connection connection, Statement statement ,ResultSet resultSet){
        if(connection != null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(statement != null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (resultSet != null){
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
JDBCUtils.properties文件
url=jdbc:mysql://ip:端口号/数据库名
username=username
password=password

1.4创建JDBCUtilsTest

创建JDBCUtilsTest,测试我们刚刚写好的JDBCUtils。



import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class JDBCUtilsTest {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement ps = null;
        ResultSet resultSet = null;
        try {
            //获取连接对象
            connection = JDBCUtils.getConn();
            //获取sql语句执行对象,这里使用PreparedStatement以防止sql注入问题
            String sql = "select * from tb_admin where id = ?";
            ps = connection.prepareStatement(sql);
            //设置sql语句中的变量id
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入需要查询的id值");
            String id = scanner.nextLine();
            ps.setObject(1,id);
            //获取结果集
            resultSet = ps.executeQuery();
            while (resultSet.next()){
                System.out.println(resultSet.getObject("username"));
            }
            JDBCUtils.CloseAll(connection,ps,resultSet);

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

1.5 总结

JDBC规范了连接数据库的操作,无论连接什么种类的关系型数据库,均有相同的方法可以调用。

PS:本人萌新一枚,代码中若出现错误,请及时指正。

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值