首页 / 更多教程 / nutz 自定义sql的使用
nutz 自定义sql的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了nutz 自定义sql的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2588字,纯文字阅读大概需要4分钟。
内容图文
![nutz 自定义sql的使用](/upload/InfoBanner/zyjiaocheng/472/69d6ce2440db44dab85618d2b04b2104.jpg)
// 可以。防注入。不过太多字符串了,要拼接。 支持占位符的书写方式,比如: Sql sql = Sqls.create("DELETE FROM $table WHERE name=@name"); sql.vars().set("table","t_abc"); sql.params().set("name","Peter"); $table 将会被替换成 t_abc @name 将会被替换成 ?,用来创建 PreparedStatement
// 这种方法不错,代码显得好看点,而且,方便CV操作 用户可以将所有的 SQL 语句存放在一个或者多个文件中,语句的间隔可以通过注释,比如: /* delete.data */ DELETE FROM $table WHERE name LIKE @name /* update.data */ UPDATE FROM $table SET name=@name WHERE id=@id 在你的 Java 代码中: Sql sql = dao.sqls().create("delete.data"); 你可以为你的 SQL 任意定制回调,后面会有详细讲解
根据nutz的文档,最终主要采用将sql语句放置在多个文件中来管理的方法比较容易管理代码。
使用方法如下,初始化时,让dao载入.sqls文件。有两种方法。
第一种,构造时加载。路径你也可以用文件夹,这样会加载文件夹下所有.sqls文件
Dao dao = new NutDao(datasource,new FileSqlManager("demo/sqls/all.sqls")); System.out.println(dao.sqls().count());
或者在dao.js写好,用ioc加载
var ioc = { conf : { ... }, dataSource : { ... }, sqlSource:{ type:"org.nutz.dao.impl.FileSqlManager", args:["sql"] }, dao : { type : "org.nutz.dao.impl.NutDao", args : [{refer:"dataSource"},{refer:"sqlSource"}] } };
第二种,在构造后加载
Dao dao = new NutDao(datasource); ((NutDao)dao).setSqlManager(new FileSqlManager("demo/sqls/all.sqls")); System.out.println(dao.sqls().count());
PS:.sqls 文件必须是 UTF-8编码
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
好了,前期工作完成。该弄弄怎么使用了。首先,写好你自己的.sqls文件。
1.通过 dao.sqls().create(""); 加载对应的sql语句。
2.替换相应的占位符。
3.设置回调函数,回调函数中,通过 invoke 函数你进行后续操作。
4.执行dao.execute(sql)。这里是同步,会等待结束,直至失败,或者回调函数执行完毕才会继续执行。
@At @Ok("jsp:jsp.test.getMenuDi") public void getMenuByIoc(HttpSession session) { Sql sql = dao.sqls().create("getMenu.data"); sql.params().set("id", 1); sql.setCallback(new SqlCallback() { public Object invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException { ..... while (rs.next()){ .... m.setName(rs.getString("menu_name")); .... } System.out.println("callback end"); return myMenu; } }); dao.execute(sql); System.out.println("execute end"); MyMenu myMenu = sql.getObject(MyMenu.class); ... }
然后,就可以开始继续写代码了。
nutz 自定义sql的使用
标签:
本文系统来源:http://www.cnblogs.com/cycxtz/p/5982517.html
内容总结
以上是互联网集市为您收集整理的nutz 自定义sql的使用全部内容,希望文章能够帮你解决nutz 自定义sql的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。