SpringMVC操作数据库

来源:互联网 发布:淘宝卖家加入运费险 编辑:程序博客网 时间:2024/05/21 13:23

SpringMVC操作数据库

 

静态资源处理:

Springmvc的上下文文件中配置

 <mvc:default-servlet-handler/>   

    

<mvc:annotation-driven ></mvc:annotation-driven>

这样的两行代码。将在上下文文件中定义一个DefaultServletRequestHandler,它会对进入DispatcherRequest中的请求进行筛查,如果没有发现是经过映射的请求,该请求就交由默认的web服务器进行处理。如果不是静态资源的请求,才由DispatcherServlet 继续处理。

SpringMVC操作数据库:

1. 需要重新创建一个Spring上下文文件(applicationContext.xml),用来配置SpringJDBC,之前配置的上下文文件用来配置SpringMVC,将两者区分开。

2. web.xml文件中配置一个监听器

 <context-param>

 

 <param-name>contextConfigLocation</param-name>

 <param-value>classpath:spring/applicationContext.xml</param-value>

 

</context-param> 

<listener>

 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

 

 </listener>

 

这样在tomcat服务器启动时就会将对应的上下文文件进行工厂化处理。

3. 数据库操作处理(这个不做重点):

具体代码如下:

DAO层

package com.xt.springMVC.db.dao;

 

import java.util.List;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.jdbc.core.BeanPropertyRowMapper;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.stereotype.Repository;

 

import com.xt.springMVC.db.entity.UserInfo;

 

@Repository

public class UserDao {

@Autowired

private JdbcTemplate jdbcTemplate;

public List<UserInfo> getUsers(){

System.out.println("-----com.xt.springMVC.db.dao.UserDao----");

String sql = "select * from user_info";

return jdbcTemplate.query(sql, new BeanPropertyRowMapper<UserInfo>(UserInfo.class));

}

}

Service层

package com.xt.mvc.crud.db.service;

 

import java.util.List;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

 

import com.xt.mvc.crud.db.dao.UserDao;

import com.xt.mvc.crud.db.entity.UserInfo;

 

@Service

public class UserService {

 

@Autowired

private UserDao userDao;

 

public List<UserInfo> getUserInfos(){

return userDao.getAllUserInfos();

}

}

Controller层

@RequestMapping("/userList")

public String userList(Map<String, Object> map){

map.put("userData", uService.getUserInfos());

return "/user/userList";

}

类型转换器

通常我们知道,在通过url/{name}的方式进行传值时,传递的值都是String类型的,Spring内置了一些类型转换器,可以将传递过来的值转化为我们需要的格式类型,但是有时候需要我们自己手写一些类型转换器,例如时间转换器,我们在配置的时候,同样是在上下文中配置

<mvc:default-servlet-handler/>   

    

    <mvc:annotation-driven conversion-service="formattingConversionService"></mvc:annotation-driven>

 

     

   <bean id="formattingConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">

      <property name="converters">

      <set>

      <bean class="com.xt.springMVC.db.common.DateFormatConverter"></bean>

      </set>

      </property>

     </bean>

之后我们需要手写一个类型转换类DateFormatConverter实现代码如下:

package com.xt.springMVC.db.common;

 

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

 

import org.springframework.core.convert.converter.Converter;

 

import com.alibaba.druid.util.StringUtils;

 

public class DateFormatConverter  implements Converter<String,Date>{

 

public Date convert(String source) {

if(!StringUtils.isEmpty(source)){

try {

return new SimpleDateFormat("yyyy-MM-dd").parse(source);

} catch (ParseException e) {

System.out.println("格式转化错误------>"+e);

e.printStackTrace();

}

}

return null;

}

 

}

阅读全文
0 0
原创粉丝点击