Java使用JDBC连接mysql数据库并封装数据

您所在的位置:网站首页 idea数据库连接工具 Java使用JDBC连接mysql数据库并封装数据

Java使用JDBC连接mysql数据库并封装数据

2022-12-14 00:56| 来源: 网络整理| 查看: 265

一、目的:

使用JDBC连接数据库,并提供统一的查询入口,返回指定格式的数据。

二、工具:

1)jdk1.8+(其他版本未测)

2)mysql5.7

3)mysql-connector-java-5.1.40-bin.jar

4)java IDE,可以使用eclipse或者idea等,本文演示使用eclipse-Oxygen.2

三、过程:

java的安装和环境变量配置过程略。

mysql的安装和配置过程略。

在eclipse中新建一个java工程(也可以新建动态web工程,因为本文的目的是编写工具类,所以只建java工程即可),命名为Test。

创建java工程

然后引入JDBC驱动包(驱动包在哪里就去哪里找~_~)。

引入JDBC驱动包

接下来在com.re.utils包下新建工具类JdbcUtils.java。

JdbcUtils类代码:

package com.re.utils; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import org.json.JSONArray; import org.json.JSONObject; public class JdbcUtils { // 驱动名称 private String jdbcDriver = ""; // 数据库地址 private String jdbcUrl = ""; // 数据库用户名 private String jdbcUser = ""; // 数据库密码 private String jdbcPassword = ""; // c3p0配置文件路径 private String c3p0url = ""; // 数据库连接类型 private String connectionType = "jdbc"; // 以mySQL为例,参数格式如下: // jdbcDriver = "com.mysql.jdbc.Driver"; // jdbcUrl = "jdbc:mysql://localhost:3306/test"; // jdbcUser = "root"; // jdbcPassword = "root"; /** * 带参构造方法 * * @param driver * 驱动名称 * @param url * 数据库地址 * @param user * 数据库用户名 * @param password * 数据库密码 */ public JdbcUtils(String driver, String url, String user, String password) { // 设定各项参数,包括数据库连接、驱动类型 this.setJdbcDriver(driver); this.setJdbcUrl(url); this.setJdbcUser(user); this.setJdbcPassword(password); } /** * 带参构造方法(C3P0) * * @param c3p0url * C3P0配置文件路径 */ public JdbcUtils(String c3p0url) { this.setC3p0url(c3p0url); this.setConnectionType("c3p0"); } public String getJdbcDriver() { return jdbcDriver; } public void setJdbcDriver(String jdbcDriver) { this.jdbcDriver = jdbcDriver; } public String getJdbcUrl() { return jdbcUrl; } public void setJdbcUrl(String jdbcUrl) { this.jdbcUrl = jdbcUrl; } public String getJdbcUser() { return jdbcUser; } public void setJdbcUser(String jdbcUser) { this.jdbcUser = jdbcUser; } public String getJdbcPassword() { return jdbcPassword; } public void setJdbcPassword(String jdbcPassword) { this.jdbcPassword = jdbcPassword; } public String getC3p0url() { return c3p0url; } public void setC3p0url(String c3p0url) { this.c3p0url = c3p0url; } public String getConnectionType() { return connectionType; } public void setConnectionType(String connectionType) { this.connectionType = connectionType; } /** * 获取数据库连接 * * @return 数据库连接 */ public Connection getConnection() { String jdbcDriver = this.getJdbcDriver(); Connection connection = null; try { // 反射驱动类,调用DriverManager的getConnection()方法获取连接 Class.forName(jdbcDriver); connection = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } return connection; } /** * 根据C3P0连接池获取数据库连接 * * @param xmlUrl * c3p0配置文件路径 * @return 数据库连接 */ public Connection getConnectionByC3P0() { C3P0Utils c3p0Utils = new C3P0Utils(c3p0url); Connection conn = c3p0Utils.getConnection(); return conn; } /** * 根据指定的sql和参数进行查询 * * @param type * 0为无参,1为有参 * @param sql * 指定的sql * @param params * 参数列表 * @param showAlias * 是否显示别名 * @return * @throws Exception */ public ArrayList execute(int type, String sql, ArrayList params, boolean showAlias) throws Exception { // 判断sql类型,并返回标识位 int flag = this.checkSqlType(sql); Connection connection = null; // 获取数据库连接 if (this.getC3p0url().isEmpty() && "jdbc".equals(this.getConnectionType())) { connection = this.getConnection(); } else if ("c3p0".equals(this.getConnectionType())) { connection = this.getConnectionByC3P0(); } // 判断数据库是否支持查询结果以别名的方式显示 boolean aliasSupport = this.checkDBIsSupportAlias(connection); if (aliasSupport == false) { showAlias = false; } PreparedStatement preparedStatement = null; ResultSet resultSet = null; // 增删改所对应的结果 int result = 0; ArrayList list = new ArrayList(); try { preparedStatement = connection.prepareStatement(sql); // 如果有参数的话,则设置参数 if (type == 1) { // 检测sql中出现的"?"的次数 int num = this.getMarksNum(sql, "?"); // 当sql中出现的"?"次数和输入的参数列表中的元素数量相等时,则可以进行查询。否则,抛出异常 if (params.size() == num) { // 循环并设置参数 for (int i = 1; i 上一篇: 简封为HttpServlet的用户登录例子、结合jdbc的用户登录例子 下一篇: org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdb


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3