当我们需要频繁地从数据库查询、插入数据时,可以将这些数据库操作汇集写到同一个类里,作为工具类直接调用.

将数据库的具体信息保存在.properties文件中,用log4j作为日志记录

MySql.java代码如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

public class Mysql {
    private Connection conn;
    private Statement smt;
    static Logger logger = Logger.getLogger(Mysql.class.getName());
//加载数据库驱动
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
        } catch (Exception e) {
            logger.log(Level.ERROR, "Mysql:" + e.getMessage());
        }
    }
//连接数据库
    public Mysql(String url, String user, String pwd) throws Exception {
        conn = DriverManager.getConnection(url, user,pwd);
        smt= conn.createStatement();
    }
//插入数据
    public ResultSet executeQuery(String sql) throws Exception {
        ResultSet rs = null;
        try {
            rs = smt.executeQuery(sql);
        } catch (SQLException e) {
            logger.log(Level.ERROR, sql+"\n" + e.getMessage());
        }
        return rs;
    }
//查询数据
    public void executeInsert(String sql) throws Exception {
        smt.executeUpdate(sql);
        conn.commit();
    }
//关闭数据库
    public void close() throws Exception {
        smt.close();
        conn.close();
    }
}

数据库信息如下:

db.properties

url=jdbc:mysql://10.255.245.6:3306/abc
user=abc
password=123

MySqlTest.java,将MySql作为工具类使用,进行数据库操作

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import java.io.IOException;
import java.io.InputStream;
import java.sql.ResultSet;
import java.util.Properties;

public class MySqlTest {
    private static String url;
    private static String user;
    private static String password;

    private static Mysql mysql;
    static Logger logger = Logger.getLogger(MySqlTest.class.getName());

    private static Properties prop = new Properties();

    static {
        InputStream is =MySqlTest.class.getClassLoader().getResourceAsStream("db.properties");
        try {
            prop.load(is);
        } catch (IOException e) {
            logger.log(Level.ERROR, "db.properties:" + e.getMessage());
        }
    }

    //初始化MySql
    public  static void initialMySql() throws  Exception{
        url = prop.getProperty("url");
        user = prop.getProperty("user");
        password = prop.getProperty("password");
        mysql = new Mysql(url, user, password);
    }

    //查询mysql数据
    public  static void queryData(String sql) throws  Exception{
        ResultSet rs=mysql.executeQuery(sql);
        while (rs.next()) {
            String str=rs.getString(1);
            System.out.println(str+" ");
        }
        rs.close();        mysql.close();
    }

      //插入数据     public static void insertData(String sql) throws Exception{        mysql.executeInsert(sql);        mysql.close();    }
}

MySql频繁查询、插入数据的更多相关文章

  1. mysql数据库中插入数据INSERT INTO SET的优势

    往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2…) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = ...

  2. jmeter连接mysql数据库批量插入数据

    前提工作: 1.在jmeter官网下载jmeter包(官网地址:https://jmeter.apache.org/).此外还需下载mysql驱动包,如:mysql-connector-java-5. ...

  3. mysql:insert插入数据过慢如何解决,设置innodb_flush_log_at_trx_commit为0就能解决

    问题: 最近在做性能测试,造数据,发现insert好慢,只有几十条每秒,很奇怪,最后再网上找到了原因. 网文如下: MY SQL insert 速度过慢 最近在用MySQL做存储,测试中发现插入数据太 ...

  4. mysql使用存储过程插入数据后,参数为中文的为?或乱码

    最近了解了一下mysql存储过程,之前版本的mysql不支持存储过程,5.0版本后就可以支持存储过程的使用:恰好笔者下载使用版本为5.6.20: 做了一个给表插入数据的简单存储过程,发现打开表后汉字全 ...

  5. 向mysql中批量插入数据的性能分析

    MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下   CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 5 ...

  6. MYSQL 4种插入数据的方式比较

    4种插入数据的方式 第一种:insert into insert into是最常用的插入数据的方式,可以单条插入,也可以多条,还可以指定从其他表中select然后插入. 详细可以参考:insert语法 ...

  7. 关于PHP连接上MySQL但不能插入数据

    出现这种情况,有三种可能 1.SQL语句有问题 insert into table_name(field1,field2...) values(value1,value2...); 先在MySQL中粘 ...

  8. 使用存储过程在mysql中批量插入数据

    一.在mysql数据库中创建一张表test DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` INT (11), `name` VARCH ...

  9. MySQL如何快速插入数据

    前言: 日常学习和工作中,经常会遇到导数据的需求.比如数据迁移.数据恢复.新建从库等,这些操作可能都会涉及大量数据的导入.有时候导入进度慢,电脑风扇狂转真的很让人崩溃,其实有些小技巧是可以让导入更快速 ...

随机推荐

  1. 阿里云服务器挖矿wipefs处理

    查看指定日志修改过的文件:  [root@iZbp12v0moqn078lm0t0l5Z 2018-04-26]# find /data/www/manage -ctime 0 -exec ls -l ...

  2. bzoj4697: 猪

    Description 红学姐和黄学长是好朋友.红学姐有一只宠物,叫魔法猪.黄学长也有一只宠物,叫小奇.有 n 个猪圈排成一排 ,魔法猪藏在某个猪圈中.为了找到魔法猪,小奇会向你询问一些猪圈中猪的个数 ...

  3. jquery ztree异步搜索

    一.初始异步加载树 初始化默认给出一个根结点,再结合异步加载的方式手动触发默认加载第一层,如图: 代码如下: var treeSetting = { async: { enable: true, ur ...

  4. python selenium-6 HTML测试报告

    1.生成HTML测试报告 import unittest,sys from selenium import webdriver from time import sleep class TestBai ...

  5. 微软SMB 3.0文件共享协议新特性介绍

    SMB(*nix平台和Win NT4.0又称CIFS)协议是Windows平台标准文件共享协议.Linux平台通过samba来支持.SMB最新版本v3.0,在v2.0基础上针对WAN和分布式有改进.详 ...

  6. 洛谷P1414 又是毕业季II

    题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定 ...

  7. DB性能-隐式转换

    1        什么是隐式转换 当源数据的类型和目标数据的类型不同的时候,如果没有转换函数,就会发生隐式转换,也称自动转换.当然, 有些情况下有些类型是不可以发生转换的,比如说从DATE类型转换到N ...

  8. linux更换shell外壳zsh

    linux-外壳内核与shell的关系 内核处于外壳之中,通过外壳与shell(命令行)交互 外壳可以更换 ############################################## ...

  9. python3一个简单的网页抓取

    都是学PYTHON.怎么学都是学,按照基础学也好,按照例子增加印象也好,反正都是学 import urllib import urllib.request data={} data['word']=' ...

  10. (12/24) css进阶:sass文件的打包和分离

    1.安装sass打包的loader 这里需要 在项目目录下用npm安装两个包.node-sass和sass-loader,(也可以使用cnpm安装) 因为sass-loader依赖于node-sass ...