Spring JDBCTemplate

本文介绍了SpringJDBC的基本概念及配置方法,并通过示例代码展示了如何利用SpringJDBC进行数据库的增删改查操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

今天看到了SpringJDBC这儿,感觉目前来说,SpringJDBC工作中使用的不太多了,就在这儿简单记录一下大致的基础知识,本章略简单,文末附上一篇比较饱满的文章,有兴趣的可以看一下。

什么是Spring JDBC

Spring框架简化了程序开发,SpringJDBC就是一部分,它不需要开发人员去考虑获取连接、关闭连接等操作,只需要配置好后,调用相应的方法即可。使得开发人员从繁琐的数据库操作中解脱出来,从而有更多的精力投入到业务逻辑中。

配置Spring JDBC

此处配置了读取数据库连接配置,连接池以及JdbcTemplate

	<util:properties id="dbConfig" location="classpath:db.properties"></util:properties>

 	<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
 	    <property name="driverClassName" value="#{dbConfig.driver}"></property>
 	    <property name="url" value="#{dbConfig.url}"></property>
 	    <property name="username" value="#{dbConfig.username}"></property>
 	    <property name="password" value="#{dbConfig.password}"></property>
 	</bean>
 	
 	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
 	    <property name="dataSource" ref="ds"></property>
 	</bean>

代码示例

package try01.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import try01.entity.TestUser;

@Repository("sjDao")
public class SpringJdbcDao {
	
	@Resource(name="jdbcTemplate")
	private JdbcTemplate jdbcTemplate;
	
	public void doSave(){
		String sql = "insert into test(id,name)values(?,?)";
		Object[] args = new Object[]{2,"ww"};
		jdbcTemplate.update(sql, args);
	}
	
	public void doUpdate(){
		String sql = "update test set name=? where id=?";
		Object[] args = new Object[]{"ls",1};
		jdbcTemplate.update(sql,args);
	}
	
	public void doDelete(){
		String sql = "delete from test where id=?";
		int i = jdbcTemplate.update(sql,"1");
		System.out.println(i);
	}
	
	public TestUser findById(){
		String sql = "select * from test where id=?";
		Object[] args = new Object[]{1};
		List list = (List) jdbcTemplate.query(sql,args, new TestUserRowMapper());
		System.out.println(list);
		if(list!=null&&list.size()>0){
			TestUser tu= (TestUser) list.get(0);
			return tu;
		}
		return null;
	}
	// 注意:此处我是自己写了一个RowMapper的实现类,也可以直接使用框架写好的RowMapper的实现类BeanPropertyRowMapper,使用它就可以不需要自己去写实现类了
	class TestUserRowMapper implements RowMapper<TestUser>{
		public TestUser mapRow(ResultSet rs, int rowNum) throws SQLException {
			TestUser tu = new  TestUser();
			tu.setId(rs.getString("id"));
			tu.setName(rs.getString("name"));
			return tu;
		}	
	}
	
	public List findAll(){
		String sql = "select * from test";
		List list = (List) jdbcTemplate.query(sql, new TestUserRowMapper());
		System.out.println(list);
		return list;
	}
	
	// 如果返回的是条数等,可以使用jdbcTemplate.query(sql, class);此处的class是指返回参数类型的字节码文件




}

可参考文章

https://blog.youkuaiyun.com/weixin_44117272/article/details/94716724

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值