• SpringJDBC


    一. Spring的JDBC模板

      1.Spring提供了很多持久层的模板类简化编程

        

      2.实现

        (1)创建数据库和表

        (2)导入相关jar

          

        (3)创建测试类

    @Test
    // JDBC模板的基本使用:
    public void demo1(){
      DriverManagerDataSource dataSource = new DriverManagerDataSource();
      dataSource.setDriverClassName("com.mysql.jdbc.Driver");
      dataSource.setUrl("jdbc:mysql:///spring_db03");
      dataSource.setUsername("root");
      dataSource.setPassword("123");

      JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
      jdbcTemplate.update("insert into account values (null,?,?)", "小明",10000);
    }

      3.将连接池交给Spring来管理

        (1)Spring内置连接池的配置

    <!-- 配置Spring的内置连接池 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
      <property name="url" value="jdbc:mysql:///spring_db02"/>
      <property name="username" value="root"/>
      <property name="password" value="123"/>
    </bean>      

    <!-- 配置JDBC模板 -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
      <property name="dataSource" ref="dataSource"/>
    </bean>

        (2)测试

           @RunWith(SpringJUnit4ClassRunner.class)

    @ContextConfiguration("classpath:applicationContext.xml")

    public class SpringDemo2 {

    @Resource(name="jdbcTemplate")

    private JdbcTemplate jdbcTemplate;

    @Test

    public void demo1(){

    jdbcTemplate.update("insert into account values (null,?,?)", "小红",10000);

    }

    }

      4.Spring配置DBCP连接池

        (1)导入jar

          

        (2)连接池配置

               <!-- 配置DBCP连接池 -->

        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>

        <property name="url" value="jdbc:mysql:///spring_db02"/>

        <property name="username" value="root"/>

        <property name="password" value="123"/>

        </bean>

      5.Spring配置c3p0连接池

        (1)导入jar

          

        (2)连接池配置

             <!-- 配置C3P0连接池 -->

        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

        <property name="driverClass" value="com.mysql.jdbc.Driver"/>

        <property name="jdbcUrl" value="jdbc:mysql:///spring_db02"/>

        <property name="user" value="root"/>

        <property name="password" value="123"/>

        </bean>

     

      6.JDBC模板的数据库操作

         @RunWith(SpringJUnit4ClassRunner.class)

    @ContextConfiguration("classpath:applicationContext.xml")

    public class SpringDemo3 {

      @Resource(name="jdbcTemplate")

      private JdbcTemplate jdbcTemplate;

      @Test

      // 插入操作

      public void demo1(){

        jdbcTemplate.update("insert into account values (null,?,?)", "小希",10000);

      }

      @Test

      // 修改操作

      public void demo2(){

        jdbcTemplate.update("update account set name=?,money =? where id = ?", "小雨",10000,5);

      }

    @Test

    // 删除操作

    public void demo3(){

    jdbcTemplate.update("delete from account where id = ?", 5);

    }

    @Test

    // 查询一条记录

    public void demo4(){

    Account account = jdbcTemplate.queryForObject("select * from account where id = ?", new MyRowMapper(), 1);

    System.out.println(account);

    }

    @Test

    // 查询所有记录

    public void demo5(){

    List<Account> list = jdbcTemplate.query("select * from account", new MyRowMapper());

    for (Account account : list) {

      System.out.println(account);

      }

      }

     

      class MyRowMapper implements RowMapper<Account>{

      @Override

      public Account mapRow(ResultSet rs, int rowNum) throws SQLException {

    Account account = new Account();

    account.setId(rs.getInt("id"));

    account.setName(rs.getString("name"));

    account.setMoney(rs.getDouble("money"));

    return account;

    }

    }

    }

  • 相关阅读:
    Servlet到底是单例还是多例你了解吗?
    Idea的一些调试技巧及设置todo
    Android如何使用so文件和Android studio中导入so
    Android 自定义控件之app标题栏的封装
    Android 动态添加删除ExpandableListView的item的例子
    Android 利用ListView制作带竖线的多彩表格
    Android EditText 改变边框颜色
    Android 使用Okhttp/Retrofit持久化cookie的简便方式
    Android 一个漂亮的Android Spinner
    Android 带清除功能的输入框控件EditText
  • 原文地址:https://www.cnblogs.com/djk-bk-ing/p/10494997.html
Copyright © 2020-2023  润新知