Mysql工具类
来源:互联网 发布:知乎 自己拍婚纱照 编辑:程序博客网 时间:2024/06/06 03:30
package actions.common;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.List;import org.apache.log4j.Logger;public class DBMysqlUtil {private Connection conn = null; private PreparedStatement ps = null;private ResultSet rs = null;private String dbDriver = null;private String dbConnectionURL = null;private String dbUsername = null;private String dbPassword = null;private PropUtil PropUtil=null;private Logger logger = Logger.getLogger(DBMysqlUtil.class);public DBMysqlUtil(){PropUtil = new PropUtil("config/db.properties");dbDriver = PropUtil.get("Driver");dbConnectionURL = PropUtil.get("ConnectionURL");dbUsername = PropUtil.get("Username");dbPassword = PropUtil.get("Password");}public DBMysqlUtil(String dbDriver, String dbConnectionURL, String dbUsername,String dbPassword){this.dbDriver = dbDriver;this.dbConnectionURL = dbConnectionURL;this.dbUsername = dbUsername;this.dbPassword = dbPassword;}/** * 功能:获取数据库连接 */private Connection getConnection() {System.out.println("连接地址:"+dbConnectionURL);System.out.println("用户名:"+dbUsername);System.out.println("密码:"+dbPassword);try {Class.forName(dbDriver);conn = DriverManager.getConnection(dbConnectionURL, dbUsername,dbPassword);logger.info("数据库连接成功");} catch (Exception e) {logger.error("Error: DbUtil.getConnection() 获得数据库链接失败.\r\n链接类型:"+ dbDriver + "\r\n链接URL:" + dbConnectionURL + "\r\n链接用户:"+ dbUsername + "\r\n链接密码:" + dbPassword, e);}return conn;}/** * 功能:执行查询语句 */ public ResultSet select(String sql) { logger.info("Exec select sql:" + sql); try { conn = getConnection();ps = conn.prepareStatement(sql);rs = ps.executeQuery(sql);} catch (SQLException e) {logger.error("查询数据异常:"+ e.getMessage());} return rs; } /** * 功能:执行查询语句,获取记录数 */public int getRecordCount(String sql) {logger.info("Exec getRecordCount sql:" + sql);int counter = 0;try {conn = getConnection();ps = conn.prepareStatement(sql);rs = ps.executeQuery(sql);while (rs.next()) {counter++;}} catch (SQLException e) {logger.error("执行DbUtil.getRecordCount()方法发生异常,异常信息:", e);}finally { close(); } System.out.println("counter总数:"+counter);return counter;} /** * 功能:针对单条记录执行更新操作(新增、修改、删除) */ public int executeupdate(String sql) throws Exception { logger.info("Exec update sql:" + sql); int num = 0; try { conn = getConnection(); ps = conn.prepareStatement(sql); num = ps.executeUpdate(); } catch (SQLException sqle) { logger.error("insert/update/delete data Exception: " + sqle.getMessage()); } finally { close(); } System.out.println("影响条数:"+num); return num; } /** * * 功能:批量执行SQL(update或delete) * * @param sqlList * sql语句集合 */ public int executeBatch(List<String> sqlList) { int result = 0; for (String sql : sqlList) { try {result += executeupdate(sql);} catch (Exception e) { System.out.println("查询异常:"+e.getMessage());} } System.out.println("executeBatch Result:"+result); return result; } /** * 功能:关闭数据库的连接 */public void close() {try {if (rs != null) {rs.close();}if (ps != null) {ps.close();}if (conn != null) {conn.close();}logger.info("关闭数据库连接成功");} catch (Exception e) {logger.error("执行DbUtil.close()方法发生异常,异常信息:", e);}}}
测试工具类:
package actions.common;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import org.testng.annotations.BeforeTest;import org.testng.annotations.Test;public class DBMysqlUtilTest {DBMysqlUtil DBUtil =null; private String DBDRIVER = "com.mysql.jdbc.Driver"; private String DBURL = "jdbc:mysql://192.168.10.56:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull"; //??URL private String DBUSER = "pluto"; private String DBPASSWORD = "pluto123";@BeforeTestpublic void init(){ DBUtil=new DBMysqlUtil(DBDRIVER,DBURL,DBUSER,DBPASSWORD);// DBUtil=new DBMysqlUtil();}@Test(description="查询")public void testquery() {String sql="select * from users where name='lisi'";ResultSet rs=DBUtil.select(sql);try {while(rs.next()){String NAME=rs.getString("NAME");System.out.println("NAME:"+NAME);String AGE=rs.getString("age");System.out.println("AGE:"+AGE);}} catch (SQLException e) {e.printStackTrace();}DBUtil.close();}@Test(description="查询总数")public void testGetCount(){String sql="select * from users";DBUtil.getRecordCount(sql);}@Test(description="批量执行SQL")public void testBatch(){String sql1="insert into users(name,age) values('zhaoliu',30);";String sql2="delete from users where name ='lisi';";List<String> sqlList=new ArrayList<String>();sqlList.add(sql1);sqlList.add(sql2);DBUtil.executeBatch(sqlList);}@Test(description="插入")public void testinsert() throws Exception{String sql="insert into users(name,age) values('lisi',22);";System.out.println("执行SQL:"+sql);DBUtil.executeupdate(sql);}@Test(description="删除")public void testdelete() throws Exception{String sql="delete from users where name ='lisi';";System.out.println("执行SQL:"+sql);DBUtil.executeupdate(sql);}@Test(description="修改")public void testupdate() throws Exception{String sql="update users set age=50 where name ='lisi';";System.out.println("执行SQL:"+sql);DBUtil.executeupdate(sql);}}执行结果:
2017-05-09 16:32:03,823 INFO [actions.common.DBMysqlUtil]select(line:60)Exec select sql:select * from users where name='lisi' 连接地址:jdbc:mysql://192.168.10.56:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull用户名:pluto密码:pluto1232017-05-09 16:32:03,977 INFO [actions.common.DBMysqlUtil]getConnection(line:47)数据库连接成功 NAME:lisiAGE:30NAME:lisiAGE:252017-05-09 16:32:03,993 INFO [actions.common.DBMysqlUtil]close(line:148)关闭数据库连接成功 PASSED: testquery
0 0
- mysql工具类整理
- Mysql数据库工具类
- Mysql工具类
- MySQL工具类 MySQL增删改查工具类
- 工具类 mysql操作类
- mysql 操作数据库 工具类
- PHP学习 MYSql工具类
- 连接mysql的工具类
- mysql连接数据库工具类
- PHP封装Mysql工具类
- MySQL工具类的封装
- 分享连接mysql工具类
- Mysql 工具
- mysql工具
- mysql 工具
- [工具] Mysql GUI工具
- 工具类总结(2)-mysql分页工具类
- MySql,SqlServer,Oracle链接数据库工具类
- Spring Boot使用Druid数据源配置和监控配置
- 2015北京邀请赛 UVALive7270 Osu! Master
- 整合VMware与OpenStack — 块存储驱动的应用
- java 自定义公式计算
- Laravel 会话 Memcached 入坑
- Mysql工具类
- logistic回归
- HTML5动画与动效之一
- 开发可配置portlet--config.jsp
- 使用Python如何生成200个随机码?
- java常用类型转换总结
- 实现GridLayoutManager支持RTL
- Maximum GCD (暴力枚举+输入技巧)
- Android系统服务:WallpagerManager