📜  Spring SimpleJdbcTemplate示例(1)

📅  最后修改于: 2023-12-03 15:35:03.635000             🧑  作者: Mango

Spring SimpleJdbcTemplate示例

Spring SimpleJdbcTemplate是Spring框架中对JdbcTemplate进行简化封装的类,它可以更加方便的对数据库进行增删改查操作,同时也可以使用Spring的事务管理机制来控制数据库事务。在本篇文章中,我们将介绍Spring SimpleJdbcTemplate的基本使用方法和实例。

简单查询

使用SimpleJdbcTemplate进行查询,只需要简单几行代码就可以完成。

@Autowired
private DataSource dataSource;
private SimpleJdbcTemplate jt;

public void init() {
    jt = new SimpleJdbcTemplate(dataSource);
}

public void query() {
    String sql = "SELECT * FROM users WHERE name = ?";
    List<User> users = jt.query(sql, new RowMapper<User>() {
        public User mapRow(ResultSet rs, int rowNum) throws SQLException {
            User user = new User();
            user.setId(rs.getInt("id"));
            user.setName(rs.getString("name"));
            user.setAge(rs.getInt("age"));
            return user;
        }
    }, "John");
    for (User user : users) {
        System.out.println(user);
    }
}

以上代码使用dataSource作为数据源初始化了一个SimpleJdbcTemplate对象,使用query()方法查询了数据库中名字为'John'的用户,并使用RowMapper将查询结果映射为JavaBean对象。可以看到,使用SimpleJdbcTemplate进行查询操作非常方便,只需要几行代码就可以完成。

插入、更新和删除操作

使用SimpleJdbcTemplate进行插入、更新和删除操作同样也很方便。

public void insert() {
    String sql = "INSERT INTO users(name, age) VALUES (?, ?)";
    jt.update(sql, "Mike", 25);
}

public void update() {
    String sql = "UPDATE users SET age = ? WHERE name = ?";
    jt.update(sql, 30, "Mike");
}

public void delete() {
    String sql = "DELETE FROM users WHERE name = ?";
    jt.update(sql, "Mike");
}

以上代码分别展示了使用SimpleJdbcTemplate进行插入、更新和删除操作的示例,可以看到操作非常简单。

事务管理

除了以上简单的操作,SimpleJdbcTemplate还可以与Spring的事务管理机制进行集成,从而实现数据库事务的控制。

@Autowired
private DataSource dataSource;
private SimpleJdbcTemplate jt;
@Autowired
private PlatformTransactionManager transactionManager;

public void init() {
    jt = new SimpleJdbcTemplate(dataSource);
}

@Transactional
public void transaction() {
    String sql1 = "INSERT INTO users(name, age) VALUES (?, ?)";
    jt.update(sql1, "Mike", 25);

    String sql2 = "UPDATE users SET age = ? WHERE name = ?";
    jt.update(sql2, 30, "Mike");
}

以上代码使用@Transactional注解将transaction()方法设置为事务方法,使用transactionManager作为事务管理器,可以保证在transaction()方法中执行的所有操作要么全部成功,要么都不执行。

总结

本篇文章介绍了Spring SimpleJdbcTemplate的基本使用方法和实例,包括简单查询、插入、更新和删除操作,以及与Spring的事务管理机制进行集成。SimpleJdbcTemplate的简化封装使得数据库操作变得更加简单和方便,使用SimpleJdbcTemplate可以大大提高开发效率。