ApplicationContext 类处于 Action 层,每产生一个 Action 会存在效率问题
监听器
在服务器启动时,为每个项目创建一个 ServletContext 对象
监听到 ServeletContext 创建时,加载 Spring 配置文件并创建配置好的对象
将对象放到 ServeletContext 对象中 (setArrtibute方法)
获取对象(getAttribute方法)
需要导入 spring-web jar 包
// web.xml
<listener>
<listener-class> org.springframework.web.context.ContextLoaderListener </listener-class>
</listener>
// web.xml
// 默认会找\WEB-INF\applicationContext.xml
<context-parm>
<param-name> contextConfigLocation </param-name>
<param-value> classpath:applicationContext.xml </param-value>
</context-parm>
Spring 对不同的持久化技术都进行了封装 (Dao 层技术)
jdbc(数据库驱动的 jar 包,如:mysql-connector)
// 1。 创建对象,设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSourrce.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql:///test");
dataSource.setUsername("root");
dataSource.setPardword("root");
// 2. 创建 jdbcTemplate 对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
// 3. 使用 jdbcTemplate 的方法进行操作
// 增加数据
String sql = "insert into table values(?,?)";
int rows = jdbcTemplate.updae(sql, "Jeson", "100");
System.out.println(rows);
// 删除数据
String sql = "delete from table where xx=?";
int rows = jdbcTemplate.update(sql, "xxx");
System.out.println(rows);
// 修改数据
String sql = "update table set xx=? where xx=?";
int rows = jdbcTemplate.update(sql, "xxx", "xxx");
System.out.println(rows);
// 查询数据
// 查询返回一个值
String sql = "seletc count(*) from table";
int count = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(count);
// 查询返回对象
class MyRowMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet rs, int num) throws SQLException {
// 从结果集得到数据并封装到自己定义的类中
String username = rs.getString("username");
String password = rs.getString("password");
User user = new User();
user.setUseranme(username);
user.setPassword(password);
return user;
}
}
String sql = "select * from table where xx=?";
User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "xx");
System.out.println(user);
// 查询返回 List
String sql = "select * from talbe";
List list = jdbcTemplate.query(sql, new MyRowMapper());
Syste.out.println(list);
jar包:c3p0 和 machange-commons-java
~xml~
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 注入数据源 -->
<property name="dataSource" ref="dataSource"/>
</bean>
@Component(value="userDao")
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public void show() {
String sql = "select * from talble";
List list = jdbcTemplate.queryForByObject(sql, new MyRowMapper());
// TODO
}
}
Spring学习笔记(五)----Web项目整合、JdbcTemplate
原文:https://www.cnblogs.com/qq188380780/p/11443848.html