十八、Spring之JDBC模板的增删改查操作

项目的运行环境基于这篇文章十六、Spring通过IOC管理JDBC模板

jdbc模板的增删改都可以使用同一个方法,即update方法。

查询方法这里介绍2种,一个是单条记录查询,另一个是多条记录查询,前者使用queryForObject方法,后者使用query方法,但无论使用哪种查询方法,它们都有很多重载的方法,我这里使用的是传入参数有RowMapper接口的。

RowMapper接口需要我们去实现它的mapRow方法,在该方法中完成每一条记录的封装,注意:没查询一条记录就会回调一次该方法。

好了,下面直接上代码

package blog.csdn.net.mchenys.test;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * jdbc模板的增删改查
 * 
 * @author mChenys
 *
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class Demo2 {

	@Resource(name = "jdbcTemplate")
	private JdbcTemplate jdbcTemplate;

	// 添加
	@Test
	public void testAdd() {
		jdbcTemplate.update("insert into t_account values(null,?,?)", "张三", 100);
	}

	// 修改
	@Test
	public void testUpdate() {
		jdbcTemplate.update("update t_account set money=? where name=?", 200, "张三");
	}

	// 删除
	@Test
	public void testDelete() {
		jdbcTemplate.update("delete from t_account  where name=?", "张三");
	}

	// 单个查询
	@Test
	public void queryOne() {
		Account account = jdbcTemplate.queryForObject("select * from t_account where id=?", new BeanMapper(), 1);
		System.out.println(account);
	}

	// 所有查询
	@Test
	public void queryAll() {
		List<Account> list = jdbcTemplate.query("select * from t_account", new BeanMapper());
		for (Account account : list) {
			System.out.println(account);
		}
	}

	// 手动的来封装数据(一行一行封装数据)
	class BeanMapper implements RowMapper<Account> {

		@Override
		public Account mapRow(ResultSet rs, int rowNum) throws SQLException {
			Account ac = new Account();
			ac.setId(rs.getInt("id"));
			ac.setName(rs.getString("name"));
			ac.setMoney(rs.getDouble("money"));
			return ac;
		}

	}

	//java bean
	class Account {
		private Integer id;
		private String name;
		private Double money;

		public Integer getId() {
			return id;
		}

		public void setId(Integer id) {
			this.id = id;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public Double getMoney() {
			return money;
		}

		public void setMoney(Double money) {
			this.money = money;
		}

		@Override
		public String toString() {
			return "Account [id=" + id + ", name=" + name + ", money=" + money + "]";
		}

	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一种开源框架,它简化了构建独立的、生产级别的Spring应用程序和服务的过程。它通过提供开箱即用的模板和自动配置来减少开发者的工作负担和时间。 使用Spring Boot连接到PostgreSQL数据库是相对简单的,只需几个步骤就可以轻松实现增删改查操作。 首先,确保PostgreSQL已安装并运行,然后在pom.xml文件中添加以下依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> </dependency> ``` 在 application.properties 文件中,指定数据库连接信息: ``` spring.datasource.url=jdbc:postgresql://localhost:5432/{数据库名} spring.datasource.username={用户名} spring.datasource.password={密码} spring.jpa.hibernate.ddl-auto=update ``` 在您的实体类上使用诸如@Entity和@Id之类的注释,以将它映射到数据库表中。您可以使用@OneToMany和@ManyToOne等注释指定数据表之间的关系。 对于增删改查操作,您可以定义和使用 JpaRepository 接口和它的各种方法。例如: ``` @Repository public interface UserRepository extends JpaRepository<User, Long> { List<User> findByName(String name); } ``` 上面的代码演示了一个简单的 UserRepository 接口,它继承了 JpaRepository 并定义了一个 findByName 方法,可用于从数据库中查找用户。在上面的例子中,数据表名为“user”,每条记录都有一个唯一的ID,并附带一个名为 name 的列。 要执行其他操作,如插入、更新或删除记录,您可以定义类似于上述例子的接口方法,然后通过调用相应的方法操作数据库。例如: ``` userRepository.save(user); userRepository.delete(user); userRepository.findAll(); ``` 总的来说,使用Spring Boot和PostgreSQL进行增删改查是相当简单的,只需按照上述步骤设置您的应用程序即可。通过使用自动配置和依赖注入,Spring Boot可以大大简化数据访问层代码的编写和维护。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值