BaseDao类

来源:互联网 发布:淘宝搜索热度什么意思 编辑:程序博客网 时间:2024/05/20 21:57

package dao;

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

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;


public class BaseDao {
 //属性
 public Connection conn;
 public PreparedStatement pstmt;
 public ResultSet rs;
 //获得连接
 public Connection getConnection(){
  try {
   //初始化上下文
   Context ctx = new InitialContext();
   //获取与逻辑名相同的数据源对象
   DataSource ds =
             (DataSource)ctx.lookup("java:comp/env/jdbc/MySQLDB");
   conn = ds.getConnection();
  } catch (NamingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }catch(SQLException e){
   e.printStackTrace();
  }
  return conn;
 }
 // 增删改
 public int executeUpdate(String sql,Object[] parames){
  int row = 0;
  conn = getConnection();//获得连接
  try {
   pstmt = conn.prepareStatement(sql);
   //填充占位符
   for(int i=0;i<parames.length;i++){
    pstmt.setObject(i+1, parames[i]);
   }
   row = pstmt.executeUpdate();
  } catch (SQLException e) {
   e.printStackTrace();
  }finally{
   close();
  }
  return row;
 }
 //查询方法
 public ResultSet executeSQL(String sql,Object[] params){
  //获得连接
  conn = getConnection();
  
  try{
   pstmt = conn.prepareStatement(sql);
   for(int i = 0;i<params.length;i++){   
    pstmt.setObject((i+1), params[i]); 
   }
   rs = pstmt.executeQuery();
  }catch(SQLException e){
   e.printStackTrace();
   return null;
  }
  return rs;
 }
 
 //断开连接
 public void close(){
  try {
   if (rs != null) {
    rs.close();
   }
   if (pstmt != null) {
    pstmt.close();
   }
   if (conn != null) {
    conn.close();
   }

  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
}

 

0 0
原创粉丝点击