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. python类学习

    创建关于汽车的类 class Cars(): def __init__(self, brand, country): self.brand = brand self.country = country ...

  2. 【Python】【demo实验18】【练习实例】【统计输入字符串中,数字的个数、英文字母的个数及其他符号的个数】

    原题: 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. (本题暂时不支持中文字符及汉字) 我的代码: #!/usr/bin/python # encoding=utf-8 # -* ...

  3. java分词工具hanlp介绍

    前几天(6月28日),在第23届中国国际软件博览会上,hanlp这款自然语言处理工具荣获了“2019年第二十三届中国国际软件博览会优秀产品”. HanLP是由一系列模型预算法组成的工具包,结合深度神经 ...

  4. Wordpress 所有 hook 钩子

    muplugins_loaded 在必须使用的插件加载之后. registered_taxonomy 对于类别,post_tag 等 Registered_post_type 用于帖子,页面等 plu ...

  5. Hadoop集群搭建-04安装配置HDFS

    Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...

  6. 数据去重 -uniq

    也是经常和管道 一起操作的. -c  每行出现的次数 -d  仅仅显示重复行 -u  仅仅显示不重复行 -i  忽略大小写 注: 在对字母进行去重的时候, 一定要先对文件进行排序之后,去重的功能才可以 ...

  7. Codeforces 1148E Earth Wind and Fire

    分析 必要条件: ① $\sum_{i=1}^{n} s_i = \sum_{i=1}^{n} t_i$ 预处理: 将 $s, t$ 从小到大排序. 尝试一 首尾匹配.例子 s = 2, 2, 4, ...

  8. PAT A1020 Tree Traversals(25)

    题目描述 Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder ...

  9. php网络请求

    get请求 /** * get请求 * @param $url,请求地址 * @return bool|string */ function getRequest($url){ $headerArra ...

  10. Linux(CentOS)下安装NVIDIA GPU驱动

    GCC 官网:http://gcc.gnu.org 1)检查 NVIDIA驱动需要GCC等C/C++开发环境,首先检测GCC是否已经安装 gcc –v# 如果系统显示没有找到GCC指令,或没有显示GC ...