JdbcTemplate是Spring框架提供的一个对JDBC进行封装的工具类,它用于简化JDBC的使用。
以下是使用JdbcTemplate操作数据库的一些常见方法:
1、使用JdbcTemplate插入数据:
@Autowired
private JdbcTemplate jdbcTemplate;
public void insertData(String name, String email) {
String sql = "INSERT INTO CUSTOMER (NAME, EMAIL) VALUES (?, ?)";
jdbcTemplate.update(sql, name, email);
}
2.使用JdbcTemplate更新数据:
public void updateData(String name, String email, int id) {
String sql = "UPDATE CUSTOMER SET NAME = ?, EMAIL = ? WHERE ID = ?";
jdbcTemplate.update(sql, name, email, id);
}
3.使用JdbcTemplate删除数据:
public void deleteData(int id) {
String sql = "DELETE FROM CUSTOMER WHERE ID = ?";
jdbcTemplate.update(sql, id);
}
4.使用JdbcTemplate查询数据:
public Customer getCustomer(int id) {
String sql = "SELECT ID, NAME, EMAIL FROM CUSTOMER WHERE ID = ?";
Customer customer = jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(Customer.class));
return customer;
}
5.使用JdbcTemplate查询多条数据:
public List<Customer> getAllCustomers() {
String sql = "SELECT ID, NAME, EMAIL FROM CUSTOMER";
List<Customer> customers = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Customer.class));
return customers;
}
以上代码中,Customer是一个实体类,用于映射数据库表中的记录。
注意:在使用JdbcTemplate操作数据库时,需要处理SQLException,可以在方法上抛出或者try-catch处理。以上示例代码中,为了简洁,没有展示异常处理的代码。
如果需要临时写一些脚本初始化数据,需要同时操作多个数据库,可以手动去初始化 JdbcTemplate 对象
static {
String BASE_URL = "jdbc:postgresql://ip:port/%s?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useUnicode=true&useSSL=false";
String driver = "org.postgresql.Driver";
String user = "数据库用户名";
String password = "数据库密码";
String DB01_URL = String.format(BASE_URL, "db_01");
String DB02_URL = String.format(BASE_URL, "db_02");
DriverManagerDataSource dmds = new DriverManagerDataSource();
dataSourceSLCYFH.setUrl(DB01_URL );
dataSourceSLCYFH.setDriverClassName(driver);
dataSourceSLCYFH.setUsername(user);
dataSourceSLCYFH.setPassword(password);
JDBC_TEMPLATE_01 = new JdbcTemplate(dmds);
DriverManagerDataSource dataSource02 = new DriverManagerDataSource();
dataSourceUcm.setUrl(DB02_URL );
dataSourceUcm.setDriverClassName(driver);
dataSourceUcm.setUsername(user);
dataSourceUcm.setPassword(password);
JDBC_TEMPLATE_02 = new JdbcTemplate(dataSource02);
}
@Test
public void test01() {
// 操作db_01数据库 使用 JDBC_TEMPLATE_01
// 操作db_02数据库 使用 JDBC_TEMPLATE_02
}
参考:
因篇幅问题不能全部显示,请点此查看更多更全内容