Java BaseDao

BaseDao类:

package dao;

import java.sql.*;

public class BaseDao {
    private static final String driver = "oracle.jdbc.driver.OracleDriver";
    private static final String url = "jdbc:oracle:thin:@localhost:1521:ACCP";
    private static final String uid = "scott";
    private static final String pwd = "scott";

    private static Connection con;
    private static PreparedStatement pstmt;

    /**
     * 建立连接对象
     * @return
     */
    public static Connection getConnection() {
        try {
            Class.forName(driver);
            con = DriverManager.getConnection(url, uid, pwd);
            return con;
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 关闭对象
     * @param rs 数据集对象
     */
    public static void Close(ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (pstmt != null) {
            try {
                pstmt.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    /**
     * 执行查询操作
     * @param sql  查询的sql语句
     * @param paras  查询的参数 Object[]数组
     * @return 结果集
     */
    public static ResultSet ExecuteQuery(String sql, Object[] paras) {
        getConnection();
        try {
            pstmt = con.prepareStatement(sql);
            if (paras != null && paras.length > 0) {
                for (int i = 0; i < paras.length; i++) {
                    pstmt.setObject(i + 1, paras[i]);
                }
            }
            ResultSet rs = pstmt.executeQuery();

            return rs;

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

    /**
     * 执行增加、修改、删除操作
     * @param sql  操作的sql语句
     * @param paras  操作的参数
     * @return 受影响的行数
     */
    public static int ExecuteUpdate(String sql, Object[] paras) {
        getConnection();
        try {
            pstmt = con.prepareStatement(sql);
            if (paras != null && paras.length > 0) {
                for (int i = 0; i < paras.length; i++) {
                    pstmt.setObject(i + 1, paras[i]);
                }
            }
            int rs = pstmt.executeUpdate();

            return rs;

        } catch (SQLException e) {
            e.printStackTrace();
            return -1;
        }
    }
}

调用:

package dao;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

import entities.Emp;

public class empDao {

    public List<Emp> GetEmpList() {
        ResultSet rs = BaseDao.ExecuteQuery("select * from emp", null);

        try {
            List<Emp> list = new ArrayList<Emp>();
            while (rs.next()) {
                Emp e = new Emp();
                e.setEmpno(rs.getInt("empno"));
                e.setEname(rs.getString("ename"));
                e.setJob(rs.getString("job"));
                e.setMgr(rs.getInt("mgr"));
                e.setHiredate(rs.getDate("hiredate"));
                e.setSal(rs.getDouble("sal"));
                e.setComm(rs.getDouble("comm"));
                e.setDeptno(rs.getInt("deptno"));
                list.add(e);
            }
            return list;
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        } finally {
            BaseDao.Close(rs);
        }
    }
}
时间: 2024-08-01 21:15:18

Java BaseDao的相关文章

开源组件:(4)用元数据和BeanUtils写一个简单的ORM映射BaseDAO.java

1.JDBC元数据 在jdbc中可以使用: 数据库元数据.参数元数据.结果集元数据 (1)数据库元数据 通过Connection对象的getMetaData() 方法可以得到DatabaseMetaData对象.DatabaseMetaData对象包含了数据库的元信息. DatabaseMetaData java.sql.Connection.getMetaData() Retrieves a DatabaseMetaData object that contains metadata abou

spring+springmvc+ibatis整合注解方式实例

需求说明 实现用户通过数据库验证登录需求,采用 Myeclipse+Tomcat 6.0+Mysql 5.0+JDK 1.6 2.数据库表 开发所用是Mysql数据库,只建立单张用户表T_USER,表结构如下: 字段名称 数据类型 字段描述 ID int 用户编号 USERNAME VARCHAR 用户名 PASSWORD VARCHAR 用户登录密码 sql语句如下: CREATE TABLE `t_user` ( `ID` int(11) NOT NULL auto_increment, `

SSH框架整合2

===========================================web.xml=================================================== <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://

java web项目DAO层通用接口BaseDao与实现类BaseDaoImpl

在spring+hibernate的web项目中,处理数据层通常会使用Spring框架提供的HibernateTemplate类提供的方法.通常的用法是每一个实体类对应的去写DAO层的接口和实现类.每个实现类中都写hibernateTemp.save(entity).hibernateTemp.update(entity).hibernateTemp.get(id)...这样写固然没错,但存在着大量的重复代码.所以懒惰的程序员烦了,他们要写一个通用的实现类来解决这个问题,让DAO层解放出来.如果

java 利用注解实现BaseDao 增删查改

第一步,编写两个注解类,用于表明实体类对应的表名及字段. TableInfo.java 此注解用于标注表名及主键名 import static java.lang.annotation.ElementType.TYPE; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /* * TableName对应表名称

Java连接Oracle数据库开发银行管理系统【三、实现篇】

说明:里面的主要代码都加的有注释部分,所以代码显得很长,如果有错误的地方,谢谢指出. 注意需要导入数据库jar包 --------------------------------------------------------------------------------- 1. com.ll.test包下面类 1.1 test类 package com.ll.test; import com.ll.service.Bank; public class TestBank { public st

Java面试题下

这部分主要是开源Java EE框架方面的内容,包括hibernate.MyBatis.spring.Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章<Java面试题集(86-115)>.此外,这篇文章还对企业应用架构.大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助. 126.什么是ORM?答:对象关系映射(Object-Relational Mapping,简称OR

JavaEE笔记——BaseDao的使用

在Hibernate框架中使用BaseDao主要的作用是减少冗余代码,在对Dao的操作中CRUD可以说是最普通最常见的操作了,基本上面对不同的数据表都会有类似的CRUD操作,BaseDao的思想就是把这些冗余的操作抽取出来,所以不需要在spring框架的applicationContext.xml中注册,这可能是与其他Dao不同之处.作为一个抽象出来的类,使用这个BaseDao可以使我们的代码更优雅 第一步:和普通Dao一样,先创建个接口 接口中实现的方法有add(添加),update(更新),

在java中导出excel

package com.huawei.controller; import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.List;import java.util.Map; import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.Htt