自己写了一个mysql连接的工具类【java】
要用的话,包名自己可以改一下:
package com.usa3v.dreamcenter.util; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class MyDatabase { String url;
String user;
String password; Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; /**
* 构造需要一个数组
* 该数组包含了三个信息
* URL , user , password
* @param str[]
*/ public MyDatabase(String str[])
{
this.url = str[0];
this.user = str[1];
this.password = str[2];
} /**
* 生命周期:
* connect连接数据库
* 数据的其它操作
* close关闭数据连接资源
*/ public void connect()
{
try {
System.out.println("加载驱动中...");
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("驱动加载成功!"); System.out.println("连接数据库中...");
conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功!"); } catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("\nfinally被调用,你必须手动"
+ "调用该类的close()方法关闭资源,否则后果自负!\n");
} } /**
* 增删改操作都可
* @param sql
*/
public void executeUpdate(String sql)
{
try {
System.out.println("\t执行sql语句:"+sql);
ps = conn.prepareStatement(sql);
ps.executeUpdate();
System.out.println("\t"+sql+"操作成功!");
} catch (SQLException e) {
System.out.println("\tmysql语法错误!");
}
} /**
* 查询某个记录是否存在
*/
public byte isExist(String sql)
{
try {
System.out.println("\t查询中...");
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
System.out.println("\t查询结果已返回!"); rs.next(); if(rs.getString(1)!=null)
{
System.out.println("\t有结果");
return 1;
}else {
System.out.println("\t无结果1");
return 0;
} } catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("\t无结果2");
return 0;
}
} /**
* 返回整个结果集
*/
public ResultSet getResultSet(String sql)
{
try {
System.out.println("\t结果集加载中...");
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
System.out.println("\t结果集加载成功!");
return rs;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("\t结果集加载失败!");
return null;
}
} public void close()
{
if(rs != null)
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps != null)
{
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null)
{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
用的是新版mysql的jar包,所以驱动加载用com.mysql.cj.jdbc.Driver
url例子:jdbc:mysql://localhost:3306/class?useSSL=false&serverTimezone=UTC
用户名密码看自己的设置了
目前是第一版,以后还会更新功能
记得用的话必须调用类中的close方法关闭来释放资源
自己写了一个mysql连接的工具类【java】的更多相关文章
- Druid连接池工具类
package cn.zmh.PingCe; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSo ...
- Android OkHttp网络连接封装工具类
package com.lidong.demo.utils; import android.os.Handler; import android.os.Looper; import com.googl ...
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean. 因此,实现一个获得bean实例的工具类,就很有必要. 以前,写了一个根据bean的名称和类型获取b ...
- JavaSE-基础语法(二)-系统类(java.lang.*)和工具类(java.util.*)
系统类(java.lang.*)和工具类(java.util.*) 一.系统类(java.lang.*) 这个包下包含java语言的核心类,如String.Math.System和Thread类等,使 ...
- python写的分析mysql binlog日志工具
因为数据库增删改突然暴增,需要查询是那些表的操作特别频繁,写了一个用来分析bin-log的小工具,找出增删改查的表,并按照操作次数降序排列,以下是代码: 1 2 3 4 5 6 7 8 9 10 11 ...
- java 写一个JSON解析的工具类
上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能 ...
- C# 基于创建一个mysql 连接池
创建一个连接池操作类 using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using Syste ...
- 记录一个mysql连接慢的问题
问题现象是这样的: 我在一台机器上(61.183.23.23)启动了一个mysql,然后开通一个账号可以从127.0.0.1或者从61.183.23.23访问.但是遇到一个问题就是使用下面两个命令行访 ...
- jdbc连接的工具类
在不实用框架的情况下,有一个jdbc的工具类来进行数据库的连接就再好不过了,下面提供这个工具类DBUtil.java package org.jdbc.test; import java.io.Inp ...
随机推荐
- Docker学习笔记三
4.Docker数据管理 4.1.数据卷 数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似与Linux的mount行为. 特性: 数据卷可以在容器之间共事和重用,容器间传递 ...
- c++踩坑大法好 数组
1,c++遍历数组 int数组和char数组不同哦,int占4位,char占1未,同理double也不同.基本遍历方法: ] = { ,,, }; ]); printf("len of my ...
- python常用的正则表达式,持续更新<<
# -*- coding: utf-8 -*- import re str_0 = 'Aqin1012Heheheaaaaaaahehe如何da' def re_str(re_str_0,str_0) ...
- JS高级---沙箱小案例
沙箱小案例 substr截取, 从指定的字段开始截取 (function () { var str="小白喜欢小黑"; str=str.substr(2); console.log ...
- Jmeter-几种脚本录制方式
一.使用代理服务器进行录制 1.创建线程组 2.创建http代理服务器 分组解释 不对样本分组:所有请求全部罗列 在组件添加分隔:加入一个虚拟的以分割线命名的动作 每个组放入一个新的控制器:执行时按控 ...
- Unable to load authentication plugin 'caching_sha2_password'
Caused by: com.mysql.cj.core.exceptions.WrongArgumentException: Unable to load authentication plugin ...
- 对象Bean与Map互转问题
一.摘要 在实际开发过程中,经常碰到需要进行对象与map之间互转的问题,其实对于对象.Map 之间进行互转有很多种方式,下面我们一起来梳理一下: 利用 JSON 工具包,将对象转成字符串,之后再转成 ...
- laravel中如何区分get数据和post数据
可能有时候会碰到这样的场景: 有一个post提交请求,请求地址为:xxx?id=10,提交的post数据为:id=20而在控制器中,我要同时得到get和post中数据get中的id为10,而post中 ...
- U盘拷贝目标文件过大无法复制时的解决方法
在cmd下输入:convert U盘符:/fs:ntfs ---> 回车 转换完成后可以看到U盘属性为NTFS了 这时就可以复制大文件到U盘了
- 第三十三篇 玩转数据结构——红黑树(Read Black Tree)
1.. 图解2-3树维持绝对平衡的原理: 2.. 红黑树与2-3树是等价的 3.. 红黑树的特点 简要概括如下: 所有节点非黑即红:根节点为黑:NULL节点为黑:红节点孩子为黑:黑平衡 4.. 实现红 ...