美文网首页
spring学习15(JdbcTemplate数据库)

spring学习15(JdbcTemplate数据库)

作者: 又是那一片天 | 来源:发表于2017-08-02 14:46 被阅读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);
        }
    

    相关文章

      网友评论

          本文标题:spring学习15(JdbcTemplate数据库)

          本文链接:https://www.haomeiwen.com/subject/yeeelxtx.html