Spring JDBC

Posted miantiao312

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring JDBC相关的知识,希望对你有一定的参考价值。

一、 Spring JDBC 简介

    Spring JDBC :spring 官方提供的一个持久层框架,对jdbc进行了抽象和封装,消除了重复冗余的jdbc重复性的代码,使操作数据库变的更简单。
                  但Spring JDBC本身并不是一个orm框架,与hibernate相比,它需要自己操作sql,手动映射字段关系,在保持灵活性的同时,势
                  必造成了开发效率的降低。如果需要使用完整的orm框架操作数据库,可以使用hibernate或者spring Data Jpa。
    Spring JDBC :提供了模板类对数据库简化对数据库的操作,其中JdbcTemplate是最常用的。

二、代码逻辑实现

    A、原始Jdbc实现

        blic class User {
            private int id;
            private String name;
            private String sex;
            private int age;
            //省略getter/setter方法
        }

        public class JdbcTemplateTest1 {
            @Test
            public void test1() {
                //1.创建连接池
                DriverManagerDataSource dataSource=new DriverManagerDataSource();
                
                //2.设置数据库属性
                dataSource.setDriverClassName("com.mysql.jdbc.Driver");
                dataSource.setUrl("jdbc:mysql:///springtest");
                dataSource.setUsername("root");
                dataSource.setPassword("root");
                
                //3.创建JdbcTemplate完成数据库操作
                JdbcTemplate jdbc=new JdbcTemplate();
                jdbc.setDataSource(dataSource);
                jdbc.execute("update t_user set name=‘逗逗‘ where id=‘1‘");
            }
        }

    B、配置 spring 内置的连接池DriverManagerDataSource 
        applicationContext.xml
            <bean id="driverManagerDateSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                <property name="driverClassName" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql:///springtest" />
                <property name="username" value="root" />
                <property name="password" value="root"/>
            </bean>
            
            <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
                <property name="dataSource" ref="driverManagerDateSource"/>
            </bean>
        
        测试代码
            @RunWith(SpringJUnit4ClassRunner.class)
            @ContextConfiguration(locations = "classpath:applicationContext.xml")
            public class JdbcTemplateTest2 {
            
                @Autowired
                private JdbcTemplate jdbcTemplate;
                
                @Test
                public void test1() {
                    jdbcTemplate.execute("update t_user set sex=‘女孩‘");
                }
            }

    C、使用C3P0开源连接池(写在配置文件中)
        db.properties
            jdbc.driverClass=com.mysql.jdbc.Driver
            jdbc.url=jdbc:mysql:///springtest
            jdbc.username=root
            jdbc.password=root

        applicationContext.xml
            <!--引入外部数据库配置文件  -->
            <context:property-placeholder location="classpath:db.properties"/>
            <!-- c3p0连接池 -->
            <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
                <property name="driverClass" value="${jdbc.driverClass}"/>
                <property name="jdbcUrl" value="${jdbc.url}"/>
                <property name="user" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </bean>
            
            <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
                <property name="dataSource" ref="c3p0DataSource"/>
            </bean>

        测试代码
            @RunWith(SpringJUnit4ClassRunner.class)
            @ContextConfiguration(locations = "classpath:applicationContext.xml")
            public class JdbcTemplateTest2 {
            
                @Autowired
                private JdbcTemplate jdbcTemplate;
                
                @Test
                public void test1() {
                    jdbcTemplate.execute("update t_user set sex=‘我是逗比‘");
                }
            }

以上是关于Spring JDBC的主要内容,如果未能解决你的问题,请参考以下文章

spring jdbc模糊查询代码怎么写

Spring对JDBC的模板支持——JdbcTemplate

面试常用的代码片段

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool

spring jdbc分离数据库代码和java代码

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段