spring学习15(JdbcTemplate数据库)

2017-08-02  本文已影响0人  又是那一片天

spring封装对数据库基本操作;

需要的jar

1.新建配置文件


image.png

2.bean配置文件中导入外部配置文件

    <context:property-placeholder location="classpath:mysql" />

3.配置c3p0

<!-- 配置c3p0 -->
    <bean id="c3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user" value="${user}"></property>
        <property name="password" value="${password}"></property>
        <property name="jdbcUrl" value="${jdbcUrl}"></property>
        <property name="driverClass" value="${driverClass}"></property>
        <property name="initialPoolSize" value="${initPoolSize}"></property>
        <property name="maxPoolSize" value="${maxPoolSize}"></property>
    </bean>

4.配置 Spring 的 jdbcTemplate

<!-- 配置 Spring 的 jdbcTemplate -->
    <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="c3p0"></property>
    </bean>
数据库的 UPDATE INSERT, DELETE

代码:

    /**
     * 测试 UPDATE INSERT, DELETE
     */
    private static void testUpdate(ApplicationContext ctx) {
        //获取spring JdbcTemplate对象
        JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jt");
        //修改
        String sqlu = "UPDATE user SET name=? WHERE id=?";
        jdbcTemplate.update(sqlu, "王五", 1);
        
        //批量增加   最后的参数需要一个Object数组
        String sqli = "INSERT INTO user(name,pw,age) VALUES(?,?,?)";
        List<Object[]> list=new ArrayList<>();
        list.add(new Object[] {"老矣","123456",5});
        list.add(new Object[] {"小三","csacs",23});
        list.add(new Object[] {"老牛","csadcdsa",45});
        list.add(new Object[] {"张八","vfdvf",80});
        list.add(new Object[] {"小四","csacdsc",90});
        jdbcTemplate.batchUpdate(sqli, list);
    }
参数具名参数 可以为参数起名字,直接对应参数名,便于维护
/**
     * 参数具名参数
     * 1.可以为参数起名字,直接对应参数名,便于维护
     * 2.叫为麻烦
     * */
    private static void testName(ApplicationContext ctx) {
        NamedParameterJdbcTemplate npjt = (NamedParameterJdbcTemplate) ctx.getBean("npjt");
        String sqli = "INSERT INTO user(name,pw,age) VALUES(:name,:pw,:age)";
        Map<String, Object> map=new HashMap<String, Object>();
        map.put("name", "具名参数");
        map.put("pw", "1465151");
        map.put("age", "20");
        npjt.update(sqli, map);
    }
具体对象映射
/**
     * 参数具名参数
     * 使用具体对象映射
     * */
    private static void testName2(ApplicationContext ctx) {
        NamedParameterJdbcTemplate npjt = (NamedParameterJdbcTemplate) ctx.getBean("npjt");
        String sqli = "INSERT INTO user(name,pw,age) VALUES(:name,:pw,:age)";
        user    u=new user();
        u.setName("具名参数1");
        u.setPw("1465151sdxsx");
        u.setAge(25);
        SqlParameterSource parameter=new BeanPropertySqlParameterSource(u);
        npjt.update(sqli, parameter);
    }
上一篇 下一篇

猜你喜欢

热点阅读