栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

请描述使用JDBC访问数据库的步骤

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

请描述使用JDBC访问数据库的步骤

JDBC访问数据库的步骤:

    加载驱动类
		static{
		//1.注册驱动程序--只执行一次即可
		//driverManager直接注册驱动程序,获取connection对象
		try {
			DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
    创建数据库连接对象
public static Connection getConnection(){
		String url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=UTF-8&useSSL=false";
		String name = "root";
		String password = "123321";
		Connection conn = null;
		try {
			//获取类型从而注册
			//Class.forName("com.mysql.jdbc.Driver");
			//获取Conncetion接口的实例,并不知道实现类,屏蔽实现的细节
			conn = DriverManager.getConnection(url, name, password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
    创建一个Statement语句对象
Statement stmt = conn.createStatement();
    执行sql命令,除了查询语句其他都用executeUpdate()
String sql = "select * from user";
        try {
            ResultSet rs=stmt.executeQuery(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    处理结果集:
			while (rs.next()) {
                user.setId(rs.getLong(1));
                user.setUsername(rs.getString(2));
                user.setPassword(rs.getString(3));
                userList.add(user);
            }
    关闭资源。考点:关闭资源的时候要总里往外关闭
    先关闭先关闭结果集,再关闭声明的对象,最后再关闭连接
//关闭操作:对所有打开的资源进行关闭
	public static void close(Connection conn, Statement st, PreparedStatement ps, ResultSet rs){
		try {
			if(rs != null)
				//关闭结果集
				rs.close();
			if(st != null)
				//关闭声明的对象
				st.close();
			if(ps != null)
				//关闭声明的对象
				ps.close();
			if(conn != null)
				//关闭连接
				conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

整体代码:

package com.demo;

import com.demo.entity.User;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class DBUtils {

    static {
        //1.注册驱动程序--只执行一次即可
        //driverManager直接注册驱动程序,获取connection对象
        try {
            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static Connection getConnection() {
        String url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=UTF-8&useSSL=false";
        String name = "root";
        String password = "123321";
        Connection conn = null;
        try {
            //获取类型从而注册
            //Class.forName("com.mysql.jdbc.Driver");
            //获取Conncetion接口的实例,并不知道实现类,屏蔽实现的细节
            conn = DriverManager.getConnection(url, name, password);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }

    //关闭操作:对所有打开的资源进行关闭
    public static void close(Connection conn, Statement st, PreparedStatement ps, ResultSet rs) {
        try {
            if (rs != null)
                rs.close();
            if (st != null)
                st.close();
            if (ps != null)
                ps.close();
            if (conn != null)
                conn.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static List executeSQL() throws SQLException {

        Connection conn = getConnection();
        Statement stmt = conn.createStatement();
        String sql = "select * from user";
        List userList = new ArrayList<>();
        try {
            ResultSet rs = stmt.executeQuery(sql);
            User user = new User();
            while (rs.next()) {
                user.setId(rs.getLong(1));
                user.setUsername(rs.getString(2));
                user.setPassword(rs.getString(3));
                userList.add(user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close(conn, stmt, null, null);
        }
        return userList;
    }

    public static void main(String[] args) throws SQLException {

        List userList = executeSQL();
        userList.forEach(System.out::println);
    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号