使用dapper时动态拼接查询sql有什么好的方法吗

使用dapper时动态拼接查询sql有什么好的方法吗,第1张

我记得dapper 有个DapperSqlBuilder的功能,就是动态拼接查询sql的

IBATISNET 性能还不错,接近ADONET

不用写一大堆数据库连接,打开关闭重复代码

就是 IBATISNET更新慢

从来没用过EF

declare @SQL nvarchar(1024)

set @SQL='DECLARE @N1 INT  DECLARE @N2 INT  SELECT @N1=1 SELECT @N2=2  SELECT @N1  num1,@N2  num2'    ----获取@SQL

EXECUTE sp_sqlexec @SQL  --执行获取的SQL语句

正常情况下,你可以使用cfquery的result属性来很明确的显示这个query *** 作的相关信息,包括执行时间,sql语句,或是cache值,columnlist的列表等等。

查看内容<cfsetname="e"<cfqueryname="getIt"datasource="cfartgallery"result="result"

selectartistidfromartists

wherelastnamelike<cfqueryparamcfsqltype="cf_sql_varchar"value="%#name#%"maxlength="255"</cfquery<cfdumpvarvar="#getIt#"<cfdumpvarvar="#result#"<cfdumpvarvar="#resultsql#"

<cfsetname="e"

<cfqueryname="getIt"datasource="cfartgallery"result="result"

selectartistidfromartists

wherelastnamelike<cfqueryparamcfsqltype="cf_sql_varchar"value="%#name#%"maxlength="255"

</cfquery

<cfdumpvar="#getIt#"

我记得dapper 有个DapperSqlBuilder的功能,就是动态拼接查询sql的

BATISNET 性能还不错,接近ADONET

不用写一大堆数据库连接,打开关闭重复代码

不同数据库获取方式也是不一样的

Oracle:

系统时间比较熟悉 是select sysdate from dual时间类型获取;

select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual;以字符串形式获取

SQL Server:

使用GETDATE()

SQL Server拥有非常强大的日期函数:

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2008 10:57AM

MYSQL

select now();

*** 作。具体的步骤如下:

获取 MyBatis 中的 MappedStatement 对象。可以通过 SqlSession 的 getConfiguration() 方法获取 Configuration 对象,然后再通过 Configuration 对象的 getMappedStatement() 方法获取 MappedStatement 对象。

从 MappedStatement 对象中获取 BoundSql 对象,即 SQL 语句绑定的参数对象。

从 BoundSql 对象中获取 SQL 语句字符串。可以通过调用 getSql() 方法获取 SQL 语句字符串。

对 SQL 语句进行相应的 *** 作。例如,可以对 SQL 语句进行修改、输出等 *** 作。

Java 通过反射获取 MyBatis 中的 SQL 语句的代码示例:

SqlSession sqlSession = sqlSessionFactoryopenSession();

try {

// 获取 MappedStatement 对象

MappedStatement mappedStatement = sqlSessiongetConfiguration()getMappedStatement("comexamplemapperselectUser");

// 获取 BoundSql 对象

BoundSql boundSql = mappedStatementgetBoundSql(paramObject);

// 获取 SQL 语句字符串

String sql = boundSqlgetSql();

// 对 SQL 语句进行相应的 *** 作

//

} finally {

sqlSessionclose();

}

需要注意的是,在使用反射获取 SQL 语句时,要注意保护用户隐私和安全,以免发生 SQL 注入等问题。

在执行一条SQL语句之后,你可能想要保存它。这样你可以在以后打开并运行它或基于它来写一条新的SQL语句。要保存一条SQL语句,你可以使用在$2-11中描述的标准窗口技术。

打开一个已保存的文件,你可以用Open命令。例如,在这一节中,文件打开对话框显示了在第三章保存的SQL语句。它们被保存在目录scriptsch03下,这个目录在你下载并安装本书的源码时创建。本节中的截屏显示了本章中打开的三个文件页签。注意这些文件的扩展名都是sql。

在你找开两个或多个SQL工作表后,你可以通过点击合适的选项卡来切换SQL语句。或者,你也可以从连接列表下边的文件列表中选择SQL语句。这样,你可以从一个SQL语句向另一个SQL语句中进行代码的剪切,复制,粘贴。当你打开一个SQL文件,SQL Developer不会为此文件中的SQL语句设置连接。结果是你必须通过连接列表为此文件中的SQL语句指定一个连接。如果你不那样做的话,当你执行SQL语句时,SQL Developer将会提示你选择一个连接。

要将一条新的SQL语句保存到文件,你可以使用Save命令。要保存一条修改过的SQL语句到它原来所在的文件,你也只需用Save命令。如果要将一条修改过的SQL语句到一个新的文件,你就需要用Save As命令。

要设置用来保存新的SQL语句的默认目录,你可以按照本书所描述的那样选择ToolsPreferences命令。但是要注意,对于已经打开的文件是无法设置默认目录的。

对于打开对话框和保存对话框,你可以通过点击图标来指定一个最近使用的目录。例如在本节中,打开对话框显示目录ch02,ch03,db-setup都是最近使用过的。因此,你可以点击其中的一个,轻而易举地将其指定为最近使用的目录。

转载仅供参考,版权属于原作者。祝你愉快,哦

最常用的 log4jproperties 来实现。

log4jproperties 内容如下:

log4jrootCategory=info, stdout , R

log4jappenderstdout=orgapachelog4jConsoleAppender

log4jappenderstdoutlayout=orgapachelog4jPatternLayout

log4jappenderstdoutlayoutConversionPattern=[QC] %p [%t] %C%M(%L) | %m%n

log4jappenderR=orgapachelog4jDailyRollingFileAppender

log4jappenderRFile=D:/my_loglog

log4jappenderRlayout=orgapachelog4jPatternLayout

log4jappenderRlayoutConversionPattern=%d-[TS] %p %t %c - %m%n

log4jloggercomibatis=debug

log4jloggercomibatiscommonjdbcSimpleDataSource=debug

log4jloggercomibatiscommonjdbcScriptRunner=debug

log4jloggercomibatissqlmapengineimplSqlMapClientDelegate=debug

log4jloggerjavasqlConnection=debug

log4jloggerjavasqlStatement=debug

log4jloggerjavasqlPreparedStatement=debug,stdout

有人在网上说不能用 slf4jjar ,这个说法应该是错误的, slf4j 只是提供了很多接口,可以供很多日志系统用,并不是具体的解决方案,我的jar 包用到

slf4j-api-158jar

slf4j-log4j12-158jar

log4j-1215jar

貌似版本比较老,但可以使用,可以参考一下。

通过这种方式mybatis 就可以在控制台打印出sql语句,并且也可以写到日志文件中去。但是还没有format sql, 我也在研究,不过目前没进展,应该mybatis 不支持吧。

以上就是关于使用dapper时动态拼接查询sql有什么好的方法吗全部的内容,包括:使用dapper时动态拼接查询sql有什么好的方法吗、SQL 动态SQL语句查询获取数据、我要如何获取到一个query执行的sql语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9433092.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存