mysql DAO basedao
2019-12-06 10:19
281 查看
主要功能
封装 对数据库的操作方法
增 删 改 查 都在里面 basedao里面
dbutils里面的update 可以实现 增 删 改
dbutils里面的query 可以实现 一行 和 多行的查询
查询的返回结果 封装为bean对象.
具体使用时候 继承basedao 实现其他需求的方法
public class UserDaoImpl extends BaseDao<User> implements UserDao
package com.itstaredu.bookstore.dao; /** * @version 1.0 * @date 2019/12/5 9:32 下午 **/ import com.itstaredu.bookstore.utils.JDBCUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.sql.Connection; import java.sql.SQLException; import java.util.List; /** * 封装对数据库操作的基本方法 * 一行所有的表的增删改查都在这里面调用 * 对象的方法 * */ public class BaseDao<T> { private Class<T> type; private QueryRunner queryRunner = new QueryRunner(); public BaseDao() { Class<? extends BaseDao> cla = this.getClass(); /** * 带有泛型的父类 */ ParameterizedType tp = (ParameterizedType) cla.getGenericSuperclass(); Type[] types = tp.getActualTypeArguments(); type = (Class<T>) types[0]; } /** * 对数据库操作的工具类dbutils提供 * 增 删 改 */ public int update(String sql, Object... params) { /** * 不要向外抛 处理很麻烦 在内部处理 */ int update = 0; Connection connect = JDBCUtils.getConnect(); try { update = queryRunner.update(connect, sql, params); } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtils.releaseConnection(connect); } return update; } /** * ResultSetHandler 将结果转换为对象的处理程序 * The Class that objects returned from handle() are created from */ public T getBean(String sql, Object... params) { Connection conn = JDBCUtils.getConnect(); T t = null; try { t = queryRunner.query(conn, sql, new BeanHandler<T>(type), params); } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtils.releaseConnection(conn); } return t; } public List<T> getListBean(String sql, Object... params) { Connection conn = JDBCUtils.getConnect(); List<T> list = null; try { list = queryRunner.query(conn, sql, new BeanListHandler<T>(type), params); } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtils.releaseConnection(conn); } return list; } }
相关文章推荐
- SSM中使用generator自动生成MySQL表对应的DAO、mapping、 acba entity
- mysql数据库锁死,报错 mysql add/update error:org.springframework.dao.CannotAcquireLockException
- Spring_SSH整合之_架构的历史(四层架构整合JSP+MySQL+JavaBean+Hibernate+Dao+Impl)_4
- 泛型类型通常在Dao和Service 中使用BaseDao<T extends Serializable>的泛型
- Mybatis 如何自动生成bean dao xml 配置文件 generatorconfig.xml (mysql)
- Java中Dao模式中两种Dao的数据库操作(BaseDao的写法)
- 使用Servlet上传多张图片——Dao层(BaseDao.java)
- 通过自动回复机器人学Mybatis:MySQL脚本 + db >> dao >> service >> servlet
- SSH的一个BaseDao继承HibernateDaoSupport(一)
- DAO部分的基础类BaseDAO
- java开发c3p0连接池,JDBC,数据库mysql,java开发DAO接口及实现增删改查操作
- 连接MySQL中的baseDao
- 泛型类型通常在Dao和Service 中使用BaseDao<T extends Serializable>的泛型
- Dao操作的抽取,BaseDao
- url=jdbc:mysql//localhost:3306/spring_dao?useUnicode=true&characterEncoding=UTF-8
- 使用HibernateDaoSupport抽取BaseDao
- nutz 直接运行sql语句 mysqlDao java
- Mysql8.0.16的Generator自动生成Model,dao.和mapping.
- 使用ueditor实现多图片上传案例——Dao层(BaseDao)
- 基于hibernate的通用、”万能“Dao的设计(二)之基础BaseDao