对于JdbcTemplate的总结

初步说明:

相关背景:

在使用JDBC时,必须自己来管理数据库资源如:获取PreparedStatement,设置SQL语句参数,关闭连接等步骤。

​ JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用。


增删改

jdbaTemplate.update(sql,...)

update只会返回一个被影响的行数。建议对于insert、update、delete 都用insert into user values(?,?,?) ; 或者 update product set pname=?, price=? where pid=?;

String sql="update user set user(user_name,user_phone,user_num) values (?,?,?) where user_id ='"+user_chabasic.getUser_id()+"'";
jdbcTemplate.update(sql,user_chabasic.getUser_name(),user_chabasic.getUser_phone(),user_chabasic.getUser_num());

查询

int queryForInt(String sql)
执行一个查询语句,返回int值。

long queryForLong(String sql)
执行查询语句,返回一个long类型的数据。

public <T> T queryForObject(String sql, Class<T> requiredType)
执行查询语句,返回一个指定类型的数据。
PS:BeanPropertyRowMapper(User.class)见后面讲解

String sql2 = "select * from user where user_name='"+user_login.getUser_in()+"' and user_password='"+user_login.getUser_password()+"'";
User user2=jdbcTemplate.queryForObject(sql2,new BeanPropertyRowMapper<User>(User.class));
//这里是返回一个user类
//or 
//String str = jdbcTemplate.queryForObject(sql, String.class);  
//一个String

public Map<String, Object> queryForMap(String sql)
执行查询语句,将一条记录放到一个Map中。
PS:Map是一种依照键存储元素的容器。在map中键可以是任意类型的对象。map中不能有重复的键,每个键都有一个对应的值。

Map<String, Object> map = jdbcTemplate.queryForMap(sql, 6);

public List<Map<String, Object>> queryForList(String sql)
执行查询语句,返回一个List集合,List中存放的是Map类型的数据。

public static void test05() throws Exception {
   String sql = "SELECT * FROM product WHERE pid<?;";
   JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource());
   List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, 8);
   for (Map<String, Object> map : list) {
      System.out.println(map);
   }
}

public <T> List<T> query(String sql, RowMapper<T> rowMapper)
执行查询语句,返回一个List集合,List中存放的是RowMapper自定义类型的数据。
使用步骤
1、定义Product类
2、创建JdbcTemplate对象
3、编写查询的SQL语句
4、使用JdbcTemplate对象的query方法,并传入RowMapper匿名内部类
5、在匿名内部类中将结果集中的一行记录转成一个Product对象

// query使用rowMap做映射返回一个对象
public static void test06() throws Exception {
    JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource());

   // 查询数据的SQL语句
   String sql = "SELECT * FROM product;";

   List<Product> query = jdbcTemplate.query(sql, new RowMapper<Product>() {
      @Override
      public Product mapRow(ResultSet arg0, int arg1) throws SQLException {
         Product p = new Product();
         p.setPid(arg0.getInt("pid"));
         p.setPname(arg0.getString("pname"));
         p.setPrice(arg0.getDouble("price"));
         return p;
      }
   });

   for (Product product : query) {
      System.out.println(product);
   }
}

List<Product> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Product.class));
执行查询语句,返回一个List集合,List中存放的是RowMapper指定类型的数据。
BeanPropertyRowMapper类实现了RowMapper接口。


总结:

execute:可以执行所有SQL语句,一般用于执行DDL语句。
update:用于执行INSERT、UPDATE、DELETE等DML语句。
queryXxx:用于DQL数据查询语句。

DML(Data Manipulation Language):
SELECT、UPDATE、INSERT、DELETE,用来对数据库里的数据进行操作的语言

DDL(Data Definition Language):
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用

DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

DQL(DataQueryLanguage):
数据查询语言,用来查询记录(数据)


参考资料:

原文链接:https://blog.csdn.net/weixin_40001125/article/details/88538576
原文题目:JdbcTemplate基本使用
原文作者: localhost-9527

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JdbcTemplate是Spring框架中的一个核心类,用于简化JDBC操作。它提供了方便的方法来执SQL查询、更新和批处理操作。 在使用JdbcTemplate之前,需要先获取JdbcTemplate对象。根据提供的引用内容,有三种常见的方式可以获取JdbcTemplate对象。 第一种方式是通过在Spring配置文件中定义一个JdbcTemplate的bean,并将其注入到需要使用的类中。在提供的代码示例中,可以看到在Spring配置文件中定义了一个名为"jdbcTemplate"的bean,并将其注入到了UserServiceImpl类中的setJdbcTemplate方法中。这样,UserServiceImpl类就可以通过调用getJdbcTemplate方法来获取JdbcTemplate对象。 第二种方式是直接在需要使用JdbcTemplate的类中定义一个JdbcTemplate的成员变量,并提供相应的setter方法。在提供的代码示例中,可以看到在UserServiceImpl类中定义了一个名为"jdbcTemplate"的成员变量,并提供了setJdbcTemplate方法来注入JdbcTemplate对象。这样,UserServiceImpl类就可以通过调用getJdbcTemplate方法来获取JdbcTemplate对象。 第三种方式是通过编程方式创建JdbcTemplate对象,然后进相应的配置。这种方式相对较少使用,一般在没有Spring配置文件的情况下使用。通过创建JdbcTemplate对象并手动设置它的数据源,可以实现与数据库的连接。具体代码示例如下: ```java DataSource dataSource = ...; // 创建数据JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); // 创建JdbcTemplate对象 ``` 需要注意的是,无论通过哪种方式获取JdbcTemplate对象,都需要先配置好数据源,以便JdbcTemplate能够正确地与数据库连接。 总结起来,要使用JdbcTemplate,可以通过在Spring配置文件中定义一个JdbcTemplate的bean并注入到需要使用的类中,或者在需要使用JdbcTemplate的类中直接定义一个JdbcTemplate的成员变量并提供相应的setter方法。另外,还可以通过编程方式创建JdbcTemplate对象并手动设置数据源。无论哪种方式,都需要确保已正确配置数据源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值