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

  1. import java.sql.*;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import com.mysql.jdbc.Connection;
  6. import com.mysql.jdbc.Statement;
  7. public class ConnectMySQL {
  8. public static String driver = "com.mysql.jdbc.Driver";
  9. private static String host;
  10. private static String user;
  11. private static String pwd;
  12. private static Connection conn = null;
  13. private static Statement stmt = null;
  14. public static void connect(String host, String user, String pwd) {
  15. ConnectMySQL.close();
  16. ConnectMySQL.host = host;
  17. ConnectMySQL.user = user;
  18. ConnectMySQL.pwd = pwd;
  19. }
  20. public static synchronized List<HashMap<String, String>> query(String sql) {
  21. return ConnectMySQL.result(sql);
  22. }
  23. public static synchronized void close() {
  24. try {
  25. if (stmt != null) {
  26. stmt.close();
  27. stmt = null;
  28. }
  29. if (conn != null) {
  30. conn.close();
  31. conn = null;
  32. }
  33. } catch (SQLException e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. private static void connectMySQL() {
  38. try {
  39. Class.forName(driver).newInstance();
  40. conn = (Connection) DriverManager.getConnection("jdbc:mysql://"
  41. + host + "?useUnicode=true&characterEncoding=UTF8", user,
  42. pwd);
  43. } catch (InstantiationException e) {
  44. e.printStackTrace();
  45. } catch (IllegalAccessException e) {
  46. e.printStackTrace();
  47. } catch (ClassNotFoundException e) {
  48. e.printStackTrace();
  49. } catch (SQLException e) {
  50. e.printStackTrace();
  51. }
  52. }
  53. private static void statement() {
  54. if (conn == null) {
  55. ConnectMySQL.connectMySQL();
  56. }
  57. try {
  58. stmt = (Statement) conn.createStatement();
  59. } catch (SQLException e) {
  60. e.printStackTrace();
  61. }
  62. }
  63. private static ResultSet resultSet(String sql) {
  64. ResultSet rs = null;
  65. if (stmt == null) {
  66. ConnectMySQL.statement();
  67. }
  68. try {
  69. rs = stmt.executeQuery(sql);
  70. } catch (SQLException e) {
  71. e.printStackTrace();
  72. }
  73. return rs;
  74. }
  75. private static List<HashMap<String, String>> result(String sql) {
  76. ResultSet rs = ConnectMySQL.resultSet(sql);
  77. List<HashMap<String, String>> result = new ArrayList<HashMap<String, String>>();
  78. try {
  79. ResultSetMetaData md = rs.getMetaData();
  80. int cc = md.getColumnCount();
  81. while (rs.next()) {
  82. HashMap<String, String> columnMap = new HashMap<String, String>();
  83. for (int i = 1; i <= cc; i++) {
  84. columnMap.put(md.getColumnName(i), rs.getString(i));
  85. }
  86. result.add(columnMap);
  87. }
  88. } catch (SQLException e) {
  89. e.printStackTrace();
  90. }
  91. return result;
  92. }
  93. public static void main(String[] args) throws SQLException {
  94. ConnectMySQL
  95. .connect("192.168.1.1/test", "test", "test");
  96. List<HashMap<String, String>> rs = ConnectMySQL
  97. .query("SELECT * from test");
  98. System.out.println(rs.get(0).get("test"));
  99. ConnectMySQL.close();
  100. }
  101. }

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. python中单引号, 双引号,三引号的差异

    1. 单引号和双引号用法都是一样的,但是如果字符串里有相同的字符时要使用\进行转义 举例:1) print 'hello'2) print "hello"1和2,结果都是hello ...

  2. Docker - command in docker container

    1.查看Container 里面运行的进程 在运行容器以后,可以查看里面的进程: docker top <container_id> or <container_name> 2 ...

  3. (转帖)开源容器集群管理系统Kubernetes架构及组件介绍

    最近在搞Docker还有她的管理工具,选型Kuberetes后,被她的术语和概念搞得晕头转向...看了一篇文章还不错,放到这里分享出来. 地址:http://www.linuxidc.com/Linu ...

  4. connect-flash 中间件

    http://blog.csdn.net/liangklfang/article/details/51086607

  5. Unity3D 解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题

    解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题 <meta-data android:name="unityplayer.SkipPermissi ...

  6. Python之Web框架Django

    Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址  Python 下载地址:https://www.pyt ...

  7. 基于netty轻量的高性能分布式RPC服务框架forest<上篇>

    工作几年,用过不不少RPC框架,也算是读过一些RPC源码.之前也撸过几次RPC框架,但是不断的被自己否定,最近终于又撸了一个,希望能够不断迭代出自己喜欢的样子. 顺便也记录一下撸RPC的过程,一来作为 ...

  8. LeetCode 167 Two Sum II - Input array is sorted

    Problem: Given an array of integers that is already sorted in ascending order, find two numbers such ...

  9. javaSE基础06

    javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...

  10. wpf TreeView

    <Window x:Class="WpfTutorialSamples.TreeView_control.TreeViewDataBindingSample"        ...