Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql

Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql

在自己的dao类中继承SqlSessionDaoSupport类

/**
 * @author herman.xiong
 * @since 0.1
 * @param <T>实体类
 * @param <PK>主键类,必须实现Serializable接口
 */
package com.dao; 

import java.io.Serializable;

import org.apache.log4j.Logger;
import org.mybatis.spring.support.SqlSessionDaoSupport;

import java.util.ArrayList;
import java.util.List;

public class TestSqlDao extends SqlSessionDaoSupport{
	//日志管理器
	private static final Logger log=Logger.getLogger(TestSqlDao.class);
	//测试自己拼写的sql
	public List<Integer> testStringSql(String sql){
		List<Integer> list=new ArrayList<Integer>();
		Connection con=this.getSqlSession().getConnection();
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			ps = con.prepareStatement(sql);
			rs=ps.executeQuery();
			while (rs.next()) {
				list.add(rs.getInt("id"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if(rs!=null){
				try {
					rs.close();
				} catch (Exception e) {
					log.error("关闭结果集ResultSet异常!"+e.getMessage(), e);
				}
			}
			if(ps!=null){
				try {
					ps.close();
				} catch (Exception e) {
					log.error("预编译SQL语句对象PreparedStatement关闭异常!"+e.getMessage(), e);
				}
			}
			if(con!=null){
				try {
					con.close();
				} catch (Exception e) {
					log.error("关闭连接对象Connection异常!"+e.getMessage(), e);
				}
			}
		}
		return list;
	}

	public static void main(String[] args) {
		TestSqlDao tsd=new TestSqlDao();
		List<Integer> list=tsd.testStringSql("select id from table");
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
	}
}

一下是本人自己测试的输出结果截图:

时间: 2025-01-20 14:15:54

Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql的相关文章

struts2参数传递问题。在页面链接中使用?page=1可以传递成功,但是在配置文件中不行

问题描述 struts2参数传递问题.在页面链接中使用?page=1可以传递成功,但是在配置文件中不行 在页面链接中传递参数可以成功调用action的setPage方法:在struts的配置文件中使用redirectAction:employee_list.action?page=1page参数传递不成功,测试是没有调用action中的setPage方法.但是可以重定向到指定的action,就是参数传递不成功,为什么? 解决方案 页面链接中的代码:可以成功 struts配置文件中的代码/WEB-

理解C#中的string类型

目的 本文的目的在于揭示和DOTNET及C#相关的一些常见的和不常见的问题.在这些问题中我的第一篇文章和string数据类型有关,string数据类型是一种引用类型,但是当和其他引用类型比较的时候,很多开发人员可能并不能完全理解它的行为. 问题 对于常见的引用类型,当改变一个对象别名的值时,这种变化也同样会在一个实际的对象中表现出来;反之亦然.但是对于string类型,似乎不是这样的. 解释 引用类型 假设我们有一个类MyType,这个类有一个属性Name;我们还有一个类AppType,这个类提

浅谈C++中的string 类型占几个字节_C 语言

在C语言中我们操作字符串肯定用到的是指针或者数组,这样相对来说对字符串的处理还是比较麻烦的,好在C++中提供了 string 类型的支持,让我们在处理字符串时方便了许多. 首先,我写了一段测试代码,如下所示: 复制代码 代码如下: #include <iostream>using namespace std; int main(void){ string str_test1; string str_test2 = "Hello World";  int value1, va

PHP中的string类型使用说明_php技巧

注意:PHP没有对string的长度做限制.唯一限制的就是PHP在计算机中的可用内存(php.ini文件中的memory_limit变量的值) 限定字符串范围的方法有4中: 1.单引号: 2.双引号: 3.原型文档语法: 4.nowdoc syntax(PHP5.3.0开始) 1.如果字符串使用单引号"'"包裹,字符串中如果出现单引号","和反斜杠"\"符号,需要进行转义. 复制代码 代码如下: // Outputs: Arnold once s

二进制-怎样读写C++中string类型的数据

问题描述 怎样读写C++中string类型的数据 问题是,怎样将C++中string类型的数据写入文件,并正确读出 我使用write函数,string类型的数据写入文件(二进制格式),但使用read缺读不出来,问题何在 解决方案 用char *读t和写,有需要再转string 解决方案二: string转化成char * 用c_str()函数 解决方案三: 直接用fstream流操作. 解决方案四: http://blog.csdn.net/hong__fang/article/details/

简介C++中的String类

C++中针对C语言中处理字符串的难题,在标准库中设计了string类,因此现在编程中涉及到字符串的处理,就可以直接使用string类了. 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要.我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?).我们尽可以把它看成是C++的基本数据类型. 首先,为了在我们的程序

spring hibernate jpa 用findAll的时候,取出的所有的string类型的字段都是空字符串

问题描述 spring hibernate jpa 用findAll的时候,取出的所有的string类型的字段都是空字符串 但数据库中是有值的,int值可以选出{""id"":18187no"":""""parent_id"":11654name"":""""route"":"""

string-数据库number类型java String类型可以接吗?

问题描述 数据库number类型java String类型可以接吗? 数据库number类型java String类型可以接吗? 数据库number类型java String类型可以接吗? 数据库number类型java String类型可以接吗? 解决方案 可以接 不过得转格式类型才能保证编译不报错 解决方案二: 可以 接受语句:示例(需要将接受的数据进行转换) int age = Integer.parseInt(rs.getString("Age"));//整型 对于String

深入理解Java中的字符串类型_java

1.Java内置对字符串的支持: 所谓的内置支持,即不用像C语言通过char指针实现字符串类型,并且Java的字符串编码是符合Unicode编码标准,这也意味着不用像C++那样通过使用string和wstring类实现与C语言兼容和Unicode标准.Java内部通过String类实现对字符串类型的支持.这意味着:我们可以直接对字符串常量调用和String对象同样的方法: //可以再"abc"上直接调用String对象的所有方法 int length="abc".l