zoukankan      html  css  js  c++  java
  • 今日总结

    2020年10月8日:

    今天学习了Basedao:

    BaseDao接口:一般是提供从数据库 增加、删除、修改记录、查询所有记录、查询符合某个条件记录、取得某条记录等方法的底层数据操作自定义类。
    由于我们可能操作多个数据库表,这样就需要为每个表提供一个操作他的类 xxDAO, 这些DAO继承BaseDAO 就可以省略很多重复代码,使得整个程序变得更加的简洁和方便。

    我写的一个普遍的dao代码:

    package Dao;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.List;
    import java.util.Map;
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    import org.apache.commons.dbutils.handlers.MapHandler;
    import org.apache.commons.dbutils.handlers.MapListHandler;
    import org.apache.commons.dbutils.handlers.ScalarHandler;
    public class basedao{
    private QueryRunner query1=new QueryRunner();
    public int update(Connection connection,String sql,Object ... args)
    {
    try{
    return query1.update(connection,sql, args);
    }catch(SQLException e){
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    public int[] Batch(Connection connection,String sql,Object[][] params){
    try {
    return query1.batch(connection, sql, params);
    } catch (SQLException e){
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    public <T> T foreach(Connection connection,Class<T>type,String sql,Object ... args)
    {
    try {
    return query1.query(connection, sql,new BeanHandler<T>(type),args);
    } catch (SQLException e)
    {
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    public List<Map<String,Object>> foreachmaplist(Connection connection,String sql,Object ... args)
    {
    try {
    return query1.query(connection, sql,new MapListHandler(),args);
    } catch (SQLException e)
    {
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    public Map<String,Object> foreachmap(Connection connection,String sql,Object ... args)
    {
    try {
    return query1.query(connection, sql,new MapHandler(),args);
    } catch (SQLException e)
    {
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    public <T> List<T> foreachlist(Connection connection,Class<T>type,String sql,Object ... args)
    {
    try{
    return query1.query(connection, sql,new BeanListHandler<T>(type),args);
    } catch (SQLException e)
    {
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    public Object foreachvalue(Connection connection,String sql,Object...args){
    try {
    return query1.query(connection,sql,new ScalarHandler<Object>(),args);
    } catch (SQLException e){
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    }

     

  • 相关阅读:
    Java 数组的浅拷贝和深拷贝
    Java 传递可变参数和方法重载
    Java 数组排序
    Java 一维数组作为参数和返回值
    Java 运算符及优先级
    MySQL 由 5.7 升级为 8.0 之后,Laravel 的配置改动
    Lavarel
    Laravel框架中Blade模板的用法
    php-fpm 配置文件检测
    Laravel Blade 模板 @section/endsection 与 @section/show, @yield 的区别
  • 原文地址:https://www.cnblogs.com/yitiaokuailedexiaojingyu/p/14105078.html
Copyright © 2011-2022 走看看