MySql频繁查询、插入数据
当我们需要频繁地从数据库查询、插入数据时,可以将这些数据库操作汇集写到同一个类里,作为工具类直接调用.
将数据库的具体信息保存在.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频繁查询、插入数据的更多相关文章
- mysql数据库中插入数据INSERT INTO SET的优势
往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2…) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = ...
- jmeter连接mysql数据库批量插入数据
前提工作: 1.在jmeter官网下载jmeter包(官网地址:https://jmeter.apache.org/).此外还需下载mysql驱动包,如:mysql-connector-java-5. ...
- mysql:insert插入数据过慢如何解决,设置innodb_flush_log_at_trx_commit为0就能解决
问题: 最近在做性能测试,造数据,发现insert好慢,只有几十条每秒,很奇怪,最后再网上找到了原因. 网文如下: MY SQL insert 速度过慢 最近在用MySQL做存储,测试中发现插入数据太 ...
- mysql使用存储过程插入数据后,参数为中文的为?或乱码
最近了解了一下mysql存储过程,之前版本的mysql不支持存储过程,5.0版本后就可以支持存储过程的使用:恰好笔者下载使用版本为5.6.20: 做了一个给表插入数据的简单存储过程,发现打开表后汉字全 ...
- 向mysql中批量插入数据的性能分析
MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下 CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 5 ...
- MYSQL 4种插入数据的方式比较
4种插入数据的方式 第一种:insert into insert into是最常用的插入数据的方式,可以单条插入,也可以多条,还可以指定从其他表中select然后插入. 详细可以参考:insert语法 ...
- 关于PHP连接上MySQL但不能插入数据
出现这种情况,有三种可能 1.SQL语句有问题 insert into table_name(field1,field2...) values(value1,value2...); 先在MySQL中粘 ...
- 使用存储过程在mysql中批量插入数据
一.在mysql数据库中创建一张表test DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` INT (11), `name` VARCH ...
- MySQL如何快速插入数据
前言: 日常学习和工作中,经常会遇到导数据的需求.比如数据迁移.数据恢复.新建从库等,这些操作可能都会涉及大量数据的导入.有时候导入进度慢,电脑风扇狂转真的很让人崩溃,其实有些小技巧是可以让导入更快速 ...
随机推荐
- java-appium-527手机浏览器、PC端程序、grid模式
1.手机浏览器 2.window通用成语自动化 3.appium支持grid模式
- nodejs基础: 如何升级Noejs版本
Node.js的开发非常活跃,它的最新稳定版本也频繁变化,你不时会发现,一个模块不能在你当前的Node版本上使用,此时你需要升级Node 幸运的是,可以用一种非常简单的方法来管理你的Node版本,即使 ...
- 长沙雅礼中学集训-------------------day1(内含day0)
day0: 首先,请允许我吐槽一下: 1.那些一个人住一个标准房的人您们真的是#@**¥&%……#*()%……*()@Q$&. 2.感谢那些一个人住一个标准间的人,要不然我们也找不到这 ...
- 安装phoenix时,执行命令./sqlline.py hostname1,hostname2.hostname3..... 时报错 ImportError: No module named argparse
问题描述: 怎么解决呢: 网上看了好多方法,但是本屌丝表示看不懂啊,没理解人家的博客的博大精深,好吧我们回到正题!! 先切换到root用户下安装这个东西 yum install python-a ...
- django中使用Form组件
内容: 1.Form组件介绍 2.Form组件常用字段 3.Form组件校验功能 4.Form组件内置正则校验 参考:https://www.cnblogs.com/liwenzhou/p/87478 ...
- 从最大似然函数 到 EM算法详解
极大似然算法 本来打算把别人讲的好的博文放在上面的,但是感觉那个适合看着玩,我看过之后感觉懂了,然后实际应用就不会了.... MLP其实就是用来求模型参数的,核心就是“模型已知,求取参数”,模型的意思 ...
- centos已经安装了libestr但在安装libee时却提示未安装
在loganalyzer+rsyslog日志分析错误总结;
- 理解无偏估计(unbiased estimation)
判断一个估计量“好坏”,至少可以从以下三个方面来考虑: 无偏估计 有效性 一致性 参考内容: 如何理解无偏估计量?https://www.matongxue.com/madocs/808.html 衡 ...
- VMware vCenter Server 6.5.0 U1g
VMware vCenter Server 6.5.0 U1gName: VMware-VCSA-all-6.5.0-8024368.iso Release Date: 2018-03-20 Buil ...
- J2SE 8的Lambda --- 语法
语法例子 LambdaGrammarTest lambdaTest = new LambdaGrammarTest(); // 1. 能够推导出类型的,可以不写类型 String[] planets ...