使用JDBC读取和写入数据
通过JdbcTemplate类,Spring支持JDBC
使用JdbcTemplate查询数据库
pricate JdbcTemplate jdbc;
@Override
public Ingredient findOne(String id) {
return jdbc.queryForObject(
"select id,name,type from Ingredient where id = ? ",
this::mapRowToIngredient,id
);
}
private Ingredient mapRowToINgredient(ResultSet rs,int rowNum)
throw SQLException {
return new Ingredient(
rs.getString("id"),
rs.getString("name"),
Ingredient.Type.valueOf(rs.getString("type"))
);
}
在将对象持久化到数据库的时候,通常最好有一个字段作为对象的唯一标识。
获取和保存数据的repository接口
public interface IngredientRepository {
Iterable<Ingredient> findAll();
Ingredient findOne(String id);
Ingredient save(Ingredient ingredient);
}
IngredientRepository实现,使用JdbcTemplate来查询数据库
@Repository
public class JdbcIngredientRepository implements IngredientRepository {
private JdbcTemplate jdbc;
@Autowired
public JdbcIngredientRepository(JdbcTemplate jdbc) {
this.jdbc = jdbc;
}
...
}
@Repository 注解,是Spring定义的一系列构造型