Spring使用JdbcTemplate操作数据库

一、前期准备

1、引入jar包,在spring配置文件中配置数据仓库数据库连接池

  <!-- 数据库连接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
          destroy-method="close">
         <property name="url" value="jdbc:mysql:///user_db" />
         <property name="username" value="root" />
         <property name="password" value="root" />
         <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    </bean>

2、配置jdbcTemplate对象,注入DataSource

<!--    <JdbcTemplate对象>-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!--        注入dataSource-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>

3、在A类中注入jdbcTemplate对象(通过@AutoWired注入)  (注意**在A类前记得加注解,如@service等)(所以在xml配置文件中记得组件扫描)

  //注入jdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;

配置文件部分如下

<!--    组件扫描  -->
    <context:component-scan base-package="com.company"></context:component-scan>


    <!-- 数据库连接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
          destroy-method="close">
         <property name="url" value="jdbc:mysql:///user_db" />
         <property name="username" value="root" />
         <property name="password" value="root" />
         <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    </bean>
<!--    <JdbcTemplate对象>-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!--        注入dataSource-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>

二、数据库操作(增删改查)

1.在注入jdbcTemplate的类中进行数据库添加、删除、修改操作

1)创建表中每个对象的类,包含表中各列的名称,以及get和set方法创建。如下图中的book类;

2)在A接口中创建添加、删除、修改的函数(jdbcTemplate.update( , )第一个参数sql语句,第二个参数sql语句中需要的参数),在A类中进行重写,写入具体操作;

3)在test类中进行测试,测试类编写可以参考这篇里面

A类代码如下:

@Service
public class BookDaoImpl implements BookDao{

    //注入jdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
    
    @Override
    public void add(Book book) {
        String sql = "insert into t_book values(?,?,?)";
        jdbcTemplate.update(sql,book.getUserID(),book.getUsername(),book.getUstatus());
    }

test类代码如下:

@Test
    public void testAdd() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        BookDaoImpl bookDaoImpl = context.getBean("bookDaoImpl", BookDaoImpl.class);
        Book book = new Book();
        book.setUserID("10");
        book.setUsername("heima");
        book.setUstatus("5");
        bookDaoImpl.add(book);

2.查询并返回

1)查询并返回某个值   

区别是执行sql语句的函数与增删改查不同,采用queryForObject( ,)方法,第一个参数是sql语句,第二个参数是返回类型的class(如返回int数值,则为Interger.class)。

2)查询并返回对象

与返回值所用的函数相同,但参数不同queryForObject( ,,)

第一个参数sql语句

第二个参数new BeanPropertyRowMapper< >( )  尖括号里面是返回对象类型,圆括号里是返回对象类型的class

第三个参数是需要输入的值(即sql查询语句中需要输入的值的形参)

 public Book foundone(int id) {
        String sql = "select * from t_book where user_id=?";
        Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);
        return book;

3)查询并返回对象集合( List<对象类型> )

 区别是执行sql语句的函数为query( , , ),参数与返回对象是所表示的一样(注意第二个参数的尖括号里面是返回对象类型,圆括号里是返回对象类型的class)

3.批量操作

执行sql语句的函数是batchUpdate( , ),第一个参数sql语句,第二个参数List集合,对其进行批量操作。

public void batchadd(List<Object[]> args) {
        String sql = "insert into t_book values(?,?,?)";
        int[] adds = jdbcTemplate.batchUpdate(sql, args);
        System.out.println(Arrays.toString(adds));
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值