JDBC封装 查询

封装到工具类

  public T getObjectByParams(RowMapper<T> row, String strSql, Object... params) {
        Connection connection = this.getConnection();
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            preparedStatement = connection.prepareStatement(strSql);

            if (null != params) {
                for (int i = 0; i < params.length; i++) {
                    preparedStatement.setObject(i + 1, params[i]);
                }
            }
            resultSet = preparedStatement.executeQuery();
            while (resultSet.next()) {
                return row.mapper(resultSet);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
          close(resultSet, preparedStatement, connection);
        }
        return null;
    }

    public List<T> getObjectListByParams(RowMapper<T> row, String strSql, Object... params) {
        Connection connection = this.getConnection();
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        List<T> list = new ArrayList<>();
        try {
            preparedStatement = connection.prepareStatement(strSql);
            if (params != null) {
                for (int i = 0; i < params.length; i++) {
                    preparedStatement.setObject(i + 1, params[i]);
                }
            }
            resultSet = preparedStatement.executeQuery();
            
            while (resultSet.next()) {
                T mapper = row.mapper(resultSet);
                list.add(mapper);
            }
            return list;
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close(resultSet, preparedStatement, connection);
        }

        return null;
    }
}

实现类分别实现接口实现类实现接口并继承数据库工具类

@Override
    public List<Dog> getAllDog() {
        String sqlStr = "select d.id,d.name,d.health,d.love,d.strain,d.lytm from dog d";
        List<Dog> dog = super.getObjectListByParams(row, sqlStr);
        return dog;
    }

    @Override
    public Dog getDogById(Integer id) {

        String sqlStr = "select d.id,d.name,d.health,d.love,d.strain,d.lytm,\n" +
                "            m.pid,m.name pname, m.age,m.gender,m.yearnum,m.did\n" +
                "            from dog d\n" +
                "            left join master m  on d.id= m.did\n" +
                "            where d.id=?";
        Dog dog = super.getObjectByParams(row, sqlStr, id);
        return dog;
    }


    RowMapper<Dog> row = new RowMapper<Dog>() {
        @Override
        public Dog mapper(ResultSet resultSet) {
            Dog dog = new Dog();

            try {
                dog.setId(resultSet.getInt("id"));
                dog.setName(resultSet.getString("name"));
                dog.setHealth(resultSet.getInt("health"));
                dog.setLove(resultSet.getInt("love"));
                dog.setStrain(resultSet.getString("strain"));
                dog.setLytm(resultSet.getDate("lytm"));


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

 测试类进行测试

  @Test
    public void testGetAllDog2() {
        DogDao dogDao = new DogDaoImpl2();
        List<Dog> allDog = dogDao.getAllDog();
        for (Dog dog :
                allDog) {
            System.out.println(dog.toString());
        }
    }

    @Test
    public void testGetDogById2() {

        DogDao dogDao = new DogDaoImpl2();
        Dog dog = dogDao.getDogById(7);
        System.out.println(dog.toString());
    }

猜你喜欢

转载自blog.csdn.net/m0_74162514/article/details/128557180