import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; import org.apache.log4j.Logger; public class JdbcUtil {
public static Logger logger = Logger.getLogger(JdbcUtil.class.getName());
// 创建静态全局变量
// static Connection conn;
// static Statement statement; public static Connection getConnection() {
String jdbc_url = null;
//String jdbc_db = null;
String jdbc_driver = null;
String jdbc_name = null;
String jdbc_password = null;
try {
Properties prop = new Properties();
// InputStream inStream =
// JdbcUtil.class.getResourceAsStream("config/database.properties");
InputStream inStream = new FileInputStream(new File("config/database.properties"));
prop.load(inStream);
jdbc_url = prop.getProperty("jdbc_url");
//jdbc_db = prop.getProperty("jdbc_db");
jdbc_driver = prop.getProperty("jdbc_driver");
jdbc_name = prop.getProperty("jdbc_name");
jdbc_password = prop.getProperty("jdbc_password");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
Connection con = null; // 创建用于连接数据库的Connection对象
try {
Class.forName(jdbc_driver);// 加载Mysql数据驱动
// con = DriverManager.getConnection(jdbc_url + jdbc_db, jdbc_name,
// jdbc_password);// 创建数据连接
con = DriverManager.getConnection(jdbc_url + "?user=" + jdbc_name + "&password=" + jdbc_password + "&useUnicode=true&characterEncoding=utf-8");// 创建数据连接
} catch (Exception e) {
System.out.println("数据库连接失败" + e.getMessage());
}
return con; // 返回所建立的数据库连接
} /* 插入数据记录,并输出插入的数据记录数 */
public static void insert(String sql) {
Connection conn = getConnection(); // 首先要获取连接,即连接到数据库
try {
logger.info("jdbc插入数据开始"); Statement statement = (Statement) conn.createStatement(); // 创建用于执行静态sql语句的Statement对象
int count = statement.executeUpdate(sql); // 执行插入操作的sql语句,并返回插入数据的个数
System.out.println("更新 " + count + " 条数据"); // 输出插入操作的处理结果
statement.close();
conn.close(); // 关闭数据库连接
logger.info("jdbc插入数据结束");
} catch (SQLException e) {
System.out.println("插入数据失败" + e.getMessage());
}
} /* 更新符合要求的记录,并返回更新的记录数目 */
public static void update(String sql) {
Connection conn = getConnection(); // 同样先要获取连接,即连接到数据库
try {
// logger.info("jdbc更新数据开始");
// String sql =
// "update staff set wage='2200' where name = 'lucy'";// 更新数据的sql语句
Statement statement = (Statement) conn.createStatement(); // 创建用于执行静态sql语句的Statement对象,st属局部变量
int count = statement.executeUpdate(sql);// 执行更新操作的sql语句,返回更新数据的个数
System.out.println("更新 " + count + " 条数据"); // 输出更新操作的处理结果
statement.close();
conn.close(); // 关闭数据库连接
// logger.info("jdbc更新数据结束");
} catch (SQLException e) {
System.out.println("更新数据失败");
}
} /* 查询数据库,输出符合要求的记录的情况 */
public static String query(String sql,String queryContent) {
Connection conn = getConnection(); // 同样先要获取连接,即连接到数据库
String queryContentTemp = "";
try {
Statement statement = (Statement) conn.createStatement(); // 创建用于执行静态sql语句的Statement对象,st属局部变量
ResultSet rs = statement.executeQuery(sql); // 执行sql查询语句,返回查询数据的结果集
while (rs.next()) { // 判断是否还有下一个数据
// 根据字段名获取相应的值
queryContentTemp = rs.getString(queryContent);
}
rs.close();
statement.close();
conn.close(); // 关闭数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
return queryContentTemp;
} /* 删除符合要求的记录,输出情况 */
public static void delete(String sql) {
Connection conn = getConnection(); // 同样先要获取连接,即连接到数据库
try {
logger.info("jdbc删除数据开始");
// String sql = "delete from staff where name = 'lili'";//
// 删除数据的sql语句
Statement statement = (Statement) conn.createStatement(); // 创建用于执行静态sql语句的Statement对象,st属局部变量
int count = statement.executeUpdate(sql);// 执行sql删除语句,返回删除数据的数量
System.out.println("agent表中删除了【 " + count + " 】条数据。"); // 输出删除操作的处理结果
statement.close();
conn.close(); // 关闭数据库连接
logger.info("jdbc删除数据结束");
} catch (SQLException e) {
System.out.println("删除数据失败");
}
}
}

Java-JDBCUtil工具类的更多相关文章

  1. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  2. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  3. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  4. Java并发工具类 - CountDownLatch

    Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http: ...

  5. MinerUtil.java 爬虫工具类

    MinerUtil.java 爬虫工具类 package com.iteye.injavawetrust.miner; import java.io.File; import java.io.File ...

  6. MinerDB.java 数据库工具类

    MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...

  7. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

  8. Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie

    Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...

  9. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  10. java日期工具类DateUtil-续一

    上篇文章中,我为大家分享了下DateUtil第一版源码,但就如同文章中所说,我发现了还存在不完善的地方,所以我又做了优化和扩展. 更新日志: 1.修正当字符串日期风格为MM-dd或yyyy-MM时,若 ...

随机推荐

  1. Linux下使用 minicom 自动重复发送数据的实现

    目录 在minicom中添加脚本路径 编写脚本 执行脚本 一个项目里要用的设备需要用串口来模拟传感器来测试,还是Linux下的. 串口助手cutecom很好用,但是不能定时发送数据. 所以用下面这个脚 ...

  2. [转帖]容器云之K8s自动化安装方式的选择

    容器云之K8s自动化安装方式的选择 时间 2016-12-05 19:10:53  极客头条 原文  http://geek.csdn.net/news/detail/127426 主题 Kubern ...

  3. SpringBoot2.x集成WebSocket

    WebSocket 不做过多得介绍,这里有篇比较全面得文章      Spring Boot系列十六 WebSocket简介和spring boot集成简单消息代理 我这里是精简版,只挑出核心代码记录 ...

  4. C++str.Format

    C++应该没有这个函数,说的是Format是在MFC程序里看见的 Format是CString字符串类的成员函数CString::Format( LPCTSTR lpszFormat, ... ); ...

  5. 归并排序+归并排序求逆序对(例题P1908)

    归并排序(merge sort) 顾名思义,这是一种排序算法,时间复杂度为O(nlogn),时间复杂度上和快排一样 归并排序是分治思想的应用,我们先将n个数不断地二分,最后得到n个长度为1的区间,显然 ...

  6. Yii2.0 queue

    https://www.yiichina.com/tutorial/1635 https://my.oschina.net/gcdong/blog/3031113 https://www.yii-ch ...

  7. 单档——PK单号新增、修改时不允许编辑,PK单号自动生成

    由系统自动生成单号(日期+流水),用户新增.修改时不允许编辑单号: 范例(cxmt631): 1)在#单头栏位开启设定#中,即 cxmt631_set_entry(p_cmd)下: #add-poin ...

  8. [经验分享] Docker网络解决方案-Weave部署记录

    前面说到了Flannel的部署,今天这里说下Docker跨主机容器间网络通信的另一个工具Weave的使用.当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的 ...

  9. Neo4j WARNING: Max 1024 open files allowed, minimum of 40 000 recommended. See the Neo4j manual

    you can add a line in /etc/default/neo4j: NEO4J_ULIMIT_NOFILE=60000 to set the ulimit setting (60000 ...

  10. squoosh

    谷歌在线压缩图片