`
wangzi6hao
  • 浏览: 211858 次
  • 性别: Icon_minigender_1
  • 来自: sdf
社区版块
存档分类
最新评论

Spring updateByNamedParam方法使用 Spring保存数据返回id SqlUpdate类使用。

    博客分类:
  • SSH
阅读更多

前天写了一篇文章也是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进行数据访问

    本篇将详细阐述如何使用Spring进行数据访问,涵盖多种数据访问方式,包括JDBC、ORM(对象关系映射)框架如Hibernate和MyBatis,以及Spring Data JPA等。 首先,Spring JDBC(Java Database Connectivity)模块提供...

    Spring Data MongoDB : Update document

    以上两种方法都可以实现文档的更新,但需要注意的是,直接使用`update`方法更高效,因为它不会加载整个文档到内存,而是直接在数据库级别执行更新操作。 在实际开发中,根据具体需求选择合适的方法。如果需要频繁...

    8. 使用JPA保存数据【从零开始学Spring Boot】

    在本篇【从零开始学Spring Boot】系列中,我们将探讨如何使用Java Persistence API (JPA) 来保存数据。JPA是Java平台上的一个标准,它为对象关系映射(ORM)提供了一种规范,使得开发人员可以使用Java对象来操作数据库...

    springboot多数据源整合sqlserver

    本项目是关于如何在Spring Boot环境中整合三个数据源,其中两个是MySQL数据库,另一个是SQL Server数据库。 首先,我们需要了解Spring Boot的自动配置特性。Spring Boot通过`@EnableAutoConfiguration`注解自动配置...

    mybatis+spring实现动态切换数据源

    2. **使用AbstractRoutingDataSource**:Spring提供了一个抽象类`AbstractRoutingDataSource`,它可以基于某种条件(如线程绑定的变量)动态决定使用哪个数据源。我们需要创建一个自定义的DataSource,继承自`...

    SQL注入原理以及Spring Boot如何防止SQL注入(含详细示例代码)

    1. 使用JdbcTemplate:JdbcTemplate提供了一种安全的方式来执行SQL查询,通过预编译的SQL语句和PreparedStatementCreator工厂类,将用户输入作为参数,而非直接拼接。例如,创建一个UserRepository接口,其中定义了...

    Springboot集成spring-data-jpa增删查改使用ajax数据交互

    本教程将详细介绍如何在Spring Boot项目中集成Spring Data JPA,实现CRUD(创建、读取、更新、删除)操作,并通过Ajax进行前后端数据交互。 首先,我们需要在Spring Boot项目中引入Spring Data JPA依赖。在`pom.xml...

    spring获取weblogic jndi数据源的两种方式

    在Spring配置文件中,可以通过`org.springframework.jndi.JndiObjectFactoryBean`类来定义一个数据源。例如: ```xml <bean id="sysDB" class="org.springframework.jndi.JndiObjectFactoryBean"> <value>hzsh_...

    spring多数据源的处理_mybatis实现跨库查询

    为了实现多数据源处理,我们需要定义一个动态数据源类,继承 AbstractRoutingDataSource,并实现方法 determineCurrentLookupKey,该方法返回一个 Object,一般是返回字符串。然后,我们需要建立一个获得和设置上...

    springboot多数据源配置(sqlserver,mysql)

    在Spring Boot应用中,多数据源配置是一项关键的技术,它允许我们连接并操作多个数据库,例如MySQL和SQL Server。在本场景中,我们将探讨如何在Spring Boot中设置和管理这样的多数据源配置。 首先,我们需要了解`...

    SSM(Spring+SpringMVC+MyBatis)多数据源配置框架

    2. **动态数据源**:Spring的AbstractRoutingDataSource类允许根据特定条件动态选择数据源。通过设置当前数据源键,可以在运行时决定使用哪个数据源。 3. **事务管理**:在多数据源环境中,事务管理需要特别注意。...

    Spring Boot多数据源(JdbcTemplate)配置与使用

    在Spring Boot应用中,我们经常需要处理来自多个数据源的数据,比如在开发微服务架构时,每个服务可能对应一个特定的数据源。`JdbcTemplate`是Spring框架提供的一个用于简化数据库操作的工具,它使得数据库访问更为...

    SpringJdbcTemplate封装工具类

    例如,大量数据的批量插入可能更适合使用JdbcTemplate的`batchUpdate()`方法,或者直接使用JDBC的PreparedStatement来提高效率。 9. **最佳实践** - 保持SQL语句简洁,避免在业务代码中混杂复杂的SQL。 - 避免...

    spring integration同步数据库数据

    在这段配置中,`jdbcInputChannel`是消息通道,`dataSource`是数据源引用,`query`定义了查询新数据的SQL语句,`update`则是更新数据库状态的SQL语句,以防止重复处理相同的记录。`poller`元素设置了定时轮询的频率...

    Spring JdbcTemplate 常用方法整理

    本文将深入探讨Spring JdbcTemplate的常用方法,并结合提供的`JsonBean.java`和`JdbcUtils.java`文件,来理解其在实际应用中的使用。 首先,JdbcTemplate的核心功能在于它提供了一系列的方法来执行SQL语句,包括...

    spring_in_action-sixth-edition.pdf

    Spring 实战包括使用 Spring Boot 构建 Web 应用程序、使用 Spring Data 构建数据访问层、使用 Spring Security 构建安全应用程序等。 10. Spring 生命周期 Spring 生命周期是指 Spring 应用程序从启动到关闭的...

    spring hibernate整合的底层数据操作方法

    我们可以定义一个接口,如`UserDao`,包含增删改查等通用方法,然后使用Spring的`@Repository`注解标记其实现类,这样Spring会自动管理事务。 二、底层数据操作方法 1. 增加(Insert):在Hibernate中,我们可以...

    springmvc+spring线程池处理http并发请求数据同步控制问题

    3. 使用@Async注解可以标记方法为异步执行,Spring会自动使用配置的线程池来执行该方法,从而提高系统并行处理能力。 三、数据同步控制问题 1. 在并发环境下,共享数据的访问可能导致数据不一致,需要采取同步机制...

    SpringBatch+Spring+Mybatis+MySql (spring batch 使用jar)

    Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...

    SpringJDBC.rar_jdbc spring_spring jd_spring jdbc_spring使用JDBC进行数

    4. **调用JdbcTemplate方法**:使用JdbcTemplate提供的execute、query、update等方法执行SQL,它们会自动处理结果集、关闭连接等细节。 5. **处理结果**:对于查询操作,JdbcTemplate会返回一个ResultSet,可以通过...

Global site tag (gtag.js) - Google Analytics