Spring、SpringMVC、MyBatis整合

来源:互联网 发布:2016淘宝客计入权重吗 编辑:程序博客网 时间:2024/06/06 05:37

项目的目:做一个登陆页面inddex.jsp,然后在数据库中查询用户名和密码,如果匹配成功,跳转到success.jsp,不成功跳转到error.jsp



0项目下载

SSMDemo点击下载项目代码(超链接)


SSMDemo-lib点击下载(超链接)


1创建项目

2加入jar和三个框架的配置文件(注意配置文件的位置)



2.1)applicationContxt.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" xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- 配置自动扫描的包,使其自动注入到IOC容器 --><context:component-scan base-package="com.imooc.service"></context:component-scan><!-- 导入资源文件 --><context:property-placeholder location="classpath:db.properties" /><!-- 配置数据源 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="user" value="${jdbc.user}"></property><property name="password" value="${jdbc.password}"></property><property name="driverClass" value="${jdbc.driverClass}"></property><property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property><property name="initialPoolSize" value="${jdbc.initPoolSize}"></property><property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property></bean><!-- 配置MyBatis的SqlSession --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 配置MyBatis的配置的文件 --><property name="configLocation" value="classpath:mybatis.xml"></property></bean><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">    <!-- 自动扫描 com.imooc.dao下的interface,并加入IOC容器--><property name="basePackage" value="com.imooc.dao" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!-- 开启事务 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 可通过注解控制事务 --><tx:annotation-driven transaction-manager="transactionManager" /></beans>



2.2)applicationContext-mvc.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" xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- 配置自动扫描的包,使其自动注入到IOC容器 --><context:component-scan base-package="com.imooc.service"></context:component-scan><!-- 导入资源文件 --><context:property-placeholder location="classpath:db.properties" /><!-- 配置数据源 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="user" value="${jdbc.user}"></property><property name="password" value="${jdbc.password}"></property><property name="driverClass" value="${jdbc.driverClass}"></property><property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property><property name="initialPoolSize" value="${jdbc.initPoolSize}"></property><property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property></bean><!-- 配置MyBatis的SqlSession --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 配置MyBatis的配置的文件 --><property name="configLocation" value="classpath:mybatis.xml"></property></bean><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">    <!-- 自动扫描 com.imooc.dao下的interface,并加入IOC容器--><property name="basePackage" value="com.imooc.dao" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!-- 开启事务 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 可通过注解控制事务 --><tx:annotation-driven transaction-manager="transactionManager" /></beans>




2.3)mybatis.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"    "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- =====>设置别名: 将com.imooc.entity.User设置为User 如果不设置别名<select id="selectDemo" resultType="com.imooc.entity.User"> ***</select>设置别名            <select id="selectDemo" resultType="User">***</select> --><typeAliases><package name="com.imooc.entity"></package></typeAliases>        <!--添加mapper.xml--><mappers><mapper resource="com/imooc/mapper/UserMapper.xml" /></mappers></configuration>



2.4)db.properties

jdbc.user=rootjdbc.password=rootjdbc.driverClass=com.mysql.jdbc.Driverjdbc.jdbcUrl=jdbc:mysql://localhost:3306/textjdbc.initPoolSize=5jdbc.maxPoolSize=10#...



3将下面的配置加入到web.xml

<!-- 设置字符过滤器,防止乱码,必须加在所有的Filter之前 --><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><!-- SpringMVC --><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>


4创建package和class代码


UserMapper.java

package com.imooc.dao;public interface UserMapper {//根据username查询passwordString selectPassword(String username);}

User.java

package com.imooc.entity;public class User {private Integer id;private String username;private String password;public User() {super();}public User(String username, String password) {super();this.username = username;this.password = password;}/* * (non-Javadoc) *  * @see java.lang.Object#toString() */@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", password=" + password + "]";}/** * @return the id */public Integer getId() {return id;}/** * @param id *            the id to set */public void setId(Integer id) {this.id = id;}/** * @return the username */public String getUsername() {return username;}/** * @param username *            the username to set */public void setUsername(String username) {this.username = username;}/** * @return the password */public String getPassword() {return password;}/** * @param password *            the password to set */public void setPassword(String password) {this.password = password;}}

LoginHandler.java

package com.imooc.handler;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.imooc.entity.User;import com.imooc.service.UserService;@Controllerpublic class LoginHandler {@Autowiredprivate UserService userService;@RequestMapping("/login.action")public String login(User user){String password=userService.login(user.getUsername());if(!user.getPassword().equals(password)){return "error";}else{return "success";}}/** * @return the userService */public UserService getUserService() {return userService;}/** * @param userService the userService to set */public void setUserService(UserService userService) {this.userService = userService;}}


UserMapper.xml

<?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.imooc.dao.UserMapper"><select id="selectPassword"  resultType="String">select password from user where username = #{username}</select></mapper>

UserService.java

package com.imooc.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.imooc.dao.UserMapper;@Servicepublic class UserService {@Autowiredprivate UserMapper userDao;public String login(String username){return userDao.selectPassword(username);}public UserService() {super();}/** * @return the userDao */public UserMapper getUserDao() {return userDao;}/** * @param userDao the userDao to set */public void setUserDao(UserMapper userDao) {this.userDao = userDao;}}


5创建JSP

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><form action="login.action" method="post">username<input type="text"  name="username"><br/>password<input type="password"  name="password"><br/><input type="submit" value="Submit"></form></body></html>

success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"    pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Insert title here</title></head><body>success.jsp</body></html>

error.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"    pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Insert title here</title></head><body>error.jsp</body></html>





6总结

1 jar包问题,如果你的jar包有问题(http://pan.baidu.com/s/1pKOyrBP),当然我也很菜,jar包版本很乱,不报错就好

2还有一种省去MyBatis.xml的的整合方法,其实我感觉还是有比较好,而且这个配置文件你复制一下就好,也没有过繁琐的配置


原创粉丝点击