spring使用jdbcTemplate和jdbcdaosupport和namedparameter

jdbcTemplate:

  首先连接数据库

<!-- 导入外部文件 -->
<context:property-placeholder location="classpath:db.properties"/>
    <!-- 配置c3p0数据源 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${driverClass}"></property>
        <property name="jdbcUrl" value="${jdbcUrl}"></property>
        <property name="user" value="${user}"></property>
        <property name="password" value="${password}"></property>

    </bean>

外部配置

driverClass=oracle.jdbc.OracleDriver
jdbcUrl=jdbc:oracle:thin:@192.168.1.105:1521:orcl
user=ems
password=123456

注意写URL的时候写本机的IP,写localhost的时候在Oracle数据库中服务的配置要写localhost

修改

连接测试的代码

public class JDBCTest {

    private ApplicationContext ctx=null;
    private JdbcTemplate jdbcTemplate;

    {
        ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        jdbcTemplate=(JdbcTemplate) ctx.getBean("jdbcTemplate");
    }
    @Test
    //测试连接
    public void testDataSource() throws SQLException{
        DataSource dataSource=ctx.getBean(DataSource.class);
        System.out.println(dataSource.getConnection());
    }

}

jdbcTemplate支持的五种方法:

  • execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
  • update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
  • query方法及queryForXXX方法:用于执行查询相关语句;
  • call方法:用于执行存储过程、函数相关语句。

在xml中配置jdbcTemplate

<!-- 配置Spring的 jdbcTemplate -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

使用:

package com.spring.jdbc;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;

public class JDBCTest {

    private ApplicationContext ctx=null;
    private JdbcTemplate jdbcTemplate;

    {
        ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        jdbcTemplate=(JdbcTemplate) ctx.getBean("jdbcTemplate");
    }
    @Test
    //测试连接
    public void testDataSource() throws SQLException{
        DataSource dataSource=ctx.getBean(DataSource.class);
        System.out.println(dataSource.getConnection());
    }
    @Test
    public void testUpdate(){
        String sql="update employees set last_name=? where id=?";
        jdbcTemplate.update(sql, "Jack",2);
    }
}

批量修改:

//批量修改
    @Test
    public void testBatchUpdate(){
        String sql="insert into employees(last_name,deptid) values(?,?)";
        List<Object[]> batchArgs=new ArrayList<Object[]>();
        batchArgs.add(new Object[]{"AA",1});
        batchArgs.add(new Object[]{"BB",2});
        jdbcTemplate.batchUpdate(sql,batchArgs);
    }

NamedParameterJdbcTemplate:具名参数,该对象可以使用具名参数

配置bean

<!-- 配置NamedParameterJdbcTemplate 该对象可以使用具名参数,其没有无参数构造器,所以必须为构造器指定参数-->
    <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
        <constructor-arg ref="dataSource"></constructor-arg>
    </bean>

Java测试:

package com.spring.jdbc;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;

public class JDBCTest {

    private ApplicationContext ctx=null;

    private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
    {
        ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        namedParameterJdbcTemplate=ctx.getBean(NamedParameterJdbcTemplate.class);
    }
    @Test
    public void testNamedParameterJdbcTemplate(){
        String sql="insert into employees(id,last_name,email,deptid) values(:a,:ln,:email,:id)";
        Map<String,Object> paramMap=new HashMap<String, Object>();
        paramMap.put("a", 3);
        paramMap.put("ln", "FF");
        paramMap.put("email", "[email protected]");
        paramMap.put("id", 2);
        namedParameterJdbcTemplate.update(sql, paramMap);
    }

}改进:public void testNamedParameterJdbcTemplate2(){        String sql="insert into employees(id,last_name,email,deptid) values(:id,:lastname,:email,:deptid)";        Employees employee=new Employees();        employee.setLastName("haha");        employee.setEmail("[email protected]");        employee.setDeptId(5);        SqlParameterSource parameterSource=new BeanPropertySqlParameterSource(employee);        namedParameterJdbcTemplate.update(sql, parameterSource);    }参数名就是对象的 属性。然后直接传入属性。
时间: 2024-08-10 17:04:47

spring使用jdbcTemplate和jdbcdaosupport和namedparameter的相关文章

spring之jdbcTemplate实例

如果我们不使用spring或使用spring但不使用spring的jdbcTemplate模板的时候我们要取得一个数据库的连接以及关闭要经过如下几步: 1.使用Java反射加载驱动 2.通过DriverManager 的getConnection() 方法获取Connection对象 3.获取Statement    或PrepareStatement 4. 调用Statement  或PrepareStatement的方法进行数据ddl  dcl  dml 操作 5.获取结果 6.释放资源 7

Spring之JDBCTemplate学习

一.Spring对不同的持久化支持: Spring为各种支持的持久化技术,都提供了简单操作的模板和回调 ORM持久化技术 模板类 JDBC org.springframework.jdbc.core.JdbcTemplate Hibernate5.0 org.springframework.orm.hibernate5.HibernateTemplate IBatis(MyBatis) org.springframework.orm.ibatis.SqlMapClientTemplate JPA

使用Spring的JdbcTemplate访问数据库 转

使用Spring的JdbcTemplate访问数据库 JdbcTemplate 模板可以简化JDBC操作,但是创建一个JdbcTemplate需要一个DataSource接口,在Spring中,当然就是向 JdbcTemplate中注入一个DataSource,然后通过JdbcTemplate来获取一个连接(Connection). 假设SQL Server 2000数据库(新建的数据库名称为hibernate)中有一张person表,简单地记录了人员的详细信息. 使用Spring的IOC机制实

spring学习(四)spring的jdbcTemplate(增删改查封装)

Spring的jdbcTemplate操作 1.Spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 (2)到dao 层,使用 jdbcTemplate 2.Spring对不同的持久化都进行了封装 (1)jdbcTemplate  对  jdbc 进行封装 3.jdbcTemplate 使用和 dbutils 使用很相似,都是对数据库进行 crud 操作 4.使用jdbcTemplate 实现增删改查操作 增加: 1.导入 jdbcTemplate 相关jar 包 一定要导

Spring中JdbcTemplate中使用RowMapper

Spring中JdbcTemplate中使用RowMapper 博客分类: spring Java代码   package com.cxl.demo.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.Ro

Spring的JdbcTemplate

JdbcTemplate模板与DbUtils工具类比较类似. #1 开发JDBCTemplate入门: ## 第一步:引入相应jar包: * spring-tx-3.2.0.RELEASE.jar * spring-jdbc-3.2.0.RELEASE.jar * mysql驱动. ## 第二步:创建applicationContext.xml ## 第三步:编写一个测试类: ``` @RunWith(SpringJUnit4ClassRunner.class) @ContextConfigur

Spring中jdbcTemplate的用法实例

一.首先配置JdbcTemplate: 要使用Jdbctemplate 对象来完成jdbc 操作.通常情况下,有三种种方式得到JdbcTemplate 对象.       第一种方式:我们可以在自己定义的DAO 实现类中注入一个DataSource 引用来完 成JdbcTemplate 的实例化.也就是它是从外部"注入" DataSource 到DAO 中,然后 自己实例化JdbcTemplate,然后将DataSource 设置到JdbcTemplate 对象中.       第二种

SSM-Spring-19:Spring中JdbcTemplate

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- Spring自带一个ORM持久化框架JdbcTemplate,他可以说是jdbc的加强版,但是对最细微的控制肯定做不到像jdbc那么细,那么性能高,他的出现是为了让jdbc更加便于使用 下面我说一下我这篇博客要干嘛, 一,简单的JdbcTemplate做出来的案例 二,除了自带的Spring-jdbc,补充c3p0,druid,dbcp三种DataSource数据源 1.案例查询图书 1.1数据表: 接下来

Spring的JdbcTemplate(10)

JdbcTemplate模板与DbUtils工具类比较类似. Spring对持久层技术支持 JDBC : org.springframework.jdbc.core.JdbcTemplate Hibernate3.0 : org.springframework.orm.hibernate3.HibernateTemplate IBatis(MyBatis) : org.springframework.orm.ibatis.SqlMapClientTemplate JPA : org.spring