Java_JDBC连接数据库

  1 package com.accp.dao;
  2 import java.sql.Connection;
  3 import java.sql.DriverManager;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 import java.sql.SQLException;
  7 
  8 
  9 /**
 10  * 持久类父类
 11  * @author Administrator
 12  *
 13  */
 14 public abstract class BaseDao {
 15     private static final String DB_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
 16     private static final String DB_URL = "jdbc:sqlserver://localhost:1433;databasename=epet";
 17     private static final String DB_USER = "sa";
 18     private static final String DB_PWD = "sa";
 19     
 20     protected Connection conn = null;
 21     protected PreparedStatement ps = null;
 22     protected ResultSet rs = null;
 23     
 24     static{
 25         //1、加载驱动类
 26         try {
 27             Class.forName(DB_DRIVER);
 28         } catch (ClassNotFoundException e) {
 29             // TODO Auto-generated catch block
 30             e.printStackTrace();
 31         }
 32     }
 33     
 34     /**
 35      * 打开连接方法
 36      * @return
 37      */
 38     protected void openConn(){
 39         //2、创建连接
 40         try {
 41             conn = DriverManager.getConnection(DB_URL,DB_USER,DB_PWD);
 42         } catch (SQLException e) {
 43             // TODO Auto-generated catch block
 44             e.printStackTrace();
 45         }
 46     }
 47     
 48     /**
 49      * 执行增加、修改、删除
 50      * @param sql
 51      * @param paras
 52      * @return
 53      */
 54     // select count(*) from [master] where name=? and password=?
 55     // Object[] objs = {"张三","123456"};
 56     protected int executeUpdate(String sql,Object...paras){
 57         int ret = -1;
 58         
 59         try {
 60             //打开连接
 61             openConn();
 62             //获取执行SQL对象
 63             ps = conn.prepareStatement(sql);
 64             //给sql参数赋值
 65             if(paras != null){
 66                 for (int i = 0; i < paras.length; i++) {
 67                     ps.setObject(i+1, paras[i]);
 68                 }
 69             }
 70             
 71             //执行SQL 
 72             ret = ps.executeUpdate();
 73         } catch (SQLException e) {
 74             // TODO Auto-generated catch block
 75             e.printStackTrace();
 76         } finally{
 77             //关闭资源
 78             closeConn();
 79         }
 80         
 81         return ret;
 82     }
 83 
 84     /**
 85      * 执行所有的查询
 86      * @param sql
 87      * @param paras
 88      */
 89     protected void executeQuery(String sql,Object...paras){        
 90         try {
 91             //打开连接
 92             this.openConn();
 93             //获取执行SQL对象
 94             ps = conn.prepareStatement(sql);
 95             if(paras != null){
 96                 for (int i = 0; i < paras.length; i++) {
 97                     ps.setObject(i+1, paras[i]);
 98                 }
 99             }
100             //执行SQL 
101             rs = ps.executeQuery();
102         } catch (SQLException e) {
103             // TODO Auto-generated catch block
104             e.printStackTrace();
105         }
106     }
107     
108     /**
109      * 释放资源
110      * @param conn
111      * @param stmt
112      * @param rs
113      */
114     protected void closeConn(){
115         try {
116             if(rs != null){
117                 rs.close();
118             }
119             if(ps != null){
120                 ps.close();
121             }
122             if(conn != null){
123                 conn.close();
124             }
125         } catch (SQLException e) {
126             // TODO Auto-generated catch block
127             e.printStackTrace();
128         }
129     }
130 }
欢迎提出意见或建议!!!
原文地址:https://www.cnblogs.com/gaofei-1/p/7345007.html