首页 > 其他分享 >Spring基础 02 | JdbcTemplate

Spring基础 02 | JdbcTemplate

时间:2022-09-19 20:22:22浏览次数:67  
标签:02 account Spring class JdbcTemplate Test public jdbcTemplate

JdbcTemplate

Spring对Jdbc的Api简单封装

  • 开发步骤
    1.导入Spring-jdbc、spring-tx坐标
    2.创建数据库表和实例
    3.创建jdbcTemplate对象
    4.执行数据库操作
    
    • 导入坐标

      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>5.3.15</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-tx</artifactId>
          <version>5.3.15</version>
      </dependency>
      
    • 实体类

      domain.Account

      public class Account {
          private String name;
          private double money;
          // Getter/Setter
          // toString()
      }
      
    • 操作

      JdbcTemplateTest

      public class JdbcTemplate {
          @Test
          public void test1() {
              // 创建数据源对象
              ComboPooledDataSource dataSource = new ComboPooledDataSource();
              dataSource.setDataSource('com.mysql.jdbc.Driver');
              dataSource.setJdbcClass('jdbc:mysql://localhost:3306/test');
              dataSource.setUser("root");
              dataSource.setPassword("123456");
      
              JdbcTemplate jdbcTemplate = new JdbcTemplate();
              jdbcTemplate.setDataSource(dataSource); // 设置数据源
      
              // 执行数据库操作
              int row = jdbcTemplate.update("insert into account values(?,?)", "mkl", 2000);
              System.out.pringln(row);
          }
      }
      
      • 使用Spring操作对象 配置文件方式

        配置连接Bean

        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="com.mysql.jdbc.Driver"/>
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/>
            <property name="user" value="root"/>
            <property name="password" value="123456"/>
        </bean>
        <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="dataSource"/>
        </bean>
        

        操作Template对象

        public class JdbcTemplateTest {
            @Test
            public void test2() throws Exception {
                ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
                JdbcTemplate jdbcTemplate = app.getBean(JdbcTemplate.class);
                int row = jdbcTemplate.update("insert into account values(?,?)", "mkl", 1000);
                System.out.println(row);
            }
        }
        

        抽取配置到properties : 略

      • JdbcTemplate增删改查

        • 改/删

          @RunWith(SpringJUnit4ClassRunner.class)
          @ContextConfiguration("classpath:applicationContext.xml")
          public class JdbcTemplateCRUDTest {
              @Autowired
              private JdbcTemplate jdbcTemplate;
          
              @Test
              public void testUpdate() {
                  jdbcTemplate.update("update account set money=? where name=?", 1000, "mkl");
              }
          
              @Test
              public void testDelete() {
                  jdbcTemplate.update("delete from account where name=?", "mkl");
              }
          }
          
        • 查询多个对象

          @Test
          public void testQueryAll() {
              List<Account> accountList = jdbcTemplate.query("select * from account", new BeanPropertyRowMapper<Account>(Account.class));
              System.out.println(accountList);
          }
          

          查看单个对象

          @Test
          public void testQueryAll() {
              Account account = jdbcTemplate.queryForObject(
                  "select * from account where name=?", 
                  new BeanPropertyRowMapper<Account>(Account.class),
                  "mkl"
              );
              System.out.println(account);
          }
          

          聚合查总数

          @Test
          public void testQueryAll() {
              Long count = jdbcTemplate.queryForObject(
                  "select count(*) from account", 
                  Long.class
              );
              System.out.println(count);
          }
          

标签:02,account,Spring,class,JdbcTemplate,Test,public,jdbcTemplate
From: https://www.cnblogs.com/miaokela/p/16708937.html

相关文章

  • 02-基于锚框的检测算法
                                            ......
  • Spring注解@Qualifier的详细用法
      悟纤:师傅,这一节,看着比较简单呢?师傅:嗯嗯,这一节就是和大家分享一些一些基础的知识,基础功不打扎实一点的话,源码和高级一些的功能在实现的时候就没有思路了。  ......
  • springboot+Flink 接收、处理数据20220919
     1、pom.xml<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot......
  • 2022-09-19 Error: Cannot find module '项目\node_modules\@vue\cli-service\bin
    前言:wepy项目迁移uniapp使用wepy-to-uniapp转换代码后初始化依赖抛出的错误:Error:Cannotfindmodule'项目\node_modules\@vue\cli-service\bin\vue-cli-service.js'网......
  • 报告分享|2022年中国数据交易实践趋势报告
    阅读全文:http://tecdat.cn/?p=28547梳理发现,2021年数据交易机构增长加速,北京、上海、深圳、广州、湖南、福建等多个省市,相继设立数据交易机构。2021年共有8家机构注册,包......
  • Spring JDBC的使用
    概述​ Spring的JDBC模块负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作,使得开发人员可以从烦琐的数据库操作中解脱出来,从而将更多的精力投入编写业务逻......
  • 静态方法中如何使用Spring的注入对象
    问题:静态方法里边引用了非静态变量b,会直接报错静态方法中引用的b虽然用了@Autowired注解,但是该注解的注入是在静态方法加载之后执行的,所以此处的b在使用时为null当一......
  • 2022 ICPC 网络预选赛(9.17)
    L给出一个s和t求s一个最长子串使得s中不存在t中长度大于2的子串。直接的想法是状压dp不过复杂度很高。仔细考虑当前形成子串中若包含t的一个字符所形成的的限制是该字......
  • T1022: 整型与布尔型的转换(信息学一本通C++)
    [题目描述]将一个整型变量的值赋给一个布尔型变量,再将这个布尔型变量的值赋给一个整型变量,得到的值是多少?[输入]一个整型范围内的整数,即初始时整型变量的值。[输出]一......
  • T1021: 打印字符(信息学一本通C++)
    [题目描述]输入一个整数,即字符的ASCII码,保证存在对应的可见字符。输出相对应的字符。[输入]一个整数,即字符的ASCII码,保证存在对应的可见字符。[输出]一行,包含相应的字......