package com.accp.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; /**
* 持久类父类
* @author Administrator
*
*/
public abstract class BaseDao {
private static final String DB_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String DB_URL = "jdbc:sqlserver://localhost:1433;databasename=epet";
private static final String DB_USER = "sa";
private static final String DB_PWD = "sa"; protected Connection conn = null;
protected PreparedStatement ps = null;
protected ResultSet rs = null; static{
//1、加载驱动类
try {
Class.forName(DB_DRIVER);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* 打开连接方法
* @return
*/
protected void openConn(){
//2、创建连接
try {
conn = DriverManager.getConnection(DB_URL,DB_USER,DB_PWD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* 执行增加、修改、删除
* @param sql
* @param paras
* @return
*/
// select count(*) from [master] where name=? and password=?
// Object[] objs = {"张三","123456"};
protected int executeUpdate(String sql,Object...paras){
int ret = -1; try {
//打开连接
openConn();
//获取执行SQL对象
ps = conn.prepareStatement(sql);
//给sql参数赋值
if(paras != null){
for (int i = 0; i < paras.length; i++) {
ps.setObject(i+1, paras[i]);
}
} //执行SQL
ret = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
//关闭资源
closeConn();
} return ret;
} /**
* 执行所有的查询
* @param sql
* @param paras
*/
protected void executeQuery(String sql,Object...paras){
try {
//打开连接
this.openConn();
//获取执行SQL对象
ps = conn.prepareStatement(sql);
if(paras != null){
for (int i = 0; i < paras.length; i++) {
ps.setObject(i+1, paras[i]);
}
}
//执行SQL
rs = ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* 释放资源
* @param conn
* @param stmt
* @param rs
*/
protected void closeConn(){
try {
if(rs != null){
rs.close();
}
if(ps != null){
ps.close();
}
if(conn != null){
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

Java_JDBC连接数据库的更多相关文章

  1. Java_JDBC连接数据库_使用读取配置文件的方式

    package com.homewoek3_4.dao; import java.io.IOException; import java.io.InputStream; import java.sql ...

  2. java_JDBC,连接数据库方式,RestSet结果集,Statement,PreparedStatement,事务,批处理,数据库连接池(c3p0和Druid)、Apache-DBUtils、

    一.JDBC的概述 1.JDBC为访问不同的数据薛是供了统一的接口,为使用者屏蔽了细节问题.2. Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作 ...

  3. JDBC连接数据库的几种方法

    一. 最古老的方法(通过 Driver 接口直接连接数据库) 首先创建一个 Driver 实现类的对象 Driver dirver = new com.mysql.jdbc.Driver(); 准备连 ...

  4. react+redux教程(八)连接数据库的redux程序

    前面所有的教程都是解读官方的示例代码,是时候我们自己写个连接数据库的redux程序了! 例子 这个例子代码,是我自己写的程序,一个非常简单的todo,但是包含了redux插件的用法,中间件的用法,连接 ...

  5. 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  6. winForm连接数据库(sqlserver2005)

    帮同学搞个课程设计winform连接sqlserver2005 具体方法: .添加App.config文件 2.在App.config文件中添加节点 <?xml version="1. ...

  7. c3p0连接数据库的3种方式

    c3p0连接数据库的3种方式,这里以mysql为例 1. 直接用set方法设置参数, 基本方法 ComboPooledDataSource dataSource = new ComboPooledDa ...

  8. Java连接数据库的辣几句话

    Java连接数据库的辣几句话 1.java连接Oracle数据库 使用以下代码三个步骤: 1.下载ojdbc.jar包并导入项目中.附下载地址:http://download.csdn.net/det ...

  9. 基础的jdbc连接数据库操作

    首先我们知道在数据库中,我们可以直接写sql或者直接通过数据库工具操作数据,但是在java程序中我们是不能直接操作数据库数据的,所以这就引入了jdbc操作. 百度百科:JDBC(Java Data B ...

随机推荐

  1. ansible学习之--简单学习笔记1

    1.利用dm-crypt来创建加密文件系统.编写shell脚本(安装和卸载两个shell脚本) 2.编写ansible,playbook文件 3.编写python脚本 首先编写shell脚本 inst ...

  2. iOS学习之动画效果的实现

    // //  ViewController.m //  UI-动画练习 // //  Created by jzq_mac on 15/7/22. //  Copyright (c) 2015年 jz ...

  3. Java中使用HttpRequest获取用户真实IP地址端口

    import javax.servlet.http.HttpServletRequest; /** * 自定义访问对象工具类 * * 获取对象的IP地址等信息 * @author X-rapido * ...

  4. HDU4738 Caocao's Bridges —— 边双联通分量 + 重边

    题目链接:https://vjudge.net/problem/HDU-4738 A network administrator manages a large network. The networ ...

  5. zoj 3861(dfs)

    Valid Pattern Lock Time Limit: 2 Seconds      Memory Limit: 65536 KB Pattern lock security is genera ...

  6. Java-Runoob-高级教程-实例-字符串:09. Java 实例 - 字符串小写转大写

    ylbtech-Java-Runoob-高级教程-实例-字符串:09. Java 实例 - 字符串小写转大写 1.返回顶部 1. Java 实例 - 字符串小写转大写  Java 实例 以下实例使用了 ...

  7. C++中continue

    /* C++中continue使用 Author:盗了一个你 */ #include<iostream> using namespace std; int main() { int val ...

  8. Pascal输出星星

    program Project2; {$APPTYPE CONSOLE} uses SysUtils; var i,j:integer; begin { TODO -oUser -cConsole M ...

  9. js 获取url的request参数

     方法1: function getRequest(strParame) { var args = new Object(); var query = location.search.substrin ...

  10. MYSQL自动备份策略的选择(转载)

    原文地址: http://shinepaopao.iteye.com/blog/1938568