nutz学习:本文来自网络,非原创
1,fetch只能在有主键的时候用,没有主键无法保证其唯一性。只能用query查询
2,@Name只是用于字符串做主键
3,@Id数值类型做主键(如果设置了这个属性则,在做插入的时候该字段不会传值。可以设置auto=false)
4,HTML <a> 标签的 rel 属性
<a> 标签的 rel 属性用于指定当前文档与被链接文档的关系。
用于 <a> 标签的可选属性 rel 和 rev 分别表示源文档与目标文档之间正式的关系和方 向。rel 属性指定从源文档到目标文档的关系,
而 rev 属性则指定从目标文档到源文档 的关系。这两种属性可以在 <a> 标签中同时使用。
5,Pager 对象有如下几个注意事项:
如果 pager 被传入了 null,则不分页
生成 Pager 对象的时候需要传入 “当前页数” 和 “页大小”
Pager 虽然有 getRecordCount() 和 getPageCount() 方法,但是它不会自动被设值 -- 因为考虑到效率
通过 Pager.setRecordCount() 可以为 Pager 设置结果集的总数,Pager 会通过
getPageCount() 返回总页数
6,@Prev与@Next有点像数据库中trigger的意思?
@Prev 使用变量例子
@Prev(@SQL("SELECT pet_name FROM t_user_pet WHERE
ownm='$ownerName'"))
private String name;
在执行 dao.inert 操作时, Nutz.Dao 会预先执行这段 SQL, 执行之前,变量 $ownerName 会被对象本身的 ownerName
字段的值替换,如果对象本身的 ownerName 字 段的值恰好是"zzh",那么执行的 SQL 会变成:
SELECT pet_name FROM m_user_pet WHERE ownm='zzh';
SQL 执行的结果会复制给对象的 name 字段。
使用参数
@Prev(@SQL("SELECT pet_name FROM t_user_pet WHERE
ownm=@ownerName"))
private String name;
在执行 dao.inert 操作时, Nutz.Dao 会预先执行这段 SQL, 执行之前,参数 @ownerName会被 '?' 替换,并根据这段
SQL 生成 PreparedStatement 对象:
然后,根据对象本身的 ownerName 字段的值,为这个 PreparedStatement 设置参数, 执行
之后,这段 SQL 执行的结果会复制给对象的 name 字段
7,Nutz.Dao 支持这些数据库:
public enum DB {
H2, DB2, PSQL, ORACLE, SQLSERVER, MYSQL, OTHER
}
8,在 POJO 对象上使用视图
通过 @View, Nutz.Dao 知道了当查询数据时候,应该从哪里获取数据
通过 @Readonly 注解 Nutz.Dao 知道,当修改或者删除数据的时候,那些字段应该忽略//?为啥?删除数据不应该删除的是记录吗?为什么
删除数据还要把一些字段给忽略
9,动态表名?
当数据量比较大的时候,为了提高数据库操作的效率,尤其是查询的效率,其中一种解决方案就是将数据表拆分。拆分的数据表,结构完全
一致,只不过是表的名字,按照某种规律 ,而成为一组。
动态表名赋值规则
当传入参数为数字或字符串
所有的动态表名变量将被其替换
当传入参数为 Map
按照动态表名变量的名称在 Map 中查找值,并进行替换
大小写敏感
未找到的变量将被空串替换
当传入参数为 任意Java对象(POJO)
按照动态表名变量名称在对象中查找对应字段的值,并进行替换
大小写敏感
未找到的变量将被空串替换
当传入参数为null
所有变量将被空串替换
10,清除
对于一对一映射来说其实清除和删除是等价的操作,对于一对多和多对多映射来说,就又区别了,因为清除只会执行一条 SQL 删除一批,而
且删除会逐个调用 dao.delete 来删除对 象
11,issue一次性插入一对多关系有啥利弊?有啥需要说要一次插入。
一对多插入顺序,首先插入主对象,以便用新的主键值更新映射对象的映射字段(插入主对象后查找主对象的最大值(为啥是最大值如果是
别的类型如何获取最大值),然后把最大
值以外键插入。
12,dao使用
dao.exec 可以直接为你提供Connection对象
dao.run
13,自定义 SQL
issue1,自字义SQL执行效率相对dao()封装方法如何?有什么风险(SQL注入等)
Sql 的逃逸字符:输入 "@@" 表示一个 '@';输入 "$$" 表示一个 '$'
14,事务的关键就是原子的界定
事务最核心的是原子的界定,在 Nutz.Dao中,界定原子的方法出奇的简单,借助匿名类,你可以随时将一段代码用你的原子实现包裹住。而
Trans.exec() 方法接受数目可变的原子 ,每个原子都是事务性的。
15,正则表达式
issue1:正则表达式的作用,是不是设置了正则表达式的字段做操作,其他的直接忽略。如果是这样再设置别的字段岂不是多此一举。
分享到:
相关推荐
NULL 博文链接:https://meng-sicheng.iteye.com/blog/1869436
NULL 博文链接:https://meng-sicheng.iteye.com/blog/1869888
NULL 博文链接:https://meng-sicheng.iteye.com/blog/1876747
关于nutz的简单使用,有兴趣的看看哈!!!!
nutz特点: 轻 -- 当前最新版,整个 jar 文件共 910kB -- 针对 JDBC 的薄封装,无缓存 全 -- 提供了 Dao (ORM, SQL 管理), Ioc, Aop, Mvc, Json解析 等必要功能 活 -- 各个部分可以独立使用,比如在 Spring 里采用 ...
nutz框架使用手册,从零到有深入学习nutz平台开发
提供一条更低的且平滑的学习曲线 我尽量让接口的设计简洁且直接 通过用户手册,你可以掌握 Nutz 全部的用法 我会尽可能的注意任何渠道给我的反馈,任何有助于简化 Nutz 使用的想法,都会被我认真评估
希望可以帮到大家,完成一个简单的NUTZ的学习。
SpringMVC+Nutz框架介绍(技术学习).docxSpringMVC+Nutz框架介绍(技术学习).docx
每次项目验收写文档是一个很凌乱的事情,作为一个程序员,应该是用技术解决问题。当然有很多工具也可以实现。比如PDman就可以导出word或者pdf文档。 这个案例主要是学习springboot...以及使用nutz poi第三方工具的使用
该框架是一个开源项目,可以免费下载, 集成的DAO,MVC,Spring 等框架的功能 不需要其他jar包 学习容易,好用
基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,适合用作毕业设计、课程设计作业等,项目均经过测试,可快速部署运行! 基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,...
java的测试项目,可以看做是java的ApiDemo,主要用于学习,也经常用来测试极光,七牛等服务器api, 实际上有什么好代码都可以加进来,直到这个工程不堪其重 目录: 目录 [java高级] [Ayo库] 集合 ConcurrentMap原理...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此...