mybatis怎么把一串sql当作字符串返回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis怎么把一串sql当作字符串返回相关的知识,希望对你有一定的参考价值。

参考技术A <select id="DAO接口方法名称" parameterType="参数类型" resultType="返回结果类型">
select * from 表 where 。。。
</select>
resultType 可以是任意Object对象,如果多条数据,这这个方法返回的是List<Object?>,
如果确认是单条数据,可以直接 Object? ***(**); 。

没有封装成对象时,默认返回的是List<Map<字段名称String,列值Object>>这样的数据。
Dao接口:
List<Map<String,Object>> list(Integer id);
SQL:
<select id="list" parameterType="Integer" resultType="Map">
select * from aaa
<where>
<if test="null!=id">
id >#id
</if>
</where>
</select>
以上示例中表示查询id>某个数值的所有结果,返回类型为MAP

执行脚本后没有返回结果的吧,看ScriptRunner源码,没有提供任何返回结果的。
private void executeStatement(String command) throws SQLException, UnsupportedEncodingException
boolean hasResults = false;
Statement statement = connection.createStatement();
statement.setEscapeProcessing(escapeProcessing);
String sql = command;
if (removeCRs)
sql = sql.replaceAll("\r\n", "\n");
if (stopOnError)
hasResults = statement.execute(sql);
else
try
hasResults = statement.execute(sql);
catch (SQLException e)
String message = "Error executing: " + command + ". Cause: " + e;
printlnError(message);


printResults(statement, hasResults);
try
statement.close();
catch (Exception e)
// Ignore to workaround a bug in some connection pools



...

有结果时,最后调用了这个方法打印出来而已。
private void print(Object o)
if (logWriter != null)
logWriter.print(o);
logWriter.flush();



你可以调用
public void setLogWriter(PrintWriter logWriter)
this.logWriter = logWriter;

传入你自己的Writer。本回答被提问者和网友采纳

把一串数字按照n用逗号分隔

最近做了一个js项目,需要把数字按照每三位,就用一个逗号分隔,做完后,我就想,这个算法也可以支持用户自定义的位数,进行分隔,就是用到了RegExp这个方法来拼接字符串,使其具有动态分隔的功能。

上代码:

function numberDivid(number,n){
		var n = n || 3;//设置默认值
		var reg = new RegExp("(\\d+)"+"(\\d{"+n+"})");//字符串拼接,把n带入正则表达式
		numberString = number.toString();//把字符串转化成数组
		numberArry = numberString.split(".");//小数点前面的数字进行分隔
		number1 = numberArry[0];
		number2 = numberArry.length > 1 ? "." + numberArry1 : "";
		while(reg.test(number1)){
			number1 = number1.replace(reg,"$1" + "," + "$2"); //这里$1,$2是正则匹配到的对象
		}
		return number1 + number2;

总体看起来,代码最优的地方,就是设置了一个可以支持用户随心所欲操作的分隔位数,其他的代码就是一般性。

 

以上是关于mybatis怎么把一串sql当作字符串返回的主要内容,如果未能解决你的问题,请参考以下文章

js中如何把一串数字转换为数组

怎样把一串数字字符串的后四位换成****?

把一串数字按照n用逗号分隔

jquery中把一串字符串分割,如:123456789后者abcdefg类型的

sql 里 怎么把一列的值合并成一个字符串

oracle sql 实现查询时把一字符串按逗号分割,返回分割后的份数?