前天写了一篇文章也是Spring保存数据返回id SqlUpdate类使用的
地址:hi.baidu.com/%CD%F5%D7%D36%BA%C5/blog/item/e9458e38f63001fab211c7f2.html
但是里面的参数比较少,只有3个。
当出现了10多个参数的时候,明显用链接里的方法是不行的。因为值对应会很麻烦。
改成以下方法后,虽然代码多了,但是更明了清晰,所以插入列值较多的话,推荐大家用此方法。
public int saveMenu(MenuForm menu) throws DataAccessException {
StringBuffer sb = new StringBuffer();
sb
.append("INSERT INTO websys_adminmenu(pid,name,url,title,target,icon,iconOpen,open,`index`,description,`show`,inTime)");
sb
.append("VALUES(:pid,:name,:url,:title,:target,:icon,:iconOpen,:open,:index,:description,:show,now())");
SqlUpdate sqlUpdate = new SqlUpdate(jdbcTemplate.getDataSource(), sb
.toString());
sqlUpdate.declareParameter(new SqlParameter("pid", Types.INTEGER));
sqlUpdate.declareParameter(new SqlParameter("name", Types.VARCHAR));
sqlUpdate.declareParameter(new SqlParameter("url", Types.VARCHAR));
sqlUpdate.declareParameter(new SqlParameter("title", Types.VARCHAR));
sqlUpdate.declareParameter(new SqlParameter("target", Types.VARCHAR));
sqlUpdate.declareParameter(new SqlParameter("icon", Types.VARCHAR));
sqlUpdate.declareParameter(new SqlParameter("iconOpen", Types.VARCHAR));
sqlUpdate.declareParameter(new SqlParameter("open", Types.BIT));
sqlUpdate.declareParameter(new SqlParameter("index", Types.BIT));
sqlUpdate.declareParameter(new SqlParameter("description",
Types.VARCHAR));
sqlUpdate.declareParameter(new SqlParameter("show", Types.BIT));
sqlUpdate.setReturnGeneratedKeys(true);
sqlUpdate.compile();
KeyHolder keyHolder = new GeneratedKeyHolder();
Map paramMap = new HashMap();
paramMap.put("pid", menu.getPid());
paramMap.put("name", menu.getName().replace("'", "\'"));
paramMap.put("url", menu.getUrl().replace("'", "\'"));
paramMap.put("title", menu.getTitle().replace("'", "\'"));
paramMap.put("target", menu.getTarget().replace("'", "\'"));
paramMap.put("icon", menu.getIcon().replace("'", "\'"));
paramMap.put("iconOpen", menu.getIconOpen().replace("'", "\'"));
paramMap.put("open", menu.isOpen());
paramMap.put("index", menu.isIndex());
paramMap.put("description", menu.getDescription().replace("'", "\'"));
paramMap.put("show", menu.isShow());
int i = sqlUpdate.updateByNamedParam(paramMap, keyHolder);
if (i == 0 || null == keyHolder.getKey())// 没有保存成功返回0
return 0;
else {
return keyHolder.getKey().intValue();
}
}
分享到:
相关推荐
Spring Boot整合邮件发送并保存历史发送邮箱 项目描述 项目主要是使用 Spring Boot 发送邮件,主要的技术点有: 1、Spring Boot +mybatis的整合 2、Spring Boot项目中jsp的使用 3、Spring Boot 发送邮件...
spring数据源配置
在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息,在大数据采集项目中用到的,已经测试过了
Spring Boot使用spring-data-jpa配置Mysql多数据源,可用版本
为了实现多数据源处理,我们需要定义一个动态数据源类,继承 AbstractRoutingDataSource,并实现方法 determineCurrentLookupKey,该方法返回一个 Object,一般是返回字符串。然后,我们需要建立一个获得和设置上...
4.本地SQL查询 5.Specifications动态查询 第五章 SpringData JPA实现多表操作 1.多表关系分析 2.案例表间关系 3.一对一关系 4.一对多关系 5.多对多关系 第六章 SpringData Redis 1.SpringData Redis简介 2.Redis环境...
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...
PropertyEditorRegistrySupport 是 Spring MVC 框架中负责管理 PropertyEditor 的核心类,通过它可以注册不同的 PropertyEditor,从而实现不同的数据类型的绑定。 在 Spring MVC 中,默认情况下支持多种数据类型的...
使用SpringAop使用Oracle数据权限控制
Spring获取数据源代码,简单使用Spring数据源。Spring获取数据源代码,简单使用Spring数据源。
一、适合人群 1、具备一定Java编程基础,初级开发者 2、对springboot,mybatis,mysql有基本认识 3、对spring aop认识模糊的,不清楚如何实现Java 自定义注解的 ...4、spring boot,mybatis,druid,spring aop的使用
Spring-MVC处理XSS、SQL注入攻击的方法总结
该工具类使用于spring boot 开发,返回值为md5加密后的字符串,参数为字符串,一般用于加密密码。为了防止MD5加密的密码能被反译回明文。所以建议传入的密码字符串必须由数字字母和特殊字符组成。本人上传的表单验证...
如果有sessionId,就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId到cookie,cookie的maxAge设置为-1,...
使用注解配置实现Spring动态数据源切换,实现原理 1、自定义动态数据源类DynamicDataSource: 实现spring类AbstractRoutingDataSource的方法determineCurrentLookupKey 2、自定义Spring AOP类DataSourceAspect 3、...
使用Spring进行数据访问,内有各种方式访问的说明。
skip随着数据量上去,分页性能极具下降,不推荐。这里使用spring-data-mongo实现的分页,并且实现了mongodb自增id(监听器方式)、也集成了轻量级插件MongodbPlugin,有需要的可以下载看看哦~
Spring 框架 JdbcTemplate 类中查询方法介绍 JdbcTemplate 是 Spring 框架中 org.springframework.jdbc.core 包提供的 JDBC 模板类,它是核心类,其他模板类都是基于它封装完成的。JdbcTemplate 类主要提供四类方法...
11.6.2 使用SqlUpdate更新数据 11.6.3 使用StoredProcedure执行存储过程 11.6.4 SqlFunction类 11.7 小结 第12章 整合其他ORM框架 12.1 Spring整合ORM技术 12.2 在Spring中使用Hibernate 12.2.1 配置SessionFactory ...
1.了解Spring 2.了解NoSQL和文档数据库 3.要求 4.其他帮助资源 4.1。支持 4.1.1。社区论坛 4.1.2。专业支持 4.2。发展之后 5.新&值得注意的 5.1。Spring Data MongoDB 2.1中的新特性 5.2。Spring Data MongoDB 2.0...