美文网首页
JDBCTemplate

JDBCTemplate

作者: 不会写诗的苏轼 | 来源:发表于2023-02-22 10:40 被阅读0次

    概述:

    spring对很多技术复杂繁琐的代码进行封装,JDBCTemplate就是其中一种
    如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等。

    步骤:

    1. 导入spring-jdbc和spring-tx【】坐标
    <!--JDBCTemplte-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>5.2.5.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>5.2.5.RELEASE</version>
    
    1. 创建数据库表和实体
    2. 创建JdbcTemplate对象
      @Test
        public void test1() throws SQLException {
            //创建数据源
            DruidDataSource dataSource=new DruidDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("JDBC:mysql://localhost:3306/springtest");
            dataSource.setUsername("root");
            dataSource.setPassword("123456");
            
            //创建JDBCTemplate对象
            JdbcTemplate template=new JdbcTemplate(dataSource);
            String sql="insert into account(name,money) values(?,?)";
            int count = template.update(sql, "zhangsan", 1200);
            System.out.println(count);
        }
    
    1. 执行数据库操作

    spring产生模板对象代码实现(抽取jdbc.properties)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context.xsd
    ">
        <!--寻找jdbc.properties配置文件-->
        <context:property-placeholder location="classpath:Jdbc.properties" />
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${jdbc.driver}" />
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
        <bean id="template" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="dataSource" />
        </bean>
    </beans>
    

    Jdbc基本使用:

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:applicationContext.xml")
    public class JdbcTemplate_CRUD {
        @Autowired
        private JdbcTemplate template;
    
        @Test
        public void testUpdate(){
            int row = template.update("update account set money=? where name=?", 2000, "王五");
        }
    
        @Test
        public void testDelete(){
            int row = template.update("delete from account where name=?", "??");
        }
    
        /**
         * 查询多个对象
         */
        @Test
        public void testQuery(){
            List<Account> AccountList = template.query("select * from account", new BeanPropertyRowMapper<Account>(Account.class));
            System.out.println(AccountList);
        }
    
        /**
         * 查询多个多项
         */
        @Test
        public void testQueryOne(){
            Account account = template.queryForObject("select * from account where name=?", new BeanPropertyRowMapper<Account>(Account.class), "王五");
            System.out.println(account);
        }
    
        /**
         * 聚合函数查询
         */
        @Test
        public void testQueryCount(){
            long count = template.queryForObject("select count(*) from account",long.class);
                    System.out.println(count);
        }
    }
    

    相关文章

      网友评论

          本文标题:JDBCTemplate

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