JAVA操作mysql
所需jar包:mysql-connector-java.jar
代码:

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
public class ConnectMySQL {
public static String driver = "com.mysql.jdbc.Driver";
private static String host;
private static String user;
private static String pwd;
private static Connection conn = null;
private static Statement stmt = null;
public static void connect(String host, String user, String pwd) {
ConnectMySQL.close();
ConnectMySQL.host = host;
ConnectMySQL.user = user;
ConnectMySQL.pwd = pwd;
}
public static synchronized List<HashMap<String, String>> query(String sql) {
return ConnectMySQL.result(sql);
}
public static synchronized void close() {
try {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
private static void connectMySQL() {
try {
Class.forName(driver).newInstance();
conn = (Connection) DriverManager.getConnection("jdbc:mysql://"
+ host + "?useUnicode=true&characterEncoding=UTF8", user,
pwd);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
private static void statement() {
if (conn == null) {
ConnectMySQL.connectMySQL();
}
try {
stmt = (Statement) conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
}
private static ResultSet resultSet(String sql) {
ResultSet rs = null;
if (stmt == null) {
ConnectMySQL.statement();
}
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
private static List<HashMap<String, String>> result(String sql) {
ResultSet rs = ConnectMySQL.resultSet(sql);
List<HashMap<String, String>> result = new ArrayList<HashMap<String, String>>();
try {
ResultSetMetaData md = rs.getMetaData();
int cc = md.getColumnCount();
while (rs.next()) {
HashMap<String, String> columnMap = new HashMap<String, String>();
for (int i = 1; i <= cc; i++) {
columnMap.put(md.getColumnName(i), rs.getString(i));
}
result.add(columnMap);
}
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) throws SQLException {
ConnectMySQL
.connect("192.168.1.1/test", "test", "test");
List<HashMap<String, String>> rs = ConnectMySQL
.query("SELECT * from test");
System.out.println(rs.get(0).get("test"));
ConnectMySQL.close();
}
}

java分享第十七天-03(封装操作mysql类)的更多相关文章

  1. “全栈2019”Java第六十七章:内部类、嵌套类详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. 封装操作mysql、redis

    封装操作mysql: import pymysql class MyDb: def __init__(self,host,password,user,db,port=3306,charset='utf ...

  3. java分享第十七天-02(封装操作excel类)

     java解析EXCEL用的是POI的JAR包,兼容EXCEL2003及2007+版本的EXCEL所需要的JAR包:poi-3.8.jarpoi-ooxml.jarpoi-ooxml-schemas. ...

  4. java分享第十七天-01(封装操作xml类)

    做自动化测试的人,都应该对XPATH很熟悉了,但是在用JAVA解析XML时,我们通常是一层层的遍历进去,这样的代码的局限性很大,也不方便,于是我们结合一下XPATH,来解决这个问题.所需要的JAR包: ...

  5. java分享第七天-03(递归打印文件目录的树状结构)

    public static void main(String[] args) { File file= new File("e:/list"); printFile(file, 0 ...

  6. 将Java连接数据库操作封装到MySQL类中

    public class MySQL { final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; final String D ...

  7. 封装一个mysql类(ggshop)

    接口 abstract class db{ //连接服务器 public abstract function connect($n,$u,$p); //发送查询 protected abstract ...

  8. PHP操作mysql类

    <?php class Mysql{ //数据库连接句柄 private $link; //返回结果集 private $result; //返回查询数据 private $data; //执行 ...

  9. C#操作Mysql类

    using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Text. ...

随机推荐

  1. Eclipse ndk fix插件开发

    一. 手工修复ndk环境bug Eclipse做ndk开发的时候, 经常会遇到编译过去,却报语法错误的问题,比如 ①. 头文件不识别 ②. 头文件识别了, 类型不识别 针对这一的bug,我们一般按照如 ...

  2. 163邮件出错:不允许使用邮箱名称。 服务器响应为: authentication is required,smtp7,C8CowEDpS0+Uke9VvSmXBg--.546S2 1441763733

    原因:用163邮箱发邮件,需开启smtp服务,开启服务时,要求使用客户端授权码. 在.net中,使用smtp发邮件,在验证中使用的密码,是上面所讲的客户端授权码,而不是注册和web登录时用的邮箱密码. ...

  3. js中bind、call、apply函数的用法

    最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web的项目,然后在腾讯实习的时候用 js 写过一些奇怪的程序,自己也用 js 写过几个的网站.但 ...

  4. 设计模式--建造者模式Builder(创建型)

    一.首先看建造者模式的UML图: 二.再来看一个建造者模式的例子 class Builder { public: virtual void BuildHead() {} virtual void Bu ...

  5. CDR VBA鼠标选择

    Dim x As Double, y As Double, Shift As Long, b As Boolean, doc As Document Dim sel1 As Shape, sel2 A ...

  6. Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》

    首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...

  7. Ajax文件上传

  8. 《learning hard C#学习笔记》读书笔记(20)异步编程

      20.1 什么是异步编程异步编程就是把耗时的操作放进一个单独的线程中进行处理. 20.2 同步方式存在的问题   namespace 异步编程 { public partial class For ...

  9. 前端js调用七牛制作评价页面案例

    一.需求 公司所有的上传页面都用七牛,前端不免要直接调用七牛的代码进行上传,以下是一个实现七牛上传的案例,制作一个常见的商品评价页面,页面需求很常见当上传到第五章图片的时候,上传按钮消失,上传需要显示 ...

  10. 【转】C# 控件的自定义拖动、改变大小方法

    在用VS的窗体设计器时,我们可以发现控件都是可以拖动的,并且还可以调整大小.怎么在自己的程序中可以使用上述功能呢? 下面的方法值得借鉴! using System; using System.Wind ...