java(2014版)连接数据库的工具类
package util; import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties; public class JdbcUtil {
private static Connection conn;
private static PreparedStatement pstmt;
private static ResultSet rs; private JdbcUtil() {
super();
// TODO Auto-generated constructor stub
} // 连接数据库的操作
public static Connection getConn() {
if (conn == null) {
// 加载属性配置文件
// 创建属性对象
Properties prop = new Properties();
try {
// 加载指定名称的属性文件
prop.load(JdbcUtil.class.getClassLoader().getResourceAsStream(
"jdbc.properties"));
try {
// 根据文件的名称查找类文件
Class.forName(prop.getProperty("driver")); // 创建连接对象
try {
conn = DriverManager.getConnection(
prop.getProperty("url"),
prop.getProperty("user"),
prop.getProperty("pass"));
System.out.println("连接数据库连接成功"); } catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("连接数据库失败");
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out
.println("没有" + prop.getProperty("driver") + "文件");
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("属性文件加载出错");
e.printStackTrace();
}
}
return conn;
} public static void release(ResultSet rs, PreparedStatement pstmt) {
// 释放结果集
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 释放准备语句
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} // 更新数据的操作增,删,改要用到的封装方法
public static boolean upDate(String sql, Object[] obj) {
boolean flag = false; try {
// 准备语句的创建,带有sql命令的对象
pstmt = getConn().prepareStatement(sql); for (int i = 1; i <= obj.length; i++) {
pstmt.setObject(i, obj[i - 1]);
}
int i = pstmt.executeUpdate();
if (i > 0) {
flag = true;
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
release(rs, pstmt);
}
return flag;
} // 进行批量删除处理
public static boolean updateBatchDel(String sql, Object[] ids) {
boolean flag = false;
Connection conn = getConn();
PreparedStatement pstmt = null;
ResultSet rs = null; try {
conn.setAutoCommit(false);
pstmt = conn.prepareStatement(sql);
for (int i = 0; i < ids.length; i++) {
pstmt.setObject(1, ids[i]);
System.out.println(sql + "---------------" + ids[i]);
pstmt.addBatch();
}
int[] num = pstmt.executeBatch(); // 批量执行
for (int i = 0; i < num.length; i++) {
if (num[i] == 0) {
try {
conn.rollback(); // 进行事务回滚
return flag;
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
conn.commit();// 提交事务
flag = true;
} catch (SQLException e) { e.printStackTrace();
} finally {
release(rs, pstmt);
}
return flag;
} // 根据传入的表的名称,和每页数据得到传入表的所有的页数
// tableName:::::操作的数据表名称
// pagesize::::::每页显示的信息条数 public static Integer getCountPage(String tableName, Integer pagesize) {
Integer countPage = 0;
String sql = "select count(*) as c from " + tableName;
Connection conn = JdbcUtil.getConn();
PreparedStatement pstmt = null;
ResultSet rs = null;
conn = JdbcUtil.getConn();
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if (rs.next()) {
int countRecord = rs.getInt("c");
countPage = countRecord % pagesize == 0 ? countRecord
/ pagesize : countRecord / pagesize + 1;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtil.release(rs, pstmt);
}
return countPage;
} }
java(2014版)连接数据库的工具类的更多相关文章
- 在JAVA中自定义连接数据库的工具类
为什么要自定义数据库连接的工具类: 在开发中,我们在对数据库进行操作时,必须要先获取数据库的连接,在上一篇随笔中提到的获取数据库连接的步骤为: 1.定义好4个参数并赋值 2.加载驱动类 3.获取数据库 ...
- java版MD5签名工具类
package com.net.util; import java.security.MessageDigest; /** * MD5签名工具类 * @author zhangdi * */ publ ...
- Java操作文件夹的工具类
Java操作文件夹的工具类 import java.io.File; public class DeleteDirectory { /** * 删除单个文件 * @param fileName 要删除 ...
- Java汉字转成汉语拼音工具类
Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...
- java中excel导入\导出工具类
1.导入工具 package com.linrain.jcs.test; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import ...
- java中定义一个CloneUtil 工具类
其实所有的java对象都可以具备克隆能力,只是因为在基础类Object中被设定成了一个保留方法(protected),要想真正拥有克隆的能力, 就需要实现Cloneable接口,重写clone方法.通 ...
- java代码行数统计工具类
package com.syl.demo.test; import java.io.*; /** * java代码行数统计工具类 * Created by 孙义朗 on 2017/11/17 0017 ...
- Java加载Properties配置文件工具类
Java加载Properties配置文件工具类 import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; ...
- Java 操作Redis封装RedisTemplate工具类
package com.example.redisdistlock.util; import org.springframework.beans.factory.annotation.Autowire ...
随机推荐
- 20160127.CCPP体系详解(0006天)
程序片段(01):msg.c 内容概要:线程概念 #include <stdio.h> #include <stdlib.h> #include <Windows.h&g ...
- 【英语】Bingo口语笔记(69) - 脏话的表达
- 免费的WebService
天气预报Web服务,数据来源于中国气象局 Endpoint : http://www.webxml.com.cn/WebServices/WeatherWebService.asmx Disc ...
- UIPanGestureRecognizer中translationInView的理解
原因是在破船大牛的blog上面看到了一个demo #import <UIKit/UIKit.h> @interface ViewController : UIViewController ...
- 一条sql导致数据库整体性能下降的诊断和解决的全过程
今天早上一来,数据库load就比往常高了许多.想想数据库唯一的变化是昨天早上我曾经重新分析过数据库对象. [@more@] 发现数据库load很高,首先看top发现没有特别异常的进程,在数据库中适时抓 ...
- windows 不能在本地计算机启动apache2 的解决方法(不是修改端口)
使用命令行运行apache目录下的httpd程序,它会提示哪里出错了,修改即可 D:\Program Files (x86)\Apache2.\bin\httpd
- SpatiaLite 各版本数据库差异
SpatiaLite 生成的数据库,3.0版本与4.0版本的表geometry_columns结构发生变化. 这是3.0版本的结构: 这是4.0版本的结构: 主要差别是type和coord_dimen ...
- sqlite3使用简介(内含解决sqlite内存的方法)
一.使用流程 要使用sqlite,需要从sqlite官网下载到三个文件,分别为sqlite3.lib,sqlite3.dll,sqlite3.h,然后再在自己的工程中配置好头文件和库文件,同时将dll ...
- Android开发之旅:环境搭建及HelloWorld
引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始A ...
- selenium + python 多浏览器测试
selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...