java连接数据库增删改查公共方法

package dao;import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;public class DBCon {private static String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";private static String DBURL="jdbc:sqlserver://localhost:1433;databasename=改为数据库名称";private static String DBUID="登录账户";private static String DBPWD="登录密码";private static Connection conn = null;private static Statement stmt = null;//打开连接public static void open() {//加载驱动try {Class.forName(DBDRIVER);conn=DriverManager.getConnection(DBURL,DBUID,DBPWD);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}//关闭连接public static void close() {try {if(stmt!=null)stmt.close();if(conn!=null && !conn.isClosed())conn.close();} catch (SQLException e) {// TODO Auto-generated catch block
             e.printStackTrace();}}//得到一个连接对象,当用户使用DBUtil无法解决个性问题时//可以通过本方法获得连接对象public static Connection getConnection() {try {if(conn==null ||conn.isClosed())open();} catch (SQLException e) {e.printStackTrace();}return conn;}//executeQuery//executeUpdate//execute//获得查询的数据集//select * from student where name='' and sex=''public static ResultSet executeQuery(String sql) {try {open();//保证连接是成功的stmt = conn.createStatement();return stmt.executeQuery(sql);} catch (SQLException e) {// TODO Auto-generated catch block
             e.printStackTrace();}return null;}//修改表格内容public static int executeUpdate(String sql) {int result = 0;try {open();//保证连接是成功的stmt = conn.createStatement();result = stmt.executeUpdate(sql);} catch (SQLException e) {// TODO Auto-generated catch block
             e.printStackTrace();} finally {close();}return result;}//如果执行的查询或存储过程,会返回多个数据集,或多个执行成功记录数//可以调用本方法,返回的结果,//是一个List<ResultSet>或List<Integer>集合public static Object execute(String sql) {boolean b=false;try {open();//保证连接是成功的stmt = conn.createStatement();b = stmt.execute(sql);            //true,执行的是一个查询语句,我们可以得到一个数据集//false,执行的是一个修改语句,我们可以得到一个执行成功的记录数if(b){return stmt.getResultSet();}else {return stmt.getUpdateCount();}} catch (SQLException e) {// TODO Auto-generated catch block
             e.printStackTrace();} finally {if(!b) {close();}}return null;}////select * from student where name=? and sex=?public static ResultSet executeQuery(String sql,Object[] in) {try {open();//保证连接是成功的PreparedStatement pst = conn.prepareStatement(sql);for(int i=0;i<in.length;i++)pst.setObject(i+1, in[i]);stmt = pst;//只是为了关闭命令对象pstreturn pst.executeQuery();} catch (SQLException e) {// TODO Auto-generated catch block
             e.printStackTrace();}return null;}public static int executeUpdate(String sql,Object[] in) {try {open();//保证连接是成功的PreparedStatement pst = conn.prepareStatement(sql);for(int i=0;i<in.length;i++)pst.setObject(i+1, in[i]);stmt = pst;//只是为了关闭命令对象pstreturn pst.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch block
             e.printStackTrace();}finally {close();}return 0;}public static Object execute(String sql,Object[] in) {boolean b=false;try {open();//保证连接是成功的PreparedStatement pst = conn.prepareStatement(sql);for(int i=0;i<in.length;i++)pst.setObject(i+1, in[i]);b = pst.execute();//true,执行的是一个查询语句,我们可以得到一个数据集//false,执行的是一个修改语句,我们可以得到一个执行成功的记录数if(b){System.out.println("----");/*List<ResultSet> list = new ArrayList<ResultSet>();list.add(pst.getResultSet());while(pst.getMoreResults()) {list.add(pst.getResultSet());}*/return pst.getResultSet();}else {System.out.println("****");List<Integer> list = new ArrayList<Integer>();list.add(pst.getUpdateCount());while(pst.getMoreResults()) {list.add(pst.getUpdateCount());}return list;}} catch (SQLException e) {// TODO Auto-generated catch block
             e.printStackTrace();} finally {if(!b) {System.out.println("====");close();}}return null;}//调用存储过程  proc_Insert(?,?,?)public static Object executeProcedure(String procName,Object[] in) {open();try {procName = "{call "+procName+"(";String link="";for(int i=0;i<in.length;i++) {procName+=link+"?";link=",";}procName+=")}";CallableStatement cstmt = conn.prepareCall(procName);for(int i=0;i<in.length;i++) {cstmt.setObject(i+1, in[i]);}if(cstmt.execute()){return cstmt.getResultSet();}else {return cstmt.getUpdateCount();}} catch (SQLException e) {// TODO Auto-generated catch block
             e.printStackTrace();}return null;}/** 调用存储过程,并有输出参数* @procName ,存储过程名称:proc_Insert(?,?)* @in ,输入参数集合* @output,输出参数集合* @type,输出参数类型集合* */public static Object executeOutputProcedure(String procName,Object[] in,Object[] output,int[] type){Object result = null;try {CallableStatement cstmt = conn.prepareCall("{call "+procName+"}");//设置存储过程的参数值int i=0;for(;i<in.length;i++){//设置输入参数cstmt.setObject(i+1, in[i]);//print(i+1);
             }int len = output.length+i;for(;i<len;i++){//设置输出参数cstmt.registerOutParameter(i+1,type[i-in.length]);//print(i+1);
             }boolean b = cstmt.execute();//获取输出参数的值for(i=in.length;i<output.length+in.length;i++)output[i-in.length] = cstmt.getObject(i+1);if(b) {result = cstmt.getResultSet();}else {result = cstmt.getUpdateCount();}} catch (SQLException e) {// TODO Auto-generated catch block
             e.printStackTrace();}return result;}public static String toJson(Object obj){String reuqest=null;//对象映射ObjectMapper mapper=new ObjectMapper();//设置时间格式SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy年MM月dd日");mapper.setDateFormat(dateFormat);try {reuqest=mapper.writeValueAsString(obj);} catch (JsonProcessingException e) {// TODO Auto-generated catch block
                 e.printStackTrace();}return reuqest;}public static <T> T toObject(String src,Class<T> valueType){T request=null;//对象反射ObjectMapper mapper=new ObjectMapper();try {request=mapper.readValue(src, valueType);} catch (JsonParseException e) {// TODO Auto-generated catch block
             e.printStackTrace();} catch (JsonMappingException e) {// TODO Auto-generated catch block
             e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block
             e.printStackTrace();}return request;}public static Date date(String date_str) {try {Calendar zcal = Calendar.getInstance();//日期类Timestamp timestampnow = new Timestamp(zcal.getTimeInMillis());//转换成正常的日期格式SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//改为需要的东西ParsePosition pos = new ParsePosition(0);java.util.Date current = formatter.parse(date_str, pos);timestampnow = new Timestamp(current.getTime());return timestampnow;}catch (NullPointerException e) {return null;}}/*** 获取当前时间 yyyy-MM-dd HH:mm:ss* @param date* @return*/public static String newDate(String date){Date day=new Date();    SimpleDateFormat df = new SimpleDateFormat(date); return df.format(day); }}

posted @ 2018-06-21 11:08 韦邦杠 阅读(...) 评论(...) 编辑 收藏

java连接数据库增删改查公共方法相关推荐

  1. HBase java 的增删改查

    HBase java 的增删改查 . 目前来看好像是我的最全了,应该是大佬不屑于写这种的吧 . 其实本来想写很多方法的,但是写着写着就有点烦了,再加上本人也不全是闲人一个,然后就给停了,看着有点乱,但 ...

  2. MySQL攻略 -DAO和增删改查通用方法-BasicDAO的认知与实现、案例练习

    文章目录 DAO和增删改查通用方法-BasicDao 分析问题 图形介绍 基本说明 应用实例 utils包 domain包 DAO包 test包 案例练习 DAO包 domain包 test包 DAO ...

  3. 极客技术专题【003期】:java mvc 增删改查 自动生成工具来袭

    日期:2013-4-17  来源:GBin1.com 技术专题介绍 分享专题:java mvc 增删改查 自动生成工具来袭 分享人:激情燃烧的UI 授课时间:2013/04/19  21:00-22: ...

  4. java mongodb 增删改查_java操作mongodb:基本的增删改查

    java操作mongodb的代码,包含基本的增删改查操作 获取数据库连接工具类 package com.liuc.db;import java.net.UnknownHostException;imp ...

  5. java pdf增删改查_如何利用Java代码操作索引库?

    今天是刘小爱自学Java的第161天. 感谢你的观看,谢谢你. 学习计划安排如下: 学了几天的Elasticserch,但都是它本身的知识点,如何通过Java语言去操作它呢? 这就好比以前学数据库,在 ...

  6. java定时任务增删改查_python实现crontab定时任务的增删改查

    python实现crontab定时任务的增删改查 python实现crontab定时任务的增删改查 本人主要业务方向是后台,在开发不同版本迭代或者项目的部署时,每次都手动去创建cron定时任务,很不符 ...

  7. java addservlet_servlet增删改查

    Servlet 使用Servlet进行增删改查 步骤 1.  导入以下几个jar包到WEB-INF下的lib包里,必要时build path,其中jstl.jar和standard.jar是使用jst ...

  8. javaJDBC 增删改查一个方法一条龙解决

    import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import jav ...

  9. thinkPHP增删改查的方法案例

    thinkphp对数据库增删改查进行了封装操作,使得使用更加方便,但是不一定灵活. 可以用封装的用,需要写sql,可以执行sql. 1.原始的 $Model = new Model(); // 实例化 ...

  10. java实现增删改查_java大作业,实现学生信息增删改查

    [实例简介] 编写Web应用程序(JavaEE平台上的应用,能够运行在Tomcat服务器上),实现学生信息的增删改查. 在Web页面上实现添加一个学生记录,删除某个学生记录,修改某个学生记录,和按照姓 ...

最新文章

  1. React 项目----className 样式 (13)
  2. POJ 1966 Cable TV Network (最大流最小割)
  3. 今天终于有自己的博客了!!!
  4. Mac安装telnet
  5. python如何设置画布开始位置_如何设置亚马逊站内广告?亚马逊自动广告手动广告都在什么位置?...
  6. Tracer 结合logback记录日志
  7. windows 通过 bat 脚本后台启动 jar 包,通过 jps 找到 pid,然后停止指定 jar 包,附 linux shell 脚本启停脚本
  8. 无线网路中的虚拟AP技术
  9. C#——NPOI对Excel的操作、导入导出时异常处理(三)
  10. c语言 拟合指数函数的代码,如何找到拟合指数函数的x?
  11. 【LM】windows7 内部版本7601,此windows副本不是正版——已解决
  12. 2016大学计算机陈春丽,2016级计算机类专业分流结果公示.PDF
  13. 华为鸿蒙vivo,vivo的OriginOS系统开启公测 华为鸿蒙OS迎来劲敌
  14. c1语言水平要多久,对普通人来说,一般需要多长时间才能学会一门外语?
  15. 编译mbedtls (mingw方式)
  16. 微前端qiankun 问题
  17. 有趣的23000----整理(12)P词根
  18. cc150:实现一个算法来删除单链表中间的一个结点,只给出指向那个结点的指针
  19. CIO访谈实录:2016里约奥运会CIO伊丽·雷森迪
  20. for(;;)和while(1)两种死循环的区别

热门文章

  1. Keras中长短期记忆网络LSTM的5步生命周期
  2. python--图像轮廓findContours
  3. 基于局部自适应阈值的图像二值化
  4. Julia-数学运算和初等函数
  5. 修改服务器后账套不存在,金蝶KIS专业版环境配置常见问题
  6. 树莓派python蓝牙_怎样通过蓝牙仅使用Android手机为树莓派配置Wi-Fi网络
  7. php 删除字符前缀,thinkphp3.2.3如何删除同一前缀的缓存(File)
  8. 导出jar包和api文档
  9. matlab 算法转 c语言,matlab
  10. java多线程-线程停止