java-javaweb-dao案例3

来源:互联网 发布:数据结构出栈算法程序 编辑:程序博客网 时间:2024/05/18 00:45

package com.lenovo.util;

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

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

public class DBcontrol {
    private Connection conn;
    private Statement st;
    private ResultSet rs;
    private static DataSource ds=null;
   
    public DBcontrol(){//数据源方式
        if(null==ds){
            try {
                Context context = new InitialContext();
                ds = (DataSource)context.lookup("java:comp/env/jdbc/sqlDataSource");
            } catch (NamingException e) {
                e.printStackTrace();
            }
        }
    }
    private Statement getStatement(){
        try {
            conn = ds.getConnection();
            st = conn.createStatement();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return st;
    }
   
    public ResultSet getQuery(String sqlstr){
        try {
            rs = getStatement().executeQuery(sqlstr);//executeQuery方法返回SQL语句查询的结果集ResultSet,里边包括符合查询条件的所有数据库内容
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;
    }
   
    public boolean dataUpdate(String sqlstr){
        int count = 0;
        try {
            count = getStatement().executeUpdate(sqlstr);//executeUpdate方法返回更新数据库内容的行数,更新了几行就返回数字几
        } catch (SQLException e) {
            return false;
        }finally{
           closeAll();
        }
        if(count>0){
            return true;//如果更新大于零行,就证明更新成功了
        }else{
            return false;
        }
    }
   
    public boolean executeSql(String sqlstr){
        boolean flag = false;
        try {
            getStatement().execute(sqlstr);//执行sql语句,只要能进入下一步,就正常,如果catch到异常,就是默认值false
            flag = true;
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
           closeAll();        }
        return flag;
    }
   
    public void closeAll(){
        try {
            if(rs!=null){
                rs.close();
            }
            if(st!=null){
                st.close();
            }
            if(conn!=null){
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
 

原创粉丝点击