Jdbctemplate 所需Jar包以及入门程序样例

【JdbcTemplate是什么】

  • JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用。
  • Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。
  • 常用方法
    • execute方法:可以用于执行任何SQL语句,一般用于执行DDL(数据库模式定义语言)语句;
    • update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
    • query方法及queryForXXX方法:用于执行查询相关语句;

【为什么要使用jdbctemplate】

如果直接使用JDBC的话,需要我们加载数据库驱动、创建连接、释放连接、异常处理等一系列的动作,繁琐且代码看起来不直观。而使用 jdbctemplate 则无需关注加载驱动、释放资源、异常处理等一系列操作,我们只需要提供 sql 语句并且提取最终结果即可,大大方便我们编程开发。此外,Spring提供的JdbcTempate能直接数据对象映射成实体类,不再需要获取ResultSet去获取值、赋值等操作,提高开发效率;

【jdbctemplate常用方法】

jdbcTemplate主要提供的5类方法及使用:

(1)execute() 方法:可以执行任何SQL语句,一般用于执行DDL语句。

(2)update(sqlStr, 参数列表) 方法:用于执行新增、修改、删除等语句。

(3)batchUpdate() 方法:用于执行批处理相关语句,batchUpdate方法第二参数是一个元素为 Object[] 数组类型的 List 集合。

(4)query() 方法及 queryForXXX() 方法:用于执行查询相关语句,查询结果为基本数据类型或者是单个对象一般使用 queryForObject()

queryForInt():查询一行数据并返回 int 型结果。例子:jdbcTemplate.queryForInt("select count(*) from user")

queryForObject(sqlStr, 指定的数据类型, 参数列表):查询一行任何类型的数据,最后一个参数指定返回结果类型。例子:jdbcTemplate.queryForObject("selct count(*) from user", Integer.class)

queryForMap(sqlStr, 参数列表):查询一行数据并将该行数据转换为 Map 返回。将会将列名作为key,列值作为 value 封装成 map。当查询出来的行数大于1时会报错。例子:jdbcTemplate.queryForMap("select * from user where username = ?", "aaa");

List<Map<String, Object>> queryForList(sqlStr, 参数列表):将查询结果集封装为 list 集合,该集合的每一条元素都是一个 map。

query(sqlStr, RowMapper对象, 参数列表):查询多行数据,并将结果集封装为元素是 JavaBean 的 list。(注意,指定的JavaBean的属性最好不要是基本类型,因为查询出来的结果可能是null,而null赋值为基本数据类型将会报错。比如int最好定义为Integer)

(5)call() 方法:用于执行存储过程、函数相关语句。


【你是怎么开始的呢?】

1、将下载的5个Jar包导入到项目中

2、编写代码所需的工具类JDBCUtils

package com.Utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * 以下链接Druid的工具类
 */
@SuppressWarnings("all")
public class JDBCUtil {
    //创建Datasource对象
    private static DataSource ds;
    static {
        //创建Properties对象
        Properties pro = new Properties();
        try {
            pro.load(JDBCUtil.class.getClassLoader().getResourceAsStream("druid.properties"));
            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 返回链接对象
     */
    public static Connection getconnection() throws SQLException, SQLException {
        return ds.getConnection();
    }
    /**
     * 关闭流
     */
    public static void close(Statement sta, Connection con){
        if(sta != null){
            try {
                sta.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(con !=null){
            try {
                con.close();//归还连接
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 关闭三个流
     */
    public static void close(ResultSet rs, Statement sta, Connection con){
        if(rs !=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(sta !=null){
            try {
                sta.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(con !=null){
            try {
                con.close();//归还连接
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 获取数据源
     */
    public static DataSource getDatasource(){
        return ds;
    }

}

3、编写JDBCTemplate基本程序

package com.Jdbctemplate;
import com.Utils.JDBCUtil;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * 以下程序是使用Jdbctemplate初级方法
 */
public class test {
    public static void main(String[] args) {
        //1、导入5个Jar包
        //2、新建对象
        JdbcTemplate jdbc = new JdbcTemplate(JDBCUtil.getDatasource());
        //3、编写sql语句
        String sql = "update emp set age = 88 where name=?";
        //4、执行修改语句
        int count = jdbc.update(sql, "ccc");
        //5、打印输出
        System.out.println(count);
    }
}

4、运行程序,数字1代表成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值