Mars-java 发布 2.1.7 版本

栏目: 软件资讯 · 发布时间: 6年前

内容简介:此次更新如下: 优化了代码结构,性能更高效 mars-jdbc升级,单表操作不需要写sql,不需要用配置或者注解映射,直接一句注解搞定 JdbcTemplete优化升级,支持分页查询,sql参数使用占位符,避免了字符串拼接带来的...

此次更新如下:

  1. 优化了代码结构,性能更高效
  2. mars-jdbc升级,单表操作不需要写sql,不需要用配置或者注解映射,直接一句注解搞定
  3. JdbcTemplete优化升级,支持分页查询,sql参数使用占位符,避免了字符串拼接带来的 sql 注入风险
  4. 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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

马化腾自述-我的互联网思维

马化腾自述-我的互联网思维

赵黎 / 石油工业出版社 / 2014-8-1 / 35

马化腾自述:我的互联网思维》讲述了些人说移动互联网就是加了“移动”两个字,互联网十几年了,移动互联网应该是个延伸。我的感受是,移动互联网远远不只是一个延伸,甚至是一个颠覆。互联网是一个开放交融、瞬息万变的大生态,企业作为互联网生态里面的物种,需要像自然界的生物一样,各个方面都具有与生态系统汇接、和谐、共生的特性。开放和分享并不是一个宣传口号,也不是一个简单的概念。开放很多时候被看作一种姿态,但是我......一起来看看 《马化腾自述-我的互联网思维》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具