Spring обеспечивает очень удобную поддержку JDBC с помощью класса JdbcTemplate, которому для работы необходимо только указать через конструктор реализацию DataSource при создании экземпляра JdbcTemplate.
Пусть например мы хотим воспользоваться паттерном DAO (Data Access Object - обьект доступа к данным ) - напишем свой класс DaoJDBC который расширяет класс JdbcTemplate и сделаем внедрение через конструктор бина, реализующего DataSource:
Можно сделать и по-другому - сделать реализацию бина JdbcTemplate в файле конфигурации приложения - а дальше внедрять его куда нам нужно и использовать:
Исходники - https://sourceforge.net/projects/j-pkg/
Пусть например мы хотим воспользоваться паттерном DAO (Data Access Object - обьект доступа к данным ) - напишем свой класс DaoJDBC который расширяет класс JdbcTemplate и сделаем внедрение через конструктор бина, реализующего DataSource:
@RepositoryЗдесь как раз и происходит внедрение через конструктор бина dataSource, который мы рассматривали в предыдущей заметке. Дальше в классе DaoJDBC нам доступен весь инструментарий JdbcTemplate через this.
public class DaoJDBC extends JdbcTemplate {
@Inject // или @Autowired
public DaoJDBC(DataSource dataSource) {
this.setDataSource(dataSource);
}
public void clearAll() {
String sql = "delete from hosts";
this.update(sql);
}
.................// + другие операции с базой
}
Можно сделать и по-другому - сделать реализацию бина JdbcTemplate в файле конфигурации приложения - а дальше внедрять его куда нам нужно и использовать:
@Inject // или @AutowiredВ этом случае файл конфигурации приложения следующий:
private JdbcTemplate jdbcTemplate;
@ConfigurationИ еще - класс JdbcTemplate является безопасным в отношении потоков.
@ComponentScan(basePackages = {"PKG"})
public class AppContext {
@Bean(destroyMethod = "close")
public DataSource dataSource() {
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("org.apache.derby.jdbc.EmbeddedDriver");
bds.setUrl("jdbc:derby:./db/primer");
bds.setPassword("12345");
bds.setUsername("romka");
return bds;
}
@Bean
public JdbcTemplate jdbcTemplate () {
return new JdbcTemplate(this.dataSource());
}
}
Исходники - https://sourceforge.net/projects/j-pkg/
Комментариев нет:
Отправить комментарий