jdbc写一个访问数据库的工具类
操作的工具类
package com.zjw.jdbc2;
/**
* jdbc操作的工具类
* @author Administrator
*
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcUtils
{
private JdbcUtils() {}
private static String url = "jdbc:mysql://localhost:3306/aaa?useSSL=false&serverTimezone=UTC";
private static String user = "root" ;
private static String password = "123456";
public static Connection getConnection()
{
Connection con = null;
try
{
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
con = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException | SQLException e)
{
e.printStackTrace();
}
//返回连接结果
return con;
}
/**
* 关闭连接 包含三个参数
* @param con 连接对象
* @param sta Statement对象
* @param res 结果集对象
*/
public static void closeConnection(Connection con,Statement sta,ResultSet res)
{
try
{
if(res != null)
res.close();
} catch (SQLException e)
{
e.printStackTrace();
}
try
{
if(sta != null)
sta.close();
} catch (SQLException e)
{
e.printStackTrace();
}
try
{
if(con != null)
con.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
/**
* 关闭连接 包含两个参数
* @param con 连接对象
* @param sta Statement对象
*/
public static void closeConnection(Connection con,Statement sta)
{
try
{
if(sta != null)
sta.close();
} catch (SQLException e)
{
e.printStackTrace();
}
try
{
if(con != null)
con.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
利用工具类来操作数据库
package com.zjw.jdbc2;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 使用jdbc编写的工具类操作数据库
* @author Administrator
*
*/
public class JdbcUtilTest
{
public static void main(String[] args)
{
//获取连接
Connection con = JdbcUtils.getConnection();
//操作数据库
String sql = "SELECT * FROM category;";
try
{
PreparedStatement pst = con.prepareStatement(sql);
ResultSet res = pst.executeQuery();
while(res.next())
{
String sid = res.getString("sid");
String sname = res.getString("sname");
System.out.println(sid+ " "+ sname);
}
//关闭连接
JdbcUtils.closeConnection(con, pst, res);
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
结果
jdbc写一个访问数据库的工具类的更多相关文章
- java 写一个JSON解析的工具类
上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能 ...
- Java手写一个批量获取数据工具类
1. 背景 偶尔会在公司的项目里看到这样的代码 List<Info> infoList = new ArrayList<Info>(); if (infoidList.size ...
- 一、JDBC的概述 二、通过JDBC实现对数据的CRUD操作 三、封装JDBC访问数据的工具类 四、通过JDBC实现登陆和注册 五、防止SQL注入
一.JDBC的概述###<1>概念 JDBC:java database connection ,java数据库连接技术 是java内部提供的一套操作数据库的接口(面向接口编程),实现对数 ...
- 用 Python 写一个 NoSQL 数据库Python
NoSQL 这个词在近些年正变得随处可见. 但是到底 “NoSQL” 指的是什么? 它是如何并且为什么这么有用? 在本文, 我们将会通过纯 Python (我比较喜欢叫它, “轻结构化的伪代码”) 写 ...
- 利用 Python 写一个颜值测试小工具
我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起.很多人学习p ...
- servlet层调用biz业务层出现浏览器 500错误,解决方法 dao数据访问层 数据库Util工具类都可能出错 通过新建一个测试类复制代码逐步测试查找出最终出错原因
package com.swift.jztk.servlet; import java.io.IOException; import javax.servlet.ServletException; i ...
- SpringBoot实战(四)之使用JDBC和Spring访问数据库
这里演示的是h2databse示例,所以简单的介绍普及下h2database相关知识 H2数据库是一个开源的关系型数据库. H2是一个嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提 ...
- 学习实践:使用模式,原则实现一个C++数据库訪问类
一.概述 在我參与的多个项目中.大家使用libMySQL操作MySQL数据库,并且是源代码级复用,在多个项目中同样或相似的源代码.这种复用方式给开发带来了不便. libMySQL的使用比較麻烦.非常e ...
- 基于 vite2 + Vue3 写一个在线帮助文档工具
提起帮助文档,想必大家都会想到 VuePress等,我也体验了一下,但是感觉和我的思路不太一样,我希望的是那种可以直接在线编辑文档,然后无需编译就可以直接发布的方式,另外可以在线写(修改)代码并且运行 ...
- 【JAVA - SSM】之MyBatis与原生JDBC、Hibernate访问数据库的比较
首先来看一下原生JDBC访问数据库的代码: public static void main(String[] args) { // 数据库连接 Connection connection = null ...
随机推荐
- 线性空间与线性基(待整修,现在是史,OIwiki上的史。)
各代数结构定义 群 对于一个集合 \(G\) 和运算 \(\times\),若其满足:封闭性.结合律,具有单位元,对于每个元素都有逆元,则称呼 \((G,\times)\) 为一个群. 阿贝尔群,或交 ...
- 4. MySQL 逻辑架构说明
4. MySQL 逻辑架构说明 @ 目录 4. MySQL 逻辑架构说明 1. 逻辑架构剖析 1.1 服务器处理客户端请求 1.2 Connectors(连接器) 1.3 第1层:连接层 1.4 第2 ...
- android无障碍开发 企业微信 机器人
实现 Android 无障碍开发 企业微信 机器人 作为一名新入行的开发者,你可能对如何开发一个支持企业微信的无障碍机器人感到迷茫.在这篇文章中,我将为你详细讲解实现这一功能的流程和代码示例. 流程概 ...
- OpenLayers 绘制带箭头的LineString
<!--******************************************************************** * Copyright 2000 - 2022 ...
- SpringBoot三种获取Request和Response的方法
通过静态方法获取,你也可以封装一个静态方法出来 @GetMapping(value = "") public String center() { ServletRequestAtt ...
- STM32实战——ESP8266 WIFI模块
ESP8266 硬件介绍 ESP8266系列模组有哪些: 在本实验中,ESP8266与ESP-01不做区分. ESP-01引脚介绍: 引脚 功能 3.3 3.3V供电,避免使用5V供电 RX UART ...
- Vulnhub-FristiLeaks_1.3
一.靶机搭建 选择扫描虚拟机 选择路径即可 二.信息收集 靶机信息 产品名称:Fristileaks 1.3 作者:Ar0xA 发布日期: 2015 年 12 月 14 日 目标:获取root(uid ...
- 基于React的虚拟滚动方案
基于React的虚拟滚动方案 在渲染列表时我们通常会一次性将所有列表项渲染到DOM中,在数据量大的时候这种操作会造成页面响应缓慢,因为浏览器需要处理大量的DOM元素.而此时我们通常就需要虚拟滚动来实现 ...
- 【Bug记录】Powershell 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 - PowerShell 执行策略
Powershell 无法将"vue"项识别为 cmdlet.函数.脚本文件或可运行程序的名称 造成该问题主要是 PowerShell 执行策略,不支持执行全局脚本和程序的运行. ...
- 高德地图api标记点和线段重合点击响应问题
问题现象: 现在地图上放置了line和marker,marker在line的上层显示 这时line和marker同时存在,当line和marker有重合部分并点击重合点时,只响应line对应的clic ...