spring中的jdbcTemplate

spring核心配置文件中的内容

<!-- 注入dataSource -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/db_user"></property>
        <property name="username" value="root"></property>
        <property name="password" value="258764547"></property>
    </bean>
    <!-- 注入jdbcTemplate -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!-- 在jdbcTemplate中注入dataSource属性 -->
        <property name="dataSource" ref="dataSource"></property>
    </bean>
        <!-- 注入 userDaoImpl-->
    <bean id="userDaoImpl" class="com.yudo.dao.impl.UserDaoImpl">
        <!-- 在userDaoImpl中注入jdbcTemplate属性  -->
        <property name="jdbcTemplate" ref="jdbcTemplate"></property>
    </bean>

增,删,改的代码、

public class UserDaoImpl {
    private JdbcTemplate jdbcTemplate;

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public void add() {
        User user = new User();
        user.setUsername("关羽");
        user.setPassword("456");
        user.setAge(43);
        user.setAddress("荆州");
        String sql = "insert into t_user (username,password,age,address) values (?,?,?,?)";
        jdbcTemplate.update(sql, user.getUsername(), user.getPassword(),user.getAge(), user.getAddress());
    }

    public void delete() {
        String username = "张飞";
        String sql = "delete from t_user where username=?";
        jdbcTemplate.update(sql, username);
    }

    public void update() {
        String sql = "update t_user set age=?, address=? where username=?";
        jdbcTemplate.update(sql, "45", "蜀国", "关羽");
    }

查询功能:  

  <1.返回单一对象

//返回单一对象
    public void find1() {
        String sql = "select * from t_user where username=?";
        User user = jdbcTemplate.queryForObject(sql, new MapRow(), "关羽");
        System.out.println(user);
    }
    
new MapRow()的对象
class MapRow implements RowMapper<User> {
    @Override
    public User mapRow(ResultSet arg0, int arg1) throws SQLException {
        // TODO Auto-generated method stub
        String username = arg0.getString("username");
        String password = arg0.getString("password");
        Integer age = arg0.getInt("age");
        String address = arg0.getString("address");
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        user.setAge(age);
        user.setAddress(address);
        return user;
    }
}

<2.返回List集合

//返回List集合
    public void find2(){
        String sql = "select * from t_user";
        List<User> list = jdbcTemplate.query(sql, new MapRow());
        for (User user : list) {
            System.out.println(user);
        }
    }

测试类:

@Test
    public void DemoTest() {
        ApplicationContext ctx = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        UserDaoImpl userDaoImpl = (UserDaoImpl) ctx.getBean("userDaoImpl");
//      userDaoImpl.add();
//      userDaoImpl.delete();
//      userDaoImpl.update();
//      userDaoImpl.find1();
        userDaoImpl.find2();

    }

对增,删,改,的批量操作时,用到方法batchUpdate(sql, batchArgs);

batchArgs为Object类的数组

时间: 2024-12-25 11:54:32

spring中的jdbcTemplate的相关文章

Spring中使用JdbcTemplate

软件152班杨锦宏 Spring中使用JdbcTemplate.JdbcDaoSupport和NamedParameterJdbcTemplate来操作数据库,但是JdbcTemplate最常用,最易用. jdbc.properties: user=root password=123 driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc\:mysql\:///spring?encoding\=UFT-8 initPoolSize=5 maxPoolSize

Spring中使用JdbcTemplate和HibernateTemplate的数据库操作

目前我接触到的Spring的数据库操作主要包括两种,主要使用JdbcTemplate和HibernateTemplate.后者用于结合Hibernate操作. 两者都提供了持久层访问模板化,只需要获得一个SessionFactory就可以执行持久化操作.可以完成增删改查操作. 获取JdbcTemplate和HibernateTemplate的方式有两种 1. 传统的方式 2. 使用JdbcDaoSupport和HibernateDaoSupport获取,其包含两个方法. (1) getHiber

spring中的JdbcTemplate简单记录

JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修改.删除等语句:batchUpdate方法用于执行批处理相关语句: query方法及queryForXXX方法:用于执行查询相关语句: call方法:用于执行存储过程.函数相关语句. JdbcTemplate类支持的回调类: 预编译语句及存储过程创建回调:用于根据JdbcTemplate提供的连接创

Spring中的设计模式

[Spring中的设计模式] http://www.uml.org.cn/j2ee/201301074.asp [详解设计模式在Spring中的应用] [http://www.geek521.com/?p=6883] [http://blog.csdn.net/fg2006/article/details/6435410] [http://ylsun1113.iteye.com/blog/828542 ] 1.简单工厂  又叫做静态工厂方法(StaticFactory Method)模式,但不属

详解设计模式在Spring中的应用

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,螃蟹在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想理念,才能在工作学习中运用到“无形”. Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范.好了,话不多说,开始今天的内容. spring中常用的设计模式达到九种,我们一一举例: 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Me

Spring中的用到的设计模式大全

spring中常用的设计模式达到九种,我们举例说明: 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定.如下配置,就是在 HelloItxxz 类中创建一个 itxxzBean.

Spring中应用的那些设计模式

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,我们就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想理念,才能在工作学习中运用到“无形”. Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范.Spring中常用的设计模式达到九种,如下: 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工

Spring中jdbcTemplate的用法实例

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

spring boot中使用JdbcTemplate

本文将介绍如何将spring boot 与 JdbcTemplate一起工作.Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中. JdbcTemplate 是在JDBC API基础上提供了更抽象的封装,并提供了基于方法注解的事务管理能力. 通过使用SpringBoot自动配置功能并代替我们自动配置beans. 数据源配置在maven中,我们需要增加spring-boot-starter-jdbc模块