springMVC3+JDBCTemplate简单示例

看了几天的spring资料,查看了很多网上资料(包括了官网的例子),发现很少有关springMVC和jdbcTemplate结合使用的完整而且简单的例子,今天晚上很有空就自己写了简单的例子,自己也是刚刚学springMVC,所以希望能为像我这样的菜鸟能快速入门,希望大家在看完我写的教程的时候,也能留言,说点建议,这是我第一次写例子,希望大家多多支持


开发环境:

Springsource tool suite

Spring 的包

commons-dbcp.jar

commons-logging-1.0.4.jar

commons-pool.jar

mysql-connector-java-3.1.14-bin.jar




step1:建立数据库

如图


step2:使用springsource toolsuite 新建一个mvc工程,我的工程名字为:springMVC_demo


删除原有的homecontroller

 

step3:新建user实体


package com.xing.ent;


/**
 * guangzhoudaxue 
 * @author xing
 *
 */
public class User{

	private int id;
	private String name;
	private String password;
	
	
	public User(String name, String password) {
		super();
		this.name = name;
		this.password = password;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", password=" + password
				+ "]";
	}
}



Step4:新建UserDao 


package com.xing.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.RowMapperResultSetExtractor;
import com.xing.ent.User;
/**
 * guangzhoudaxue 
 * @author xing
 *
 */
public class UserDao {
	class UserRowMapper implements RowMapper{
		public Object mapRow(ResultSet rs,int index) throws SQLException        {
            User u = new User(rs.getString("name"), rs.getString("password"));
            return u;
        }
    }
	
	private JdbcTemplate jdbcTemplate;
	
	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}
	//注入
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public List findAllUser()
	{
		List list = null;
		try{
			
			String sql ="select * from user";
			list = jdbcTemplate.query(sql,new RowMapperResultSetExtractor(new UserRowMapper()));
		}catch (Exception e) {
			// TODO: handle exception
		}
		return list;
	}
	
}

Step5新建UserService

package com.xing.service;

import java.util.List;

import com.xing.dao.UserDao;
import com.xing.ent.User;
/**
 * guangzhoudaxue 
 * @author xing
 *
 */
public class UserService {
	private UserDao userDao;
	
	public UserDao getUserDao() {
		return userDao;
	}
	//注入
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	/**
	 * 查找所有的用户信息
	 * @return
	 */
	public List<User> getUserList(){
		return userDao.findAllUser();
	}
}

Step6:新建UserController


package com.xing.controller;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.xing.ent.User;
import com.xing.service.UserService;

/**
 * guangzhoudaxue 
 * @author xing
 *
 */
@Controller
public class UserController {
	
	private static final Logger logger = LoggerFactory.getLogger(UserController.class);

	private UserService userService;
	/**
	 * Simply selects the home view to render by returning its name.
	 */
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Model model) {
		logger.info("get all user info ---->/n");
		List<User> users = userService.getUserList();
		logger.info(users.toString());
		model.addAttribute("users", users);
		
		return "showUsers";
	}
	
	//注入
	public UserService getUserService() {
		return userService;
	}
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	
}

Step7:配置文件的配置

root-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
	
	<!-- 定义受环境影响易变的变量 -->
	<bean
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
		<property name="ignoreResourceNotFound" value="true" />
		<property name="locations">
			<list>
				<!-- 标准配置 -->
				<value>/WEB-INF/application.properties</value>
			</list>
		</property>
	</bean>

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<!-- Connection Info -->
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}"></property>

		<!-- Connection Pooling Info -->
		<property name="maxIdle" value="${dbcp.maxIdle}" />
		<property name="maxActive" value="${dbcp.maxActive}" />
		<property name="defaultAutoCommit" value="false" />
		<property name="timeBetweenEvictionRunsMillis" value="3600000" />
		<property name="minEvictableIdleTimeMillis" value="3600000" />
	</bean>

<!--     注入 -->
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
	</bean>
<!--     注入 -->
	<bean id="userDao" class="com.xing.dao.UserDao">
		<property name="jdbcTemplate">
			<ref bean="jdbcTemplate" />
		</property>
	</bean>
<!--     注入 -->
	<bean id="userService" class="com.xing.service.UserService">
		<property name="userDao">
			<ref bean="userDao" />
		</property>
	</bean>
		
</beans>


新建一个application.properties文件放置WEB-INF目录下(注意:我使用的是mysql,如果使用其他的数据库可能有点不同,网上很容已找到,或者在spring的sample上都有)

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

dbcp.maxIdle=5
dbcp.maxActive=40

servlet-context.xml

这里基本上是没有修改任何东西,添加了一个bean

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:beans="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
	
	<!-- Enables the Spring MVC @Controller programming model -->
	<annotation-driven />

	<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
	<resources mapping="/resources/**" location="/resources/" />

	<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<beans:property name="prefix" value="/WEB-INF/views/" />
		<beans:property name="suffix" value=".jsp" />
	</beans:bean>
	
	<context:component-scan base-package="com.xing.controller" />
		<beans:bean id="userController" class="com.xing.controller.UserController">
		<beans:property name="userService">
			<beans:ref bean="userService" />
		</beans:property>
	</beans:bean>
	
	
</beans:beans>


Step8:这是显示界面

showUsers.jsp          

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
	<title>Home</title>
</head>
<body>
<P>  users: ${users}. </P>
</body>
</html>

 

以上是我个人学习spring的小小总结,如需转载请注明转载地址,^_^,谢谢各位------一个小小菜鸟,同时也希望各位高手指点下




版权声明:本文为baitxttgchx原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。