Mars-java 发布 2.1.7 版本
此次更新如下:
- 优化了代码结构,性能更高效
- mars-jdbc升级,单表操作不需要写sql,不需要用配置或者注解映射,直接一句注解搞定
- JdbcTemplete优化升级,支持分页查询,sql参数使用占位符,避免了字符串拼接带来的sql注入风险
- mars-cloud 为了配合mars-jdbc的升级,所以发行了一个版本
Mars-jdbc用法
dao 建议用抽象类 的形式创建,这样单表操作可以用抽象方法,多表操作可以自己写sql。
加上MarsDao注解,如下图所示:
@MarsDao("testDao") public abstract class TestDao { }
单表操作
根据主键查询一条数据
@MarsGet(tableName = "userinfo",primaryKey = "id") public abstract Map<String,Object> selectById(int id);
如上面的示例所示,在抽象方法上加上MarsGet注解即可
tableName:要从哪张表里的查询
primarkey:主键字段名
方法的参数:要查主键是什么的数据就传什么
根据主键更新数据
@MarsUpdate(tableName = "userinfo",operType = OperType.UPDATE,primaryKey = "id") public abstract int update(DemoEntity demoEntity);
如上面的示例所示,在抽象方法上加上MarsUpdate注解即可
tableName:要更新哪张表
primarkey:主键字段名
operType:设置操作方式为update
方法的参数:任意自定义实体对象或者map,对象的字段要跟数据库表的字段名一致
插入一条数据
@MarsUpdate(tableName = "userinfo",operType = OperType.INSERT) public abstract int insert(DemoEntity demoEntity);
如上面的示例所示,在抽象方法上加上MarsUpdate注解即可
tableName:要插入哪张表
operType:设置操作方式为insert
方法的参数:任意自定义实体对象或者map,对象的字段要跟数据库表的字段名一致
根据主键删除一条数据
@MarsUpdate(tableName = "userinfo",operType = OperType.DELETE,primaryKey = "id") public abstract int delete(int id);
如上面的示例所示,在抽象方法上加上MarsUpdate注解即可
tableName:要从哪张表删除
primarkey:主键字段名
operType:设置操作方式为delete
方法的参数:要删除主键是什么值的数据就传什么
多表操作
sql语句固定
@MarsSelect(sql = "select * from userinfo where name = #{name} and age = ${age}") public abstract List<Map<String,Object>> selectList(DemoEntity demoEntity);
如上面的示例所示,在抽象方法上加上MarsSelect注解即可
sql:sql语句
方法的参数:任意自定义实体对象或者map,对象的字段要跟sql中的占位符一致(不包含#{})
sql语句不固定(需要根据条件判断,来动态的拼接语句)
这种情况需要使用JdbcTemplete:
在代码里去拼sql,sql拼好以后用下面所示的方式执行
sql中的参数一样用#{}或者${}来占位
JdbcTemplete.get("数据源名称,不传自动使用默认数据源").selectList(sql,DemoEntity.class); JdbcTemplete.get("数据源名称,不传自动使用默认数据源").update(sql,demoEntity);
JdbcTemplete 这里就不多说了,实际使用的时候,开发环境的自动补全功能会自动弹出里面的方法,选择适合自己的就行了
分页查询
使用JdbcTemplete里的selectPageList
public PageModel<DemoEntity> findPage(PageParamModel pageParamModel) throws Exception { String sql = "select * from userinfo where name like #{name}"; return JdbcTemplete.get().selectPageList(sql,pageParamModel,DemoEntity.class); }
参数必须传PageParamModel,返回类型也必须是PageModel
占位符解释
#{name}: 这种占位符会被替换成 ? 没有sql注入的风险 ${name}: 这种占位符是字符串拼接,有sql注入的风险
选择数据源
dao层的方法上 可以用 DataSource(name=”数据源name”) 注解 去指定要用的数据源,如果只有一个数据源,则不需要指定
具体可看官网:http://mars-framework.com
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hutool 4.6.7 发布,没能逃过真香定律
Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。它最初是作者项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。 ----------------------------------------------------------------------------------- 此次借助IDEA的智能提示修复了很多不规范的代码,README.md也修改了对IDEA的态度: Hutool用户直呼作者啪啪打脸。 哈哈,不得不说IDEA的代码提示帮助找到了很多潜在bug,推荐大家学习。 ----------------------------------------------------------------------------------- 新特性 【core】 ImgUtil.rotate支持负数(issue#543@Github) 【http】 body方法传null跳过而非报错(issue#I12AP2@...
- 下一篇
FEBS Cloud v1.1 发布,整合 Spring Cloud Alibaba
FEBS Cloud是一款使用Spring Cloud Greenwich.SR3、Spring Cloud OAuth2 & Spring Cloud Alibaba构建的低耦合权限管理系统,前端(FEBS Cloud Web)采用vue element admin构建。FEBS意指:Fast,Easy use,Beautiful和Safe。该系统具有如下特点: 前后端分离架构,客户端和服务端纯Token交互; 认证服务器与资源服务器分离,方便接入自己的微服务系统; 微服务防护,客户端请求资源只能通过微服务网关获取; 集成Spring Boot Admin,多维度监控微服务; 集成Spring Cloud Alibaba Nacos服务治理和集中配置管理; 网关集成Sentinel流控; 集成Zipkin,方便跟踪Feign调用链; 集成ELK,集中管理日志,便于问题分析; 微服务Docker化,使用Docker Compose一键部署; 提供详细的使用文档和搭建教程; 前后端请求参数校验,Excel导入导出,代码生成等。 文档与教程 项目文档及手摸手搭建教程地址:https...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7设置SWAP分区,小内存服务器的救世主