基于spring的NamedParameterJdbcTemplate操作数据库

  1. 首先在 resources 文件夹下添加数据库配置文件jdbc.properties 配置常用的数据库信息

     consult.jdbc.driverClassName=com.mysql.jdbc.Driver
    consult.jdbc.url=jdbc:mysql://xxxxxxxx:3307/consult_summer?useUnicode=true&characterEncoding=utf-8&tinyInt1isBit=false
    consult.jdbc.username=root
    consult.jdbc.password=123456
  2. 将配置文件添加到集中加载的配置文件中,即在applicationContext.xml文件中添加如下内容
     <!-- 加载资源文件,所有的资源文件都集中加载,不要分散到其他spring配置文件中,否则会找不到 -->
    <bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="locations">
    <list>
    <value>classpath:jdbc.properties</value>
    </list>
    </property>
    </bean>
  3. 然后在 applicationContext.xml 文件中增加如下内容,用来对NamedParameterJdbcTemplate的bean 的引入
     <bean id="consultDataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${consult.jdbc.driverClassName}" />
    <property name="url" value="${consult.jdbc.url}" />
    <property name="username" value="${consult.jdbc.username}" />
    <property name="password" value="${consult.jdbc.password}" />
    </bean> <bean id="consultTemplate"
    class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
    <constructor-arg ref="consultDataSource" />
    </bean>
  4. 上面配置完成,下面开始写一个测试类Testdemo来操作数据库(以查询为例)
     import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import javax.annotation.Resource;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set; @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations="classpath:applicationContext.xml") public class Testdemo { private static final Log log = LogFactory.getLog(TestJdbc.class); // 引入注解
    @Resource
    protected NamedParameterJdbcTemplate consultTemplate;
    @Test
    public void test() throws Exception{ StringBuffer sql = new StringBuffer("SELECT * FROM " + "order_info_ext_96"
    + " WHERE 1=1 ");
    StringBuffer sqlToLog = new StringBuffer(sql);
    Map<String,Object> para=new HashMap<String, Object>();
    para.put("order_info_id","tm2zd0ww21190111030136219");
    Set<String> columnNames = para.keySet();
    for (String columnName : columnNames) {
    sql.append(" AND " + columnName + "=:" + columnName);
    sqlToLog.append(" AND " + columnName + "='"
    + para.get(columnName) + "'");
    }
    List<Map<String, Object>> select_result=consultTemplate.queryForList(sql.toString(),para);
    log.info(select_result); //打印查询结果 }
    }
  5. 运行即可查看结果,运行完成即可将方法改成参数式的,以供调用

      

spring框架学习之--数据库操作增删改查的更多相关文章

  1. Yii数据库操作增删改查-[增加\查询\更新\删除 AR模式]

    在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出.灰常感谢!!! 一. ...

  2. Django数据库操作(增删改查)

    Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...

  3. Android下数据库操作——增删改查

    Android下数据库第一种方式增删改查     1.创建一个帮助类的对象,调用getReadableDatabase方法,返回一个SqliteDatebase对象     2.使用SqliteDat ...

  4. SpringBoot 数据库操作 增删改查

    1.pom添加依赖 <!--数据库相关配置--> <dependency> <groupId>org.springframework.boot</groupI ...

  5. Android学习---SQLite数据库的增删改查和事务(transaction)调用

    上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...

  6. Yii2.0数据库操作增删改查详解

    1.简单查询: one(): 根据查询结果返回查询的第一条记录. all(): 根据查询结果返回所有记录. count(): 返回记录的数量. sum(): 返回指定列的总数. average():  ...

  7. django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model代码: class Person(models.Model); name = models.CharField('作者姓名' ...

  8. 转: django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    原文链接:http://blog.csdn.net/u010271717/article/details/22044415 一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model ...

  9. 使用JDBC连接MySQL数据库操作增删改查

    目录 1.首先这个Myeclipse的包名以及一些实现的类(这样子写是我的习惯) 2.接下来我们创建数据库(MySQL) 3.在数据库里面添加数据 4.首先是BaseDao,这个是重中之重,注意那个数 ...

随机推荐

  1. Haystack-全文搜索框架

    Haystack 1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsear ...

  2. EChart 文字大小调整 饼状图为例

    一.EChart图中的文字调整(以饼图为例) 二.源码: { "title": { "text": "", "subtext&qu ...

  3. PHP中的面向对象思想

    <?php header("Content-Type: text/html; charset=gb2312"); class person{ /** * 成员属性 * 在类中 ...

  4. C#生成唯一值的方法汇总

    生成唯一值的方法很多,下面就不同环境下生成的唯一标识方法一一介绍,作为工作中的一次总结,有兴趣的可以自行测试: https://www.cnblogs.com/xinweichen/p/4287640 ...

  5. INotifyPropertyChanged 接口

    INotifyPropertyChanged 接口 用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知. 例如,考虑一个带有名为 FirstName 属性的 Person 对象.若要提供 ...

  6. Beta(6/7)

    鐵鍋燉腯鱻 项目:小鱼记账 团队成员 项目燃尽图 冲刺情况描述 站立式会议照片 各成员情况 团队成员 学号 姓名 git地址 博客地址 031602240 许郁杨 (组长) https://githu ...

  7. ulimit -c unlimited的使用(转载)

    ulimit -c unlimited ulimint -a 用来显示当前的各种用户进程限制Linux对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况,设置个Linux用户的最大进 ...

  8. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Saratov

    A. Three Arrays 枚举每个$a_i$,双指针出$b$和$c$的范围,对于$b$中每个预先双指针出$c$的范围,那么对于每个$b$,在对应$c$的区间加$1$,在$a$处区间求和即可. 树 ...

  9. pytorch简介

    诞生 1.2017年1月,Facebook人工智能研究院(FAIR)团队在GitHub上开源了pyTorch,并迅速占领GitHub热度榜榜首. 常见深度学习框架简介 Theano 1.Theano最 ...

  10. HTML5_canvas 画布

    <canvas></canvas> 画布 <canvas id="my_canvas" width="400" height=&q ...