`

SpringMVC+ Spring4.1.6+mybatis3.3

 
阅读更多

最近没事搭建了一下springmvc+Spring+mybatis的框架

1.首先使用eclipse创建maven项目

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.share</groupId>
  <artifactId>ssm_me</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
  <properties>
  		<!-- spring的版本号 -->
  		<org.springframework.version>4.1.6.RELEASE</org.springframework.version>
  		<!-- mybatis版本号 -->
  		<mybatis.version>3.3.0</mybatis.version>
  </properties>
  
  <dependencies>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-beans</artifactId>
  		<version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-core</artifactId>
  		<version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-web</artifactId>
  		<version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>  
         <groupId>org.springframework</groupId>  
         <artifactId>spring-oxm</artifactId>  
         <version>${org.springframework.version}</version>  
     </dependency>  
     <dependency>  
         <groupId>org.springframework</groupId>  
         <artifactId>spring-tx</artifactId>  
         <version>${org.springframework.version}</version>  
     </dependency>  

     <dependency>  
         <groupId>org.springframework</groupId>  
         <artifactId>spring-jdbc</artifactId>  
         <version>${org.springframework.version}</version>  
     </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-context-support</artifactId>  
            <version>${org.springframework.version}</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-test</artifactId>  
            <version>${org.springframework.version}</version>  
        </dependency>  
        <dependency>
        	<groupId>org.springframework</groupId>
        	<artifactId>spring-context</artifactId>
        	<version>${org.springframework.version}</version>
        </dependency>
        <dependency>
        	<groupId>org.springframework</groupId>
        	<artifactId>spring-expression</artifactId>
        	<version>${org.springframework.version}</version>
        </dependency>
        <dependency>
        	<groupId>org.springframework</groupId>
        	<artifactId>spring-orm</artifactId>
        	<version>${org.springframework.version}</version>
        </dependency>
        <dependency>
        	<groupId>org.springframework</groupId>
        	<artifactId>spring-webmvc</artifactId>
        	<version>${org.springframework.version}</version>
        </dependency>
        <!-- mybatis核心包 -->  
        <dependency>  
            <groupId>org.mybatis</groupId>  
            <artifactId>mybatis</artifactId>  
            <version>${mybatis.version}</version>  
        </dependency>  
        <!-- mybatis/spring包 -->  
        <dependency>  
            <groupId>org.mybatis</groupId>  
            <artifactId>mybatis-spring</artifactId>  
            <version>1.2.2</version>  
        </dependency>  
        <!-- 导入java ee jar 包 -->  
        
        <!-- 导入Mysql数据库链接jar包 -->  
        <dependency>  
            <groupId>mysql</groupId>  
            <artifactId>mysql-connector-java</artifactId>  
            <version>5.1.35</version>  
        </dependency>
        <dependency>
        	<groupId>com.mchange</groupId>
        	<artifactId>c3p0</artifactId>
        	<version>0.9.5-pre10</version>
        </dependency>
            <!-- JSTL标签类 -->  
        <dependency>  
            <groupId>jstl</groupId>  
            <artifactId>jstl</artifactId>  
            <version>1.2</version>  
        </dependency>  
        <!-- 日志文件管理包 -->  
        <!-- log start -->  
        <dependency>  
            <groupId>log4j</groupId>  
            <artifactId>log4j</artifactId>  
            <version>1.2.17</version>
        </dependency>  
          
          
        <!-- 格式化对象,方便输出日志 -->  
        <dependency>  
            <groupId>com.alibaba</groupId>  
            <artifactId>fastjson</artifactId>  
            <version>1.1.41</version>  
        </dependency>  
  
  
        <dependency>  
            <groupId>org.slf4j</groupId>  
            <artifactId>slf4j-api</artifactId>  
            <version>1.7.12</version>  
        </dependency>  
  
        <!-- log end -->  
        <!-- 映入JSON -->  
        <dependency>  
            <groupId>org.codehaus.jackson</groupId>  
            <artifactId>jackson-mapper-asl</artifactId>  
            <version>1.9.13</version>  
        </dependency>  
        <!-- 上传组件包 -->  
        <dependency>  
            <groupId>commons-fileupload</groupId>  
            <artifactId>commons-fileupload</artifactId>  
            <version>1.3.1</version>  
        </dependency>  
        <dependency>  
            <groupId>commons-io</groupId>  
            <artifactId>commons-io</artifactId>  
            <version>2.4</version>  
        </dependency>  
        <dependency>  
            <groupId>commons-codec</groupId>  
            <artifactId>commons-codec</artifactId>  
            <version>1.9</version>  
        </dependency>
        <dependency>
        	<groupId>org.apache.tomcat</groupId>
        	<artifactId>tomcat-servlet-api</artifactId>
        	<version>8.0.23</version>
        </dependency>
        
        <dependency>
        	<groupId>org.springframework</groupId>
        	<artifactId>spring-support</artifactId>
        	<version>2.0.8</version>
        </dependency>
        
  </dependencies>
</project>

 2.创建配置文件

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
	http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
	<!-- spring配置文件加载 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:beans.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- springmvc配置文件加载 -->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!-- spring内置编码解决 -->
  <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/learn?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root

 beans.xml(Spring配置文件)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
			http://www.springframework.org/schema/beans/spring-beans.xsd 
			http://www.springframework.org/schema/mvc 
			http://www.springframework.org/schema/mvc/spring-mvc.xsd 
			http://www.springframework.org/schema/context 
			http://www.springframework.org/schema/context/spring-context.xsd 
			http://www.springframework.org/schema/aop 
			http://www.springframework.org/schema/aop/spring-aop.xsd 
			http://www.springframework.org/schema/tx 
			http://www.springframework.org/schema/tx/spring-tx.xsd ">
		
	<!-- 支持注解 -->
	<context:annotation-config/>
			 
    <!-- 组件扫描 -->
    <context:component-scan base-package="com.share.*"/>
        
    <!--数据库配置:配置jdbc.properties  -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
	
	<!-- 3、配置dataSource数据源c3p0 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${jdbc.driverClassName}"/>
		<property name="jdbcUrl" value="${jdbc.url}"/>
		<property name="user" value="${jdbc.username}"/>
		<property name="password" value="${jdbc.password}"/>
		
		<!-- <property name="maxPoolSize" value="${c3p0.pool.maxPoolSize}"/>
		<property name="minPoolSize" value="${c3p0.pool.minPoolSize}"/>
		<property name="initialPoolSize" value="${c3p0.pool.initialPoolSize}"/>
		<property name="acquireIncrement" value="${c3p0.pool.acquireIncrement}"/> -->
	</bean>
	
	<!-- mybatis配置文件 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<!-- 自动扫描mapping.xml文件 -->  
        <property name="mapperLocations" value="classpath:com/share/mapping/*.xml"></property>
        <!-- <property name="configLocations" value="classpath:mybatis.xml"/> -->
        <!-- 定义包的别名 -->
        <property name="typeAliasesPackage" value="com.share.domain"></property>
	</bean>
	
	<!-- DAO接口所在包名,Spring会自动查找其下的类 -->  
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
        <property name="basePackage" value="com.share.dao" />  
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>  
  
    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->  
    <bean id="transactionManager"  
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="dataSource" />  
    </bean>  
    	
</beans>

 log4j.properties

log4j.rootLogger=INFO,stdout,file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%c]-[%p] %m%n 

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.File=${spring_springmvc_jpa.root}/shirodemo.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

log4j.logger.org.hibernate.tool.hbm2ddl=info

 3.代码:

实体类User.java

package com.share.domain;


/**
 * @author caifan
 *
 * 2015年5月28日
 */
public class User implements Serializable {

		private static final long serialVersionUID = 1L;

		private long id;//用户id
		private String username;//用户名
		private int age;//用户年龄
		private Date birthday;//用户生日

		public long getId() {
			return id;
		}

		public void setId(long id) {
			this.id = id;
		}

		public User() {
			super();
		}

		public String getUsername() {
			return username;
		}

		public void setUsername(String username) {
			this.username = username;
		}

		public int getAge() {
			return age;
		}

		public void setAge(int age) {
			this.age = age;
		}

		public Date getBirthday() {
			return birthday;
		}

		public void setBirthday(Date birthday) {
			this.birthday = birthday;
		}

		public User(String username, int age, Date birthday) {
			super();
			this.username = username;
			this.age = age;
			this.birthday = birthday;
		}

		@Override
		public String toString() {
			return "User [username=" + username + ", age=" + age + ", birthday="
					+ birthday + "]";
		}

}

 mybatis的映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  
<mapper namespace="com.share.dao.UserMapper">

	<resultMap type="User" id="userResultMap">
		<id property="id" column="id"/>
		<result property="username" column="username"/>
		<result property="age" column="age"/>
		<result property="birthday" column="birthday"/>
	</resultMap>

	<select id="findById" parameterType="int" resultType="User" resultMap="userResultMap">
		select * from user where id=#{id}
	</select>
  
</mapper>

 此处只写了一个映射方法,简单的通用的方法可以直接使用注解方式

UserMapper.java

注意:此处的方法名需与映射文件中的id对应

public interface UserMapper {
	/**
	 * 根据用户id查询用户 
	 */
	public User findById(Integer id); 
	
	/**
	 * 查询所有的用户
	 */
	@Select("select * from user")
	public List<User> findAllUser();

}

 UserService.java

@Service
public class UserService implements IUserService {
	@Autowired
	UserMapper userMapper;
	/**
	 * 通过用户id查询用户信息 
	 */
	@Override
	public User findById(Integer id) {
		return userMapper.findById(id);
	}
	
	/**
	 * 查询所有的用户
	 */
	@Override
	public List<User> findAllUser() {
		return userMapper.findAllUser();
	}

}

 Controller层

@Controller
public class UserController {
	@Autowired
	IUserService userService;
	
	@RequestMapping(value="/index")
	public String init(HttpServletRequest request) {
		String parameter = request.getParameter("id");
		User user = null;
		//if(parameter != null && parameter.trim().length() > 0) {
			//user = userService.findById(Integer.valueOf(parameter));
			user = userService.findById(1);
		//}
		request.setAttribute("user", user);
		return "/test";
		
	}
	
	/**
	 * 查询所有用户信息
	 */
	@RequestMapping(value="/allUser")
	public String getAllUser(HttpServletRequest request) {
		List<User> allUser = userService.findAllUser();
		if(allUser != null && allUser.size() > 0) {
			request.setAttribute("userList", allUser);
		}
		return "/users";
	}

}

 页面见附件,没什么大用处,只是作为测试demo

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics