暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Java如何调用Halo数据库(三)-DriverManager

贾桂军 2024-05-23
147
    之前文章出现过DriverManager ,但是没有展开介绍过,本文将详细介绍
DriverManager是做什么的?
DriverManager 管理JDBC驱动程序的基础服务。DriverManger 可以注册、删除、加载的驱动程序,可以根据给定的url获取符合url协议的驱动Driver 并建立Conenction连接。
1、注册程序:在使用 JDBC 连接数据库之前,必须先注册适用于您的数据库的驱动程序。DriverManager 负责加载和注册这些驱动程序。
注册驱动源码
public static void register() throws SQLException {  if (isRegistered()) {    throw new IllegalStateException(        "Driver is already registered. It can only be registered once.");  }  Driver registeredDriver = new Driver();  DriverManager.registerDriver(registeredDriver);  Driver.registeredDriver = registeredDriver;}
取消驱动注册源码
 public static void deregister() throws SQLException {    if (registeredDriver == null) {      throw new IllegalStateException(          "Driver is not registered (or it has not been registered using Driver.register() method)");    }    DriverManager.deregisterDriver(registeredDriver);    registeredDriver = null;  }
加载驱动源码
  private synchronized Properties getDefaultProperties() throws IOException {    if (defaultProperties != null) {      return defaultProperties;    }
// Make sure we load properties with the maximum possible privileges. try { defaultProperties = AccessController.doPrivileged(new PrivilegedExceptionAction<Properties>() { public Properties run() throws IOException { return loadDefaultProperties(); } }); } catch (PrivilegedActionException e) { throw (IOException) e.getException(); }
return defaultProperties; }
2、创建连接:DriverManager 允许创建到数据库的连接,这是执行 SQL 操作的第一步。
public class JdbcDriverManagerTest {    private static final String URL = "jdbc:halo://localhost:1921/test";    private static final String USER = "root";    private static final String PASSWORD = "123456";    public void testJdbcRaw() throws Exception {        Class.forName("com.halo.Driver");        Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);        Statement stmt = conn.createStatement();        // PreparedStatement ptmt = conn.prepareStatement(sql);         ResultSet rs = stmt.executeQuery("SELECT username, age FROM user");        while(rs.next()){            System.out.println(“”);        }        conn.close();    }}
3、管理连接池:连接池是一组预先创建的数据库连接,可以在需要时被重复使用,以提高性能。DriverManager 可以与连接池一起使用。
以下是一个使用 HikariCP 连接池的示例:
import com.zaxxer.hikari.HikariConfig;import com.zaxxer.hikari.HikariDataSource;import java.sql.Connection;
import java.sql.SQLException;public class JDBCDemo { public static void main(String[] args) { HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:halo://localhost:1921/test"); config.setUsername("root"); config.setPassword("password"); // 创建 Hikari 数据源 HikariDataSource dataSource = new HikariDataSource(config); try { // 从连接池获取连接 Connection connection = dataSource.getConnection(); // 在此处执行数据库操作 // 关闭连接 connection.close(); } catch (SQLException e) { e.printStackTrace(); } }}
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论