Java程序设计基础------JDBC

最近在学JDBC,这篇博客来就来巩固自己学到的知识。

首先我们讲一下JDBC使用使用条件:下载Mysql,然后安装Mysql的驱动,具体的安装方式在这就不说了,到Mysql的官网去下载。

JDBC中的五大对象

DriverManager:驱动管理对象

Connection:数据库连接对象

Statement:执行SQL语句的对象

PrepareStatement:执行SQL语句的对象,与上面的那个对象有区别,具体的区别在下面介绍

ResultSet:结果集对象 

运行实例介绍:

package JDBC;

import java.sql.*;

public class JDBCDemo1 {

    public static void main(String[] args) {

        try {
            //注册驱动  告诉程序在用哪个数据库
            Class.forName("com.mysql.cj.jdbc.Driver");
            //建立连接
            Connection connection = DriverManager.getConnection("jdbc:mysql:///student? serverTimezone=GMT&useSSL=false", "root", "yanzhiguo140710");
            //建立Statement对象
            Statement statement = connection.createStatement();
            //执行查询语句
            String sql = "SELECT * FROM goods";
            //statement.executeUpdate("");//这个语句执行的是数据的增删改操作 返回的是改动的行数
            ResultSet resultSet = statement.executeQuery(sql);
            //将查询的结果打印在窗口中
            while (resultSet.next()){
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String values = resultSet.getString("value");
                System.out.println(id);
                System.out.println(name);
                System.out.println(values);

            }//捕获异常
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

很显然,这样做太麻烦,每次连接数据库,都要做一些重复性的操作,因此前人总结很好的方法,就是建立JDBCUtil类,这样就方便用户连接数据库和释放各种的资源,也能够减少代码的书写。

JDBCUtil类的编写:

package JDBC;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.sql.*;
import java.util.Properties;

public class JDBCUtil {
    private static String url;
    private static String user;
    private static String password;
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            ClassLoader classLoader = JDBCUtil.class.getClassLoader();
            InputStream resourceAsStream = classLoader.getResourceAsStream("JDBC.properties");
            Properties pro = new Properties();
            pro.load(resourceAsStream);
            url = pro.getProperty("url");
            user = pro.getProperty("username");
            password = pro.getProperty("password");


        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
        e.printStackTrace();
        }

    }

    /**
     * 建立连接
     * @return
     */
    public static Connection connectinon(){
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url, user, password);

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

        return conn;
    }

    /**
     * 数据库的关闭操作
     * @param conn
     * @param pstat
     * @param res
     */
    public static void close(Connection conn, PreparedStatement pstat, ResultSet res){
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (pstat != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (res != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}
JDBC.properties中的内容:
driver=com.mysql.cj.jdbc.Driver

url=jdbc:mysql:///student?serverTimezone=GMT&useSSL=false

username=root

password=***********#数据库密码

测试类:

package JDBC;

import java.sql.*;

public class JDBCDemo2 {
    public static void main(String[] args) {
        Connection connectinon = JDBCUtil.connectinon();
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        String sql = "select * from goods";
        try {
            preparedStatement = connectinon.prepareStatement(sql);
            resultSet = preparedStatement.executeQuery();
            while (resultSet.next()){
                System.out.print(resultSet.getString(1));
                System.out.print(resultSet.getString(2));
                System.out.println(resultSet.getString(3));
            }

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

        JDBCUtil.close(connectinon,preparedStatement,resultSet);


    }
}

这样以看是不是简单很多啊,而且能够重复调用,灵活性大,便于管理!

结果是:

 这样JDBC的入门就说完了,接下来说一说数据库连接池---Druid连接池,这是阿里人员编写的数据库连接池。

猜你喜欢

转载自blog.csdn.net/yanzhiguo98/article/details/88959032