私はSpringを初めて使用し、CASに取り組んでいます。ユーザー認証のためにデータベースにクエリを実行する必要がありますが、サーブレットをコントローラーとして使用しています。したがって、そのサーブレットでSimpleJdbcTemplateを設定し、それを使用してデータベースにクエリを実行する方法があるかどうかを知る必要があります。web.xmlファイルまたはその他のファイルを構成する方法がある場合。
すでにありがとうございます。
私はSpringを初めて使用し、CASに取り組んでいます。ユーザー認証のためにデータベースにクエリを実行する必要がありますが、サーブレットをコントローラーとして使用しています。したがって、そのサーブレットでSimpleJdbcTemplateを設定し、それを使用してデータベースにクエリを実行する方法があるかどうかを知る必要があります。web.xmlファイルまたはその他のファイルを構成する方法がある場合。
すでにありがとうございます。
JdbcTemplate
に直接注入したりアクセスしたりするのは良い考えではありませServlet
んController
。
間にレイヤーを配置して、DAOをDAO
注入することをお勧めします。
を使用するには、構成のどこかに定義が必要です(xmlまたはアノテーションを介したSpringコンテキスト)。
を持っている場合、スプリング構成は次のようになりますJdbcTemplate
JdbcTemplate
DataSource
UserDao
<bean class="com.xxx.dao.UserDAOImpl" id="userDAO">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>
and here you need to difine your "dataSource" there are multiple ways to configure it, You may get better help from google.
そして今、あなたUserDaoImpl
はのように見えます
public class UserDAOImpl implements UserDAO {
private JdbcTemplate jdbcTemplate;
//setter and getter for jdbcTemplate
public List<Map<String, Object>> getUsers() {
String query = "select * from user";
return jdbcTemplate.queryForList(query, new HashMap<String, String>());
}
}
サーブレットでは、を使用してこのDaoの参照を取得する必要があります。ServiceLocator
サーブレットクラス
...
public UserDAO getUserDao() {
return ServiceLocator.getBean(UserDAO.class);
}
...
ここでも、を設計する方法は複数ありますServiceLocator
。これが簡単な実装です。
public class ServiceLocator implements ApplicationContextAware {
private static ApplicationContext applicationContext;
/**
* @return Returns the applicationContext.
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static <T> T getBean(Class<T> requiredType) throws BeansException {
return getApplicationContext().getBean(requiredType);
}
/**
* @param applicationContext The applicationContext to set.
*/
public void setApplicationContext(ApplicationContext applicationContext) {
ServiceLocator.applicationContext = applicationContext;
}
}
最後に、これらの部分はすべて独立しています。個別に読む必要があります。グーグルまたはスプリングフォーラムで多くの正確なヘルプを得ることができます。