jboot-admin:

1.数据库部分:
数据库5.7 以上不支持group by查询需在my.ini 文件中加入代码:
sql_mode =‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
没有my.ini 文件;创建my.ini文件
jfianl与数据库交互查询添加不支持having,在原查询语句上套一层子查询;

2.当返回值为类型是Record时,可以直接通过Record.字段名进行获取对应字段的值;

3.获取页面的返回值

4.向页面传递返回值
.setAttr(name, value);单个值传递后面可以追加.setAttr(name.value)
setAttrs(map);传递一个map集合带页面
页面取值:
#(value);

5.getBean 与 getModel 方法
getModel 用来接收页面表单域传递过来的 model 对象,表单域名称以”modelName.attrName”方式命名,getModel 使用的 attrName 必须与数据表字段名完全一样。getBean 方法用于支持传统 Java Bean,包括支持使用 jfnal 生成器生成了 getter、setter 方法的 Model,页面表单传参时使用与 setter 方法相一致的 attrName,而非数据表字段名。 getModel 与 getBean 区别在于前者使用数表字段名而后者使用与 setter 方法一致的属性名进行数据注入。建议优先使用 getBean 方法。
以下是一个简单的示例:
// 定义Model,在此为Blog
public class Blog extends JbootModel {

}

// 在页面表单中采用modelName.attrName形式为作为表单域的name

@RequestMapping("/blog")
public class BlogController extends JbootController {

public void save() {// 页面的modelName正好是Blog类名的首字母小写 Blog blog = getModel(Blog.class);//如果表单域的名称为 "otherName.title"可加上一个参数来获取Blog blog = getModel(Blog.class, "otherName");//如果表单域的名称为 "title" 和 "content" Blog blog = getModel(Blog.class, "");
}// 或者 也可以写如下代码,但是注意,只能写一个save方法
public void save(Blog blog) {// do your something
}

}

上面代码中,表单域采用了”blog.title”、”blog.content”作为表单域的 name 属性,”blog”是类 文件名称”Blog”的首字母变小写,”title”是 blog 数据库表的 title 字段,如果希望表单域使用任 意的 modelName ,只需要在 getModel 时多添加一个参数来指定,例如: getModel(Blog.class, ”otherName”)。

6.serviceimp事物处理

Db + Record 模式
Db 类及其配套的 Record 类,提供了在 Model 类之外更为丰富的数据库操作功能。使用Db 与 Record 类时,无需对数据库表进行映射,Record 相当于一个通用的 Model。以下为 Db +Record 模式的一些常见用法:
// 创建name属性为James,age属性为25的record对象并添加到数据库
Record user = new Record().set(“name”, “James”).set(“age”, 25);
Db.save(“user”, user);
// 删除id值为25的user表中的记录
Db.deleteById(“user”, 25);
// 查询id值为25的Record将其name属性改为James并更新到数据库
user = Db.findById(“user”, 25).set(“name”, “James”);
Db.update(“user”, user);
// 获取user的name属性
String userName = user.getStr(“name”);
// 获取user的age属性
Integer userAge = user.getInt(“age”);
// 查询所有年龄大于18岁的user
Page userPage = Db.paginate(1, 10, “select *”, “from user where
age > ?”, 18);

或者,事务操作:
boolean succeed = Db.tx(new IAtom(){
public boolean run() throws SQLException {
int count = Db.update(“update account set cash = cash - ? where
id = ?”, 100, 123);
int count2 = Db.update(“update account set cash = cash + ? where
id = ?”, 100, 456);
return count == 1 && count2 == 1;
}
});

以上两次数据库更新操作在一个事务中执行,如果执行过程中发生异常或者 run()方法返回 false,则自动回滚事务

jboot-admin学习相关推荐

  1. Ace Admin 学习笔记

    1. jqGrid  提交编辑数据,控制台报:Synchronous XMLHttpRequest on the main thread... jqGrid的选项设置async: true选项: aj ...

  2. Jboot框架excel导入导出模板下载的简单封装

    需要用到的的类 主控制器 package io.jboot.admin.controller.ImportController;import java.util.ArrayList; import j ...

  3. 编程课课程感想和建议_最佳在线编程课程

    编程课课程感想和建议 Online programming courses are getting popular these days. Udemy is the leader in providi ...

  4. 新修复h5盲盒商城砸金蛋源码(完美运行)

    搭建教程 一.测试环境: 1.linux宝塔面板 2.Nginx 1.18.0 3.MySQL 5.6.50 4.PHP-7.2 //PHP7.2安装拓展 fileinfo 删除所有禁用函数 1.创建 ...

  5. 风铃发卡网源码最新版-可商用

    源码简介 建议环境:NGINX+MYSQL5.6+PHP7.3 将源码上传到根目录并解压,将.env.example重命名为.env,修改其文件,内容为自己的数据库信息 给 storage和boots ...

  6. 2022最新H5盲盒交友系统

    2022最新H5盲盒交友系统 测试环境:Nginx+PHP7.2+Mysql5.6 删除PHP7.2的禁用函数,安装扩展sg11 网站运行目录 /public 伪静态设置为 thinkphp 数据库配 ...

  7. 图书借阅管理系统c语言程序设计,图书管理系统课程设计

    c语言图书管理系统附源码是一款由C语言编写的图书管理系统,它是由吾爱论坛网友分享提供的,对于学习C语言的朋友可以借鉴参考学习代码的编写,这也是在大学里初学C语言经常会遇到的课题,欢迎大家下载学习. 系 ...

  8. django学习之路(五)站点管理admin - django - 一直很安静 - Powered by Discuz!

    django学习之路(五)站点管理admin - django - 一直很安静 - Powered by Discuz!: "" (Via.) 转载于:https://www.cn ...

  9. Admin.NET管理系统(vue3等前后端分离)学习笔记--持续更新

    我的学习笔记 - 9iAdmin.NET 欢迎学习交流 (一)前端笔记 1.1 关于.env的设置 1.2 关于路由模式问题 1.3 关于 vue.config.ts 1.4 关于 打包(pnpm r ...

  10. Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)

    Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...

最新文章

  1. 第十六届智能车竞赛 | 单车拉力组浅析
  2. DLPack构建跨框架深度学习编译器-实现张量之间的相互转换【pytorch】
  3. dom4j解析xml实例(2)
  4. 北大青鸟广州天河中心C#学习笔记一--C#中的参数传递
  5. jenkins配置ssh免密码登陆
  6. Linux内核深入理解中断和异常(2):初步中断处理-中断加载
  7. 将unsigned char字符串以16进制的字符串显示
  8. 小鹏汽车首批量产车下线,未来将进军L4级别自动驾驶
  9. php打印出网站源码/php数据压缩代码
  10. 熊猫DataFrame groupby()函数
  11. pathseparator_Java文件分隔符,separatorChar,pathSeparator,pathSeparatorChar
  12. IBM WMB 使用方法
  13. Javascript实现简单的超级马里奥小游戏
  14. html5三国策略,HTML5新游《乱弹三国》今日首曝
  15. Linux修改文件句柄数及vm.max_map_count、stack size
  16. shardingsphere之sharding-proxy读写分离学习笔记
  17. 最全最精准的IE浏览器判断和国内套壳浏览器判断(360,QQ,搜狗,百度等)
  18. dparsf是什么_老师,我用DPARSF做Slice Timeing时老报错,请问您是什么原因呢?
  19. 过去一周区块链投融资事件回顾
  20. web前端开发远程调试工具Weinre

热门文章

  1. [译]使用MVI打造响应式APP(三):状态折叠器
  2. rt-thread通过spi连接W25Q32后无法读取ID
  3. 别忘了看,今年中秋月亮“瘦”了!网友扎心了:我还没瘦…
  4. 根键hkey_classes_root的作用
  5. 在qt实现手机通讯录系统_Qt编写自定义控件55-手机通讯录
  6. Modularity(模块性)
  7. Unity项目--LoyPoly风格的FPS Demo(附试玩地址)
  8. 逆向某停车app(原创)
  9. 关于五笔字型学习五笔难拆汉字学习总结
  10. Excel-自网站粘贴