Browse Source

新添加注入方法selectObjs

Caratacus 8 years ago
parent
commit
b62cc640a8

+ 2 - 1
mybatis-plus/src/main/java/com/baomidou/mybatisplus/enums/SqlMethod.java

@@ -55,7 +55,8 @@ public enum SqlMethod {
 	SELECT_LIST("selectList", "查询满足条件所有数据", "<script>SELECT %s FROM %s %s</script>"),
 	SELECT_PAGE("selectPage", "查询满足条件所有数据(并翻页)", "<script>SELECT %s FROM %s %s</script>"),
 	SELECT_MAPS("selectMaps", "查询满足条件所有数据", "<script>SELECT %s FROM %s %s</script>"),
-	SELECT_MAPS_PAGE("selectMapsPage", "查询满足条件所有数据(并翻页)", "<script>SELECT %s FROM %s %s</script>");
+	SELECT_MAPS_PAGE("selectMapsPage", "查询满足条件所有数据(并翻页)", "<script>SELECT %s FROM %s %s</script>"),
+	SELECT_OBJS("selectObjs", "查询满足条件所有数据", "<script>SELECT %s FROM %s %s</script>");
 
 	private final String method;
 	

+ 18 - 0
mybatis-plus/src/main/java/com/baomidou/mybatisplus/mapper/AutoSqlInjector.java

@@ -155,6 +155,7 @@ public class AutoSqlInjector implements ISqlInjector {
 		this.injectSelectListSql(SqlMethod.SELECT_PAGE, mapperClass, modelClass, table);
 		this.injectSelectMapsSql(SqlMethod.SELECT_MAPS, mapperClass, modelClass, table);
 		this.injectSelectMapsSql(SqlMethod.SELECT_MAPS_PAGE, mapperClass, modelClass, table);
+		this.injectSelectObjsSql(SqlMethod.SELECT_OBJS, mapperClass, modelClass, table);
 		/* 自定义方法 */
 		this.inject(configuration, builderAssistant, mapperClass, modelClass, table);
 	}
@@ -429,6 +430,23 @@ public class AutoSqlInjector implements ISqlInjector {
 		this.addSelectMappedStatement(mapperClass, sqlMethod.getMethod(), sqlSource, Map.class, table);
 	}
 
+	/**
+	 * <p>
+	 * 注入EntityWrapper方式查询记录列表 SQL 语句
+	 * </p>
+	 *
+	 * @param sqlMethod
+	 * @param mapperClass
+	 * @param modelClass
+	 * @param table
+	 */
+	protected void injectSelectObjsSql(SqlMethod sqlMethod, Class<?> mapperClass, Class<?> modelClass, TableInfo table) {
+		String sql = String.format(sqlMethod.getSql(), sqlSelectColumns(table, true), table.getTableName(),
+				sqlWhereEntityWrapper(table));
+		SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);
+		this.addSelectMappedStatement(mapperClass, sqlMethod.getMethod(), sqlSource, Object.class, table);
+	}
+
 	/**
 	 * <p>
 	 * 注入EntityWrapper查询总记录数 SQL 语句

+ 11 - 0
mybatis-plus/src/main/java/com/baomidou/mybatisplus/mapper/BaseMapper.java

@@ -191,6 +191,17 @@ public interface BaseMapper<T> {
 	 */
 	List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> wrapper);
 
+	/**
+	 * <p>
+	 * 根据 Wrapper 条件,查询全部记录
+	 * </p>
+	 *
+	 * @param wrapper
+	 *            实体对象封装操作类(可以为 null)
+	 * @return List<Object>
+	 */
+	List<Object> selectObjs(@Param("ew") Wrapper<T> wrapper);
+
 	/**
 	 * <p>
 	 * 根据 entity 条件,查询全部记录(并翻页)

+ 8 - 8
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/mysql/NoXMLTest.java

@@ -51,19 +51,19 @@ public class NoXMLTest {
 		 */
 		TestMapper testMapper = sqlSession.getMapper(TestMapper.class);
 		testMapper.insert(new Test(IdWorker.getId(), "Caratacus"));
-        List<Map<String, Object>> list = testMapper.selectMaps(null);
-        List<Map<String, Object>> list1 = testMapper.selectMapsPage(RowBounds.DEFAULT, null);
-        List<Map<String, Object>> list2 = testMapper.selectMapsPage(new Page(1,5), null);
-        System.out.println(list);
-        System.out.println(list1);
-        System.out.println(list2);
-        Map<String, Object> map = new HashMap<String, Object>();
+		List<Map<String, Object>> list = testMapper.selectMaps(null);
+		List<Map<String, Object>> list1 = testMapper.selectMapsPage(RowBounds.DEFAULT, null);
+		List<Map<String, Object>> list2 = testMapper.selectMapsPage(new Page(1, 5), null);
+		System.out.println(list);
+		System.out.println(list1);
+		System.out.println(list2);
+		Map<String, Object> map = new HashMap<String, Object>();
 		map.put("type", null);
 		map.put("id", null);
 		List<Test> tests = testMapper.selectByMap(map);
 		if (null != tests) {
 			for (Test test : tests) {
-				System.out.println("id:"+test.getId()+ " , type:" + test.getType());
+				System.out.println("id:" + test.getId() + " , type:" + test.getType());
 			}
 		} else {
 			System.err.println(" tests is null. ");