动态数据源Deomo采用早之前的博客的代码内容;
码云也现成有代码;
码云地址博客最后;
效果图如下:
查询的字段全部都是login,password
list01是原有的效果;
list02把null删除了;
http://localhost:1234/user/list01
http://localhost:1234/user/list02
详细代码上面地址有我这边只赋相关内容;
Controller
/** * 尝试动态数据库 * @return * * http://localhost:1234/user/list */ @RequestMapping("list01") public List<UserEntity> findall01(){ return userService.findall01(); } /** * 尝试动态数据库 * @return * * http://localhost:1234/user/list02 */ @RequestMapping("list02") public List<Map<String,String>> findall02() throws IllegalAccessException { return userService.findall02(); }
Srevice
/** * 查询所有的数据 * @return */ List<UserEntity> findall01(); /** * 查询所有的数据 * @return */ List<Map<String,String>> findall02() throws IllegalAccessException;
ServiceImpl
/** * 调用finall 实现查询全部 * @return */ @Override public List<UserEntity> findall01() { //表名 String tableName="user"; //字段名 String name="login,password"; List<UserEntity> list = userinfoMapper.findall01(tableName,name); return list; } /** * 调用finall 实现查询全部 * @return */ @Override public List<Map<String,String>> findall02() throws IllegalAccessException { //表名 String tableName="user"; //字段名 String name="login,password"; List<UserEntity> find= userinfoMapper.findall02(tableName,name); List<Map<String,String>> lit=new ArrayList<>(); for (UserEntity maps:find) { // Map<String, Object> mapList = BeanUtil.beanToMap(maps); lit.add(objectToMap(maps)); } return lit; } public static Map<String,String> objectToMap(Object requestParameters) throws IllegalAccessException { Map<String, String> map = new HashMap<>(); // 获取f对象对应类中的所有属性域 Field[] fields = requestParameters.getClass().getDeclaredFields(); for (int i = 0, len = fields.length; i < len; i++) { String varName = fields[i].getName(); // 获取原来的访问控制权限 boolean accessFlag = fields[i].isAccessible(); // 修改访问控制权限 fields[i].setAccessible(true); // 获取在对象f中属性fields[i]对应的对象中的变量 Object o = fields[i].get(requestParameters); if (o != null && StringUtils.isNotBlank(o.toString().trim())) { map.put(varName, o.toString().trim()); // 恢复访问控制权限 fields[i].setAccessible(accessFlag); } } return map; }
上面的import内容,参考大家知道引的那个依赖即可
import cn.hutool.core.bean.BeanUtil; import com.example.demo.entity.UserEntity; import com.example.demo.mapper.UserinfoMapper; import com.example.demo.service.UserService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
Dao
/** * 查询全部 * @return */ List<UserEntity> findall01(@Param("tableName") String tableName,@Param("name") String name); /** * 查询全部 * @return */ List<UserEntity> findall02(@Param("tableName") String tableName, @Param("name") String name);
SQL
<!-- 查询全部信息--> <select id="findall01" parameterType="com.example.demo.entity.UserEntity" resultMap="userMap"> select ${name} from ${tableName} </select> <!-- 查询全部信息--> <select id="findall02" parameterType="java.util.Map" resultMap="userMap"> select ${name} from ${tableName} </select>
以上作为参考;具体以大家需求为主;