利⽤ssm框架实现⽤户登录操作_SpringMVC详解SSM三⼤框
架整合之登录功能实现
1、整合思路
①、表现层,也就是 Controller,由 SpringMVC 来控制,⽽SpringMVC 是Spring 的⼀个模块,故不需要整合。
②、业务层,也就是 service,通常由 Spring 来管理 service 接⼝,我们会使⽤ xml 配置的⽅式来将 service 接⼝配置到 spring 配置⽂件中。⽽且事务控制⼀般也是在 service 层进⾏配置。
③、持久层,也就是 dao 层,⽽且包括实体类,由 MyBatis 来管理,通过 spring 来管理 mapper 接⼝,使⽤mapper的扫描器⾃动扫描mapper接⼝在spring中进⾏注册。
很明显,spring 在三⼤框架的整合中占据⾄关重要的地位,类似于⼀个⼤管家,将 MyBatis 和 SpringMVC 揉合在⼀起。
2、准备环境
①、数据库环境
数据库类型:MySQL 5.1
web端登录数据库名称:ssm
数据表:user
②、开发⼯具 eclipse
③、JDK 1.7
④、mybatis 3.3
⑤、SpringMVC 4.2.4
⑥、Spring 4.2.4
⑦、数据库连接池 dbcp1.2.2
⑧、数据库驱动包mysql5.1.26
⑨、⽇志 log4j 1.2
案例需求:输⼊⽤户名和密码进⾏登录验证
具体的 jar 下载见上⾯的源码下载链接!
项⽬的⽬录结构为:
3、整合 Dao 层
也就是整合 MyBatis 和 Spring
①、在 db.properties ⽂件中,保存数据库连接的基本信息
#db.properties
dataSource=org.apachemons.dbcp.BasicDataSource
sql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ssm
username=root
password=root
分别是数据库连接池数据源,数据库连接驱动,数据库连接URL,数据库连接⽤户名,数据库连接密码
②、mybatis全局配置⽂件 l
1、xxxMapper 接⼝必须要和 l ⽂件同名且在同⼀个包下,也就是说 l ⽂件中的namespace是UserMapper接⼝的全类名
2、xxxMapper接⼝中的⽅法名和 l ⽂件中定义的 id ⼀致
3、xxxMapper接⼝输⼊参数类型要和 l 中定义的 parameterType ⼀致
4、xxxMapper接⼝返回数据类型要和 l 中定义的 resultType ⼀致
③、配置 Spring ⽂件
我们需要配置数据源、SqlSessionFactory以及mapper扫描器,由于这是对 Dao 层的整合,后⾯还有对于 业务层,表现层等的整合,为了使条⽬更加清新,我们新建 config/spring ⽂件夹,这⾥将配置⽂件取名为 l 放⼊其中。
xmlns:xsi="/2001/XMLSchema-instance" xmlns:mvc="/schema/mvc"
xmlns:context="/schema/context"
xmlns:aop="/schema/aop" xmlns:tx="/schema/tx"
xsi:schemaLocation="/schema/beans
④、根据逆向⼯程⽣成 po 类以及 mapper ⽂件
由于我们这⾥是进⾏登录验证,所以在 UserMapper.java 中添加如下代码:
package com.ys.mapper;
import com.ys.po.User;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface UserMapper {
//通过⽤户名和密码查询User
User selectUserByUsernameAndPassword(User user);
}
l
select * from user where username = #{username,jdbcType=VARCHAR} and password = #{password,jdbcType=VARCHAR}
dao 层整合完毕之后,我们进⾏⼀个测试,要养成每做完⼀个⼩模块必须测试的习惯。步步为营,如果整个项⽬配置完了然后在进⾏测试,那么有问题进⾏排除会变得很困难。
package st;
import org.junit.Before;
import org.junit.Test;
import t.ApplicationContext;
import t.support.ClassPathXmlApplicationContext;
import com.ys.mapper.UserMapper;
import com.ys.po.User;
public class DaoTest {
ApplicationContext context = null;
@Before
public void init(){
context = new ClassPathXmlApplicationContext("classpath:l");
}
@Test
public void testSelectByPrimaryKey(){
UserMapper userMapper = (UserMapper) Bean("userMapper");
User user = userMapper.selectByPrimaryKey(1);
System.out.Password());
}
}
这⾥是根据 user 表的 id 进⾏查询。如果能打印出user对象的值,那么前⾯的配置是 OK的。
4、整合 service
前⾯我们整理了,这层就是⽤ Spring 来管理 service 接⼝,我们会使⽤ xml 配置的⽅式来将 service 接⼝配置到 spring 配置⽂件中。⽽且事务控制也是在 service 层进⾏配置。
这⾥我们以登录
①、定义 service 接⼝
package com.ys.service.impl;
import com.ys.po.User;
public interface IUserService {
//通过⽤户名和密码查询User
public User selectUserByUsernameAndPassword(User user);
}
②、编写 service 实现类
package com.ys.service;
import org.springframework.beans.factory.annotation.Autowired;
import com.ys.mapper.UserMapper;
import com.ys.po.User;
import com.ys.service.impl.IUserService;
public class UserServiceImpl implements IUserService{
@Autowired
private UserMapper userMapper; //通过@Autowired向spring容器注⼊UserMapper
//通过⽤户名和密码查询User
@Override
public User selectUserByUsernameAndPassword(User user) {
User u = userMapper.selectUserByUsernameAndPassword(user);
return u;
}
}
通过@Autowired向spring容器注⼊UserMapper,它会通过spring配的扫描器扫描到,并将对象装载到spring容器中。
③、在spring容器中配置 Service 接⼝,这⾥我们使⽤ xml 的⽅式
在 config/spring ⽬录下,新建 l
xmlns:xsi="/2001/XMLSchema-instance" xmlns:mvc="/schema/mvc" xmlns:context="/schema/context"
xmlns:aop="/schema/aop" xmlns:tx="/schema/tx"
xsi:schemaLocation="/schema/beans
④、在spring容器中配置 事务处理
在 config/spring ⽬录下,新建 l
xmlns:xsi="/2001/XMLSchema-instance" xmlns:mvc="/schema/mvc" xmlns:context="/schema/context"
xmlns:aop="/schema/aop" xmlns:tx="/schema/tx"
xsi:schemaLocation="/schema/beans
4、整合 SpringMVC
①、配置前端控制器
在 l ⽂件中添加如下代码:
xmlns="java.sun/xml/ns/javaee"
xsi:schemaLocation="java.sun/xml/ns/javaee
SpringMVC_01
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:l
springmvc
/
②、配置处理器映射器、处理器适配器、视图解析器
在 config/spring ⽬录下新建 l⽂件
xmlns:xsi="/2001/XMLSchema-instance"
xmlns:mvc="/schema/mvc"
xmlns:context="/schema/context"
xmlns:aop="/schema/aop"
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论