DAO部分的基础类BaseDAO
来源:互联网 发布:python网络编程实例 编辑:程序博客网 时间:2024/06/15 00:47
1.每个DAO中都有连接数据库的过程,如果每次连接的话 都要重写驱动和用户名的话将是一个繁琐的过程
我们可以通过一个DAO父类来解决这个问题
package day01pm.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;/** * DAO父类 * * 基础类 * 提供所有的DAO 都需要兼备的特性 * * @author ssd * */public class BaseDAO {private static String diver = "oracle.jdbc.driver.OracleDriver";private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";private static String user = "scott";private static String pwd = "Shen2014";/** * 在静态初始化中注册驱动 * 驱动不需要重复注册,所以静态初始化最适合注册驱动 * @return */static {try{Class.forName(diver);/** * oracle.jdbc.driver.OracleDriver类 * 在Class.froName()的时候被载入JVM * OracleDriver 是JDBC中的Driver 的子类 * 他被要求在静态初始化的时候要将自身驱动的信息 * 通过DriverManager 的静态方法注册进去,这样DriverManager就 * 知道应该如何通过OracleDriver去连接数据库了。 * 所以之后就可以公国DriverManager 的另一个静态方法: * getConnection()来根据之前的注册的驱动信息来获取连接了。 */Connection conn = DriverManager.getConnection(url,user,pwd);}catch (Exception e){e.printStackTrace();//若注册失败,我们要通知调用者throw new RuntimeException(e);}}/** * 获取数据库连接对象Connection * @return * @throws SQLException 当连接失败时抛出异常 */protected static Connection getConnection() throws SQLException{ return DriverManager.getConnection(url,user,pwd);}protected static void closeConnection (Connection conn){if(conn != null){try{conn.close();}catch(SQLException e){e.printStackTrace();}}}}这样的话 上次的StudentDAO就可以通过继承BaseDAO的方法
测试结果相同
package day01pm.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import day01pm.entity.Student;/** * DAO 数据连接对象 * * StudentDAO 用于操作数据库Student表 * * @author ssd * */public class StudentDAO extends BaseDAO{/** * 根据学生的姓名查询学生的信息 * @param name * @return */public Student findStudentByName(String name){Connection conn = null;try {//通过父类的BaseDAO的getConnection()方法获取数据库连接conn = getConnection();Statement state = conn.createStatement();String sql = "SELECT * FROM student WHERE name = '"+name+"'";/** *根据用户名查询该用户的信息 *并将这条数据转化为一个Student对象返回 */ResultSet rs = state.executeQuery(sql);if(rs.next()){Student student = new Student();student.setId(rs.getString("id"));student.setName(rs.getString("name"));student.setAge(rs.getInt("age"));student.setSex(rs.getString("sex"));return student;}}catch (Exception e){e.printStackTrace();}finally{closeConnection(conn);}return null;}}
通过原来的Test程序 得到的结果是相同的
0 0
- DAO部分的基础类BaseDAO
- 提取出Dao中公共的部分BaseDao
- java hibernate 基础dao basedao
- Dao操作的抽取, BaseDao
- BaseDao --- dao层的抽取
- 连接数据库的基础类BaseDao.java
- 9dao层的实现类中的配置BaseDao,所有的DaoImpl可以继承此类
- dao层的实现类中的配置BaseDao,所有的DaoImpl可以继承此类
- Hibernate DAO层 的BaseDao泛型写法
- Java中Dao模式中两种Dao的数据库操作(BaseDao的写法)
- 基于Hibernate的BaseDao类
- 基于Hibernate的BaseDao类
- BaseDao类
- BaseDao类
- hibernate4的dao基础工具类
- java web项目DAO层通用接口BaseDao与实现类BaseDaoImpl
- java web项目DAO层通用接口BaseDao与实现类BaseDaoImpl
- BaseDao实现Dao层代码优化
- Scala的List
- log4j配置祥解
- APUE学习笔记(19)-守护进程
- 一个Web页面的问题分析
- strcpy溢出的攻击示例
- DAO部分的基础类BaseDAO
- JavaWeb JDBC驱动链接
- 真心有点倒霉了
- random forest(随机森林)
- Nginx+FastCGI(配置等)
- java 文件读写 操作
- HttpClient 4.3超时设置
- 大家好!
- 7款开源Java反编译工具