Java Durid进行JDBC连接详解

Java Druid进行JDBC连接详解

简介

Druid是阿里巴巴开源的一个数据库连接池,Druid本身包含了JDBC和数据库连接池的实现,可以提供比JDBC更强大的扩展性和可用性。本攻略将详细介绍如何使用Java Druid进行数据库连接。

步骤

引入Druid依赖

在pom.xml中添加下面的依赖:

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.1.8</version>
</dependency>

配置Druid数据源

编写配置类,配置Druid数据源

@Configuration
public class DruidConfig {

    @Bean
    public DruidDataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/test");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        return dataSource;
    }
}

其中包含了设置驱动、URL、用户名、密码等信息。

获取Druid连接

在代码中使用@Autowired注解进行自动注入,并通过getConnection()方法获取Druid连接。

@Autowired
private DataSource dataSource;

Connection conn = dataSource.getConnection();

示例

下面通过两个示例,对Druid进行使用说明。

示例一:查询数据库中user表的全部数据

@Service
public class UserService {

    @Autowired
    private DataSource dataSource;

    public List<Map<String, Object>> selectAll() throws SQLException {
        List<Map<String, Object>> result = new ArrayList<>();
        try (
                Connection conn = dataSource.getConnection();
                PreparedStatement ps = conn.prepareStatement("SELECT * FROM user");
                ResultSet rs = ps.executeQuery()
        ) {
            while (rs.next()) {
                Map<String, Object> map = new HashMap<>();
                map.put("id", rs.getInt("id"));
                map.put("name", rs.getString("name"));
                map.put("age", rs.getInt("age"));
                map.put("gender", rs.getString("gender"));
                result.add(map);
            }
        }
        return result;
    }
}

使用JDBC的标准方式查询数据库中的user表。

在Controller中调用UserService中的selectAll()方法,获取从数据库中查询出的用户信息。

@GetMapping("/selectAll")
public Object selectAll() throws SQLException {
    return userService.selectAll();
}

示例二:使用Druid进行数据库连接操作

@Service
public class DruidUserService {

    @Autowired
    private DataSource dataSource;

    public List<Map<String, Object>> selectAll() throws SQLException {
        List<Map<String, Object>> result = new ArrayList<>();
        try (
                Connection conn = dataSource.getConnection();
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery("SELECT * FROM user");
        ) {
            while (rs.next()) {
                Map<String, Object> map = new HashMap<>();
                map.put("id", rs.getInt("id"));
                map.put("name", rs.getString("name"));
                map.put("age", rs.getInt("age"));
                map.put("gender", rs.getString("gender"));
                result.add(map);
            }
        }
        return result;
    }
}

通过Druid进行数据库操作,将数据库连接的获取方式进行了封装。

在Controller中调用DruidUserService中的selectAll()方法,获取从数据库中查询出的用户信息。

@GetMapping("/selectAllByDruid")
public Object selectAllByDruid() throws SQLException {
    return druidUserService.selectAll();
}

结束语

以上,就是关于Java Druid进行JDBC连接的详细攻略。希望有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Durid进行JDBC连接详解 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • SpringBoot 接口开发教程(httpclient客户端)

    下面我就详细讲解一下SpringBoot接口开发教程(httpclient客户端)的完整攻略。 1. 准备工作 在开始学习SpringBoot的接口开发教程时,我们需要做好以下的准备工作: 熟悉Java语言基础知识。 熟悉SpringBoot框架的基础知识和使用方式。 安装好Java开发环境和Maven构建工具。 2. 了解httpClient httpCl…

    Java 2023年5月19日
    00
  • 基于Java实现修改图片分辨率示例代码

    下面就是详细的攻略: 1. 概述 本文将为大家介绍如何用Java代码实现修改图片分辨率的功能,主要文本内容包括:开发环境准备、示例代码说明、代码分析以及实例应用。 2. 开发环境准备 Java实现修改图片分辨率的功能,需要用到ImageIO和Awt工具包,所以需要在应用程序中引用这两个工具包。以下是开发所需的环境: JDK 1.8及以上版本 Eclipse开…

    Java 2023年5月19日
    00
  • SpringBoot和Redis实现Token权限认证的实例讲解

    下面我会为您介绍如何使用Spring Boot和Redis实现Token权限认证。 为什么使用Token认证? 在Web应用程序中,为了保护页面和API,需要用户进行登录并验证其身份。其中一种常用的方法是使用Token认证。在Token认证中,用户首先输入用户名和密码进行登录,验证成功后,服务器会返回一个Token令牌,将其存储在客户端。随后,客户端将该To…

    Java 2023年5月20日
    00
  • Javaweb resin4如何配置端口虚拟目录

    下面是关于Javaweb Resin4如何配置端口虚拟目录的攻略。 1. 端口配置 1.1 修改 Resin 配置文件 首先需要打开Resin的配置文件resin.xml。可以在该文件中找到以下代码段: <cluster id="app"> <host id="app0"> <web-ap…

    Java 2023年6月15日
    00
  • JAVA SpringBoot统一日志处理原理详解

    JAVA SpringBoot统一日志处理原理详解 在JAVA SpringBoot框架中,通过统一日志处理可以将所有的日志信息都记录下来,并按照指定的格式输出。本文将讲解JAVA SpringBoot统一日志处理的原理和使用方法。 为什么要进行统一日志处理? 在实际开发过程中,我们需要记录很多日志信息,以便我们去检查程序的运行情况,或者是查找问题。然而,如…

    Java 2023年5月19日
    00
  • Json转化为Java对象的实例详解

    下面我来详细讲解一下“Json转化为Java对象的实例详解”。 什么是Json转化为Java对象 首先,我们需要了解一下什么是Json。Json(JavaScript Object Notation) 是一种轻量级的数据交换格式,常用于前后端数据交互和存储数据。一般来说,我们将Json数据转化为Java对象的过程称之为”Json转化为Java对象”。 Jso…

    Java 2023年5月26日
    00
  • HttpServletRequest对象方法的用法小结

    HttpServletRequest对象是Java EE中常用的请求对象,表示一个HTTP请求,包含了请求的头部信息、参数、Cookie、Session等。下面我们来详细讲解HttpServletRequest对象方法的用法: 请求行信息 获取HTTP请求的请求URL、请求方式、协议版本、URI、参数等请求行信息,主要包含以下方法: getRequestUR…

    Java 2023年6月15日
    00
  • Java基础知识之StringWriter流的使用

    下面是“Java基础知识之StringWriter流的使用”的完整攻略。 1. StringWriter流简介 在Java中,StringWriter流是一个带有自动缓冲区的字符流。通过使用StringWriter流,我们可以在内存中实现写字符串操作。StringWriter流无需指定目标文件或控制台输出等设备,可以将数据流写入到内存中的缓冲区,直到输出完毕…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部