springでJdbcTemplateを使ってデータベースを操作するいくつかの方法を詳しく説明します。


JdbcTemplateを使用する手順
1、spring-jdbcとspring-txの座標を設定する(つまり導入依存)

  <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>

2、データテーブルとエンティティクラスを作成する
  • データテーブルを作成するプロセスは、
  • を省略します。
  • エンティティクラスAcceount
  • を作成する。
    
    package com.jdbcTemplate.bean;
    
    public class Account {
      private String name;
      private Double money;
    
      public String getName() {
        return name;
      }
    
      public void setName(String name) {
        this.name = name;
      }
    
      public Double getMoney() {
        return money;
      }
    
      public void setMoney(Double money) {
        this.money = money;
      }
    
      @Override
      public String toString() {
        return "Account{" +
            "name='" + name + '\'' +
            ", money=" + money +
            '}';
      }
    }
    3、データソース、JdbcTemplateオブジェクトを作成する
    4、データベース操作を実行する
    3、4ステップを実現する方法は、以下の3つを提供します。
    方法1:コードに直接データソースとデータオブジェクトを配置する
    JdbcTemplateオブジェクトの作成+jdbc文の実行
    
        //       
        DriverManagerDataSource ds = new DriverManagerDataSource();
        ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUrl("jdbc:mysql://localhost:3306/think");
        ds.setUsername("root");
        ds.setPassword("");
        //  jdbcTemplate  
        JdbcTemplate jt = new JdbcTemplate();
        //    (    )
        jt.setDataSource(ds);
        jt.execute("insert into account(name,money)value('EVA',50000)");
    方法二:レスポンスディレクトリにX.xmlファイルを配置し、データソース、JdbcTemplateを注入する。
    設定xmlファイル
    
    <?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:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--    //     -->
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
          <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
          <property name="url" value="jdbc:mysql://localhost:3306/think"/>
          <property name="username" value="root"/>
          <property name="password" value=""/>
        </bean>
    <!--  //  jdbcTemplate-->
        <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
          <property name="dataSource" ref="dataSource"/>
        </bean>
    設定操作データベースを使う
    testクラスのテストを作成します
    
     // 、         
        //1、    
        ApplicationContext ac = new ClassPathXmlApplicationContext("beans5.xml");
        //2、    
        JdbcTemplate jt = ac.getBean("jdbcTemplate",JdbcTemplate.class);
        //、    
    //    jt.execute("insert into account(name,money)value ('Alice',2000)");
        //  
        //jt.update("insert into account(name,money)value (?,?)","Eden",100);
        //  
        // jt.update("update account set money=?,name=? where name=?",1000,"Kiroto","Eden");
        //  
        //jt.update("delete from account where name =? and money =?","Kiroto",1000);
        //  
        List<Account> list = jt.query("select * from account where name =?",new BeanPropertyRowMapper<Account>(Account.class),"Eden");
        System.out.println(list.isEmpty()?"      ":list.get(0));
    方法三:インターフェースを使って実現する
    templateインターフェースとtemplateDAOインターフェースの実現クラスを作成します。
    インターフェース
    
    package com.jdbcTemplate.test;
    
    import com.jdbcTemplate.bean.Account;
    
    public interface Template {
    
      Account find(String name);
    
      int update(Account account);
    
      int delete(Account account);
    
      int add(Account account);
    }
    インターフェース実現クラス
    
    package com.jdbcTemplate.test;
    
    import com.jdbcTemplate.bean.Account;
    import org.springframework.jdbc.core.BeanPropertyRowMapper;
    import org.springframework.jdbc.core.JdbcTemplate;
    
    import java.util.List;
    
    public class TemplateDAO implements Template {
      private JdbcTemplate jdbcTemplate;
    
      public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
      }
    
      public Account find(String name) {//  
        List<Account> list = jdbcTemplate.query("select * from account where name=?",
            new BeanPropertyRowMapper<Account>(Account.class),name);
        return list.isEmpty()?null:list.get(0);
      }
    
      public int update(Account account) {//  
    
        return jdbcTemplate.update("update account set money=? where name=?",
            account.getMoney(),account.getName());
      }
    
      public int delete(Account account) {//  
    
        return jdbcTemplate.update("delete from account where name =?",account.getName());
      }
    
      public int add(Account account) {//  
        return jdbcTemplate.update("insert into account(name ,money)value (?,?)",account.getName(),account.getMoney());
      }
    }
    
    
    テスト前に、一つのインターフェース実装クラスが多くなりましたので、データソースとjdbcTemplate以外に、xmlプロファイルの中にもう一つのTemplateDAOを配置しなければなりません。
    
    <!--          -->
      <bean id="templateDAO" class="com.jdbcTemplate.test.TemplateDAO">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
      </bean>
    
    試験クラスを作成してテストを行う
    
    import com.jdbcTemplate.bean.Account;
    import com.jdbcTemplate.test.Template;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class mytest {
      public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext("beans6.xml");
        Template tp = ac.getBean("templateDAO",Template.class);//          
        Account account = tp.find("Lily");
        System.out.println(account.toString());
    
      }
    }
    この記事はspringでJdbcTemplateを使ってデータベースを操作するいくつかの方法について説明しました。もっと関連するspring JdbcTemplateの操作データベースの内容は私達の以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。