java分享第十七天-03(封装操作mysql类)
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类)的更多相关文章
- “全栈2019”Java第六十七章:内部类、嵌套类详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 封装操作mysql、redis
封装操作mysql: import pymysql class MyDb: def __init__(self,host,password,user,db,port=3306,charset='utf ...
- java分享第十七天-02(封装操作excel类)
java解析EXCEL用的是POI的JAR包,兼容EXCEL2003及2007+版本的EXCEL所需要的JAR包:poi-3.8.jarpoi-ooxml.jarpoi-ooxml-schemas. ...
- java分享第十七天-01(封装操作xml类)
做自动化测试的人,都应该对XPATH很熟悉了,但是在用JAVA解析XML时,我们通常是一层层的遍历进去,这样的代码的局限性很大,也不方便,于是我们结合一下XPATH,来解决这个问题.所需要的JAR包: ...
- java分享第七天-03(递归打印文件目录的树状结构)
public static void main(String[] args) { File file= new File("e:/list"); printFile(file, 0 ...
- 将Java连接数据库操作封装到MySQL类中
public class MySQL { final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; final String D ...
- 封装一个mysql类(ggshop)
接口 abstract class db{ //连接服务器 public abstract function connect($n,$u,$p); //发送查询 protected abstract ...
- PHP操作mysql类
<?php class Mysql{ //数据库连接句柄 private $link; //返回结果集 private $result; //返回查询数据 private $data; //执行 ...
- C#操作Mysql类
using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Text. ...
随机推荐
- Toast 工具
public class Utils { private static Toast toast; public static void showtoast(Context context,String ...
- 在Web Api中集成protobuf
安装WebApiContrib.Formatting.ProtoBuf Install-Package WebApiContrib.Formatting.ProtoBuf 注册ProtoBufForm ...
- WPF 主题切换(Z)
using System; using System.Windows; using Assergs.Windows; namespace XMLSpy.WPF.Util{ /// <summar ...
- Angular2 组件通信
1. 组件通信 我们知道Angular2应用程序实际上是有很多父子组价组成的组件树,因此,了解组件之间如何通信,特别是父子组件之间,对编写Angular2应用程序具有十分重要的意义,通常来讲,组件之间 ...
- 用GitHub Pages搭了个静态博客
经过周末两天折腾,终于在GitHub Pages上用Hugo搭了个静态博客. 链接:https://xusiwei.github.io/ @ruanyf 曾经在博客里提到过"喜欢写Blog的 ...
- DL论文
题目:Accurate Image Super-Resolution Using Very Deep Convolutional Networks(2016CVPR) 摘要:文中提出了一种高精度处理单 ...
- LeetCode 299 Bulls and Cows
Problem: You are playing the following Bulls and Cows game with your friend: You write down a number ...
- MVC Code First 当实体类发生变化时,如何自动更新数据库表
下面做一个例子,Category是用户新建的一个实体类,然后添加一个字段,然后让数据库中的Category表也添加一个字段 1.Category.cs
- mysql5.6 忘记root密码
1.首先net stop mysql服务,并且切换到任务管理器,有与mysql有关的,最好关闭进程. 2.运行CMD命令切换到MySql安装bin目录,下面是我的mysql安装目录 cd D:\Pr ...
- hadoop2.6.4 搭建伪分布式
安装jdk1.7 http://www.cnblogs.com/zhangXingSheng/p/6228432.html ------------------------------------- ...