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. ...
随机推荐
- python中单引号, 双引号,三引号的差异
1. 单引号和双引号用法都是一样的,但是如果字符串里有相同的字符时要使用\进行转义 举例:1) print 'hello'2) print "hello"1和2,结果都是hello ...
- Docker - command in docker container
1.查看Container 里面运行的进程 在运行容器以后,可以查看里面的进程: docker top <container_id> or <container_name> 2 ...
- (转帖)开源容器集群管理系统Kubernetes架构及组件介绍
最近在搞Docker还有她的管理工具,选型Kuberetes后,被她的术语和概念搞得晕头转向...看了一篇文章还不错,放到这里分享出来. 地址:http://www.linuxidc.com/Linu ...
- connect-flash 中间件
http://blog.csdn.net/liangklfang/article/details/51086607
- Unity3D 解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题
解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题 <meta-data android:name="unityplayer.SkipPermissi ...
- Python之Web框架Django
Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址 Python 下载地址:https://www.pyt ...
- 基于netty轻量的高性能分布式RPC服务框架forest<上篇>
工作几年,用过不不少RPC框架,也算是读过一些RPC源码.之前也撸过几次RPC框架,但是不断的被自己否定,最近终于又撸了一个,希望能够不断迭代出自己喜欢的样子. 顺便也记录一下撸RPC的过程,一来作为 ...
- 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 ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- wpf TreeView
<Window x:Class="WpfTutorialSamples.TreeView_control.TreeViewDataBindingSample" ...