今天花了一下午 ,以前一直使用的是ibatis, 看下新技术更新了,我还是要跟上,简单的写了一个小例子,望前辈们指点
第一步:案例结构
第二步:需要的jar包
第三步:配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 解决工程编码过滤器 -->
<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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置spring mvc + spring -->
<servlet>
<servlet-name>spring3mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring3mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
第四步:配置src下的applicationContext.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- 引入jdbc配置文件 -->
<context:property-placeholder
location="/WEB-INF/classes/mysql.properties" />
<!-- 配置dbcp数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driverName}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${username}"></property>
<property name="password" value="${password}"></property>
<!-- 连接池的最大值 -->
<property name="maxActive" value="30"></property>
<!-- 最大空闲时,当经过一个高峰之后,连接池可以将一些用不到的连接释放,一直减少到maxIdle为止 -->
<property name="maxIdle" value="10"></property>
<!-- 当最小空闲时,当连接少于minIdle时会自动去申请一些连接 -->
<property name="minIdle" value="5"></property>
<!-- 最大等待时间 5秒钟-->
<property name="maxWait" value="5000"></property>
</bean>
<!-- 创建SqlSessionFactory,同时指定数据源 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 创建事务管理器-->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 扫描com这个包里的所有类,把里面配上相应注解的类全都放在容器中进行管理 -->
<context:component-scan base-package="com.bao"/>
<!-- 添加注解驱动 -->
<mvc:annotation-driven />
<!-- 定义跳转的文件的前后缀 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个
可用的url地址 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
<!-- 注入sqlSession -->
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.bao.dao.UserDao"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
</beans>
第五步:配置jdbc连接数据库字符
driverName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=1234
第六步:配置mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTDConfig 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<mapper resource="com/bao/entity/User_Mapper.xml"/>
</mappers>
</configuration>
第七步:配置User_Mapper.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.bao.dao.UserDao">
<resultMap type="com.bao.entity.UserInfo" id="User_id" autoMapping="true">
<id property="userId" column="userId"/>
<result property="userName" column="userName"/>
<result property="userPwd" column="userPwd"/>
</resultMap>
<select id="queryObject" resultMap="User_id" parameterType="String">
select * from userInfo where userName = #{uname}
</select>
<select id="queryList" resultMap="User_id">
select * from userInfo
</select>
</mapper>
第八步:entity
package com.bao.entity;
public class UserInfo {
private int userId;
private String userName;
private String userPwd;
public UserInfo() {
super();
}
public UserInfo(int userId, String userName, String userPwd) {
super();
this.userId = userId;
this.userName = userName;
this.userPwd = userPwd;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
}
第九步:控制层UserController
package com.bao.Controller;
import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
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.bao.entity.UserInfo;
import com.bao.services.UserServices;
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserServices userServices;
@RequestMapping(value="/login",method=RequestMethod.GET)
public String login(){
return "login";
}
@RequestMapping(value="/login",method=RequestMethod.POST)
public String login(UserInfo userInfo,Model model) throws SQLException{
UserInfo user = userServices.getUser(userInfo.getUserName());
if(user!=null){
if(user.getUserPwd().equals(userInfo.getUserPwd())){
return "redirect:/user/list";
}
}
model.addAttribute("error", "用户名或密码错误");
return "login";
}
@RequestMapping(value="/list",method=RequestMethod.GET)
public String list(Model m) throws SQLException{
List<UserInfo> list = userServices.list();
m.addAttribute("list", list);
return "list";
}
public void setUserServices(UserServices userServices) {
this.userServices = userServices;
}
}
第十步:dao
package com.bao.dao;
import java.sql.SQLException;
import java.util.List;
import org.springframework.transaction.annotation.Transactional;
import com.bao.entity.UserInfo;
public interface UserDao {
public UserInfo queryObject(String parameter)throws SQLException;
public List<UserInfo> queryList() throws SQLException;
@Transactional
public void addObj(String parameter) throws SQLException;
@Transactional
public void editObj(String parameter) throws SQLException;
@Transactional
public void del(String parameter) throws SQLException;
}
第十一步:services
1.接口
package com.bao.services;
import java.sql.SQLException;
import java.util.List;
import com.bao.entity.UserInfo;
public interface UserServices {
UserInfo getUser(String uname) throws SQLException ;
List<UserInfo> list() throws SQLException ;
}
2.实现类
package com.bao.services;
import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import com.bao.dao.UserDao;
import com.bao.entity.UserInfo;
@Controller("userServices")
public class UserServicesImpl implements UserServices {
@Resource
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public UserInfo getUser(String uname) throws SQLException {
return userDao.queryObject(uname);
}
@Override
public List<UserInfo> list() throws SQLException {
return userDao.queryList();
}
源码下载 (11M) (点进去在刷新下界面就可以下载)
也可以进入CSDN下载链接:http://download.csdn.net/detail/x598562348/6965879