packagecom.dz.product.dao;importjava.io.IOException;importjava.io.InputStream;import java.sql.*;importjava.text.ParsePosition;importjava.text.SimpleDateFormat;import java.util.*;importjava.util.Date;public classDBUtil {//连接对象//Statement 命令对象//打开连接//关闭连接//得到一个连接对象//查询(有参,无参)//修改(有参,无参)

static Connection conn = null;static Statement stmt = null;static PreparedStatement pstmt=null;//驱动,服务器地址,登录用户名,密码

staticString DBDRIVER;staticString DBURL;staticString DBUID;staticString DBPWD;static{ DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

DBURL = "jdbc:sqlserver://localhost:1433;databasename=YerGoMallPro";DBUID= "sa";//DBPWD = "@zdm168168...";

DBPWD = "123456";//打开连接

}

public static voidopen() {//加载驱动

try{

Class.forName(DBDRIVER);

conn=DriverManager.getConnection(DBURL,DBUID,DBPWD);

}catch(ClassNotFoundException e) {

e.printStackTrace();

}catch(SQLException e) {

e.printStackTrace();

}

}//关闭连接

public static voidclose() {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 staticConnection getConnection() {try{if(conn==null ||conn.isClosed())

open();

}catch(SQLException e) {

e.printStackTrace();

}returnconn;

}//executeQuery//executeUpdate//execute//获得查询的数据集//select * from student where name='' and sex=''

public staticResultSet executeQuery(String sql) {try{

open();//保证连接是成功的

stmt =conn.createStatement();returnstmt.executeQuery(sql);

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}//修改表格内容

public static intexecuteUpdate(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();

}returnresult;

}//如果执行的查询或存储过程,会返回多个数据集,或多个执行成功记录数//可以调用本方法,返回的结果,//是一个List或List集合

public staticObject execute(String sql) {boolean b=false;try{

open();//保证连接是成功的

stmt =conn.createStatement();

b=stmt.execute(sql);//true,执行的是一个查询语句,我们可以得到一个数据集//false,执行的是一个修改语句,我们可以得到一个执行成功的记录数

if(b){returnstmt.getResultSet();

}else{returnstmt.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 staticResultSet executeQuery(String sql,Object[] in) {try{

open();//保证连接是成功的

PreparedStatement pst =conn.prepareStatement(sql);for(int i=0;i

pst.setObject(i+1, in[i]);

stmt= pst;//只是为了关闭命令对象pst

returnpst.executeQuery();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}public static intexecuteUpdate(String sql,Object[] in) {try{

open();//保证连接是成功的

PreparedStatement pst =conn.prepareStatement(sql);for(int i=0;i

pst.setObject(i+1, in[i]);

stmt= pst;//只是为了关闭命令对象pst

returnpst.executeUpdate();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}finally{

close();

}return 0;

}public staticPreparedStatement pstmt(String sql){

open();try{return pstmt =conn.prepareStatement(sql);

}catch(SQLException e) {//TODO 自动生成的 catch 块

e.printStackTrace();

}return null;

}public staticObject execute(String sql,Object[] in) {boolean b=false;try{

open();//保证连接是成功的

PreparedStatement pst =conn.prepareStatement(sql);for(int i=0;i

pst.setObject(i+1, in[i]);

b=pst.execute();//true,执行的是一个查询语句,我们可以得到一个数据集//false,执行的是一个修改语句,我们可以得到一个执行成功的记录数

if(b){

System.out.println("----");/*List list = new ArrayList();

list.add(pst.getResultSet());

while(pst.getMoreResults()) {

list.add(pst.getResultSet());

}*/

returnpst.getResultSet();

}else{

System.out.println("****");

List list = new ArrayList();

list.add(pst.getUpdateCount());while(pst.getMoreResults()) {

list.add(pst.getUpdateCount());

}returnlist;

}

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}finally{if(!b) {

System.out.println("====");

close();

}

}return null;

}//调用存储过程 proc_Insert(?,?,?)

public staticObject executeProcedure(String procName,Object[] in) {

open();try{

procName= "{call "+procName+"(";

String link="";for(int i=0;i

procName+=link+"?";

link=",";

}

procName+=")}";

CallableStatement cstmt=conn.prepareCall(procName);for(int i=0;i

cstmt.setObject(i+1, in[i]);

}if(cstmt.execute())

{returncstmt.getResultSet();

}else{returncstmt.getUpdateCount();

}

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}/** 调用存储过程,并有输出参数

* @procName ,存储过程名称:proc_Insert(?,?)

* @in ,输入参数集合

* @output,输出参数集合

* @type,输出参数类型集合

**/

public staticObject executeOutputProcedure(String procName,

Object[] in,Object[] output,int[] type){

Object result= null;try{

CallableStatement cstmt= conn.prepareCall("{call "+procName+"}");//设置存储过程的参数值

int i=0;for(;i

cstmt.setObject(i+1, in[i]);//print(i+1);

}int len = output.length+i;for(;i

cstmt.registerOutParameter(i+1,type[i-in.length]);//print(i+1);

}boolean b =cstmt.execute();//获取输出参数的值

for(i=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();

}returnresult;

}//时间转换

public staticDate date(String date_str) {try{

Calendar cal= Calendar.getInstance();//日期类

Timestamp timestampnow = new Timestamp(cal.getTimeInMillis());//转换成正常的日期格式

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//改为需要的东西

ParsePosition pos = new ParsePosition(0);

java.util.Date current=formatter.parse(date_str, pos);

timestampnow= newTimestamp(current.getTime());returntimestampnow;

}catch(NullPointerException e) {return null;

}

};

}

mysql dbutil_DBUtil连接数据库相关推荐

  1. 网页如何与mysql服务器建立连接不上,html与mysql建立连接数据库

    html与mysql建立连接数据库 内容精选 换一换 云数据库 GaussDB(for MySQL)是华为云提供的一款安全.可信的数据库服务.GaussDB(for MySQL)秉承华为云对租户的安全 ...

  2. mysql远程连接数据库的二种方法_mysql 远程连接数据库的二种方法

    mysql 远程连接数据库的二种方法 一.连接远程数据库: 1.显示密码 如:MySQL 连接远程数据库(192.168.5.116),端口"3306",用户名为"roo ...

  3. mysql源生插入数据_php+mysql源生连接数据库和增删改查数据

    php+mysql源生连接数据库和增删改查数据 新建一个init.php文件,执行链接数据库.内容如下 header("Content-type: text/html; charset=ut ...

  4. 如何使用MySQL Shell连接数据库

    在有些情况下我们需要使用命令行方式连接MySQL数据库,这时可以使用MySQL官方提供的命令行工具MySQL Shell. 一.下载MySQL Shell 下载地址:https://dev.mysql ...

  5. php+mysql+pdo连接数据库

    1.$pdo = new PDO("mysql:host=localhost;dbname=test","root","123456");/ ...

  6. autoreconnect mysql true_连接数据库超时设置autoReconnect=true

    mysql经典的8小时问题 链自: http://blog.csdn.net/bluesnail216/article/details/15810119 参考http://www.wang1314.c ...

  7. java 通过eclipse编辑器用mysql尝试 连接数据库

    一.下载JDBC mysql驱动,导入jar包     我自己下载的是connector-java-6.0.6.jar,如下图所示,JDBC mysql驱动连接地址http://mvnreposito ...

  8. vs2013 与mysql的连接数据库_VS2013连接Mysql数据库的设置以及常见问题

    前两天用VS2013连接Mysql遇到了很多问题,上网搜了很多发现好多讲的并不清楚,于是乎我就想把我遇到的问题总结下来,帮助后来人少走点弯路. 步骤: 1:首先需要注意的是 Mysql版本是32位还是 ...

  9. 魔域mysql怎么连接数据库_怪物入包脚本:Navicat for MySQL使用Navi

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 怪物入包脚本: Navicat for MySQL使用Navicat for MySQL连接数据库在 my 数据库中 找到 cq_action ,cq_m ...

  10. mysql+jdbc连接数据库简单实现登录功能 --java

    初识java web 实现简单的登录功能 mvc结构实现mysql 连接 什么是mvc MVC是模型(model).视图(view).控制(controller)这三个单词上的首字母组成.它是一种应用 ...

最新文章

  1. python对象编程例子-python面向对象编程练习
  2. python的scramy架构_Python库: PrettyTable 模块
  3. Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
  4. 下列那些是oracle的伪列,oracle伪列
  5. cocos2dx java 调用lua_cocos2dx之C++调用Lua
  6. 我所知道的Ribbon库
  7. POJ 1753 Flip Game(回溯)
  8. 基于centos6.5搭建solr服务器
  9. vue 获取跳转上一页组件信息
  10. 【Mendeley】自定义文献引用格式(国标GB2005)
  11. [转载] 我的Android进阶之旅:经典的大牛博客推荐
  12. html5 css 字体加粗,HTML和CSS实现字体加粗的三种方法
  13. 【IoT】创业:一份价值主张画布送给你
  14. Python根据拼音对中文排序
  15. 【Markdown语法】5分钟快速入门保姆级教程(建议收藏...)
  16. vue keys detected: '1111'. This may cause an update error.
  17. xunsearch使用流程
  18. 英国一名28岁女子晋升曾祖母
  19. 东大22春大学语文X《大学语文》在线平时作业2_100分资料非答案
  20. Prometheus告警实践

热门文章

  1. 【转】只有运用你的逻辑才能看懂其中的恐怖
  2. 抓鸡 抓服务器 1433 3306 全自动效率抓鸡
  3. 聊天机器人的“高情商”炼成术
  4. 洪恩机器人课程提示_【重要提示】全国儿童机器人等级考试报名启动!
  5. 动易模板制作示例(三)
  6. 数据库服务器位置,怎么查看服务器数据库的位置
  7. 使用JAVA基础语法做一个简易的发票管理系统
  8. 公务员计算机基本操作知识培训,计算机基础知识:计算机中窗口的基本操作
  9. 手机屏幕坏了____怎么把里面的资料导出(18种方法)
  10. c3p0连接池配置说明