1.1 步骤一:导入需要的依赖
mybatis,mysql,log4j,ehcache,pageHelper
spring-core,spring-beans,spring-context,spring-jdbc,spring-aop,c3p0/dbcp/durid
spring-web,spring-webmvc,javaee-api,jackson,commons-io,commons-fileupload,jstl
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<!--引入需要的ehcache插件-->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>1.2.3</version>
</dependency>
<!--mybatis整合ehcache的jar-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-ehcache</artifactId>
<version>1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>javaee</groupId>
<artifactId>javaee-api</artifactId>
<version>5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
1.2 创建配置文件
mybatis-config.xml
applicationContext.xml
datasource.properties
log4j.properties
-----------------------------------
ehcache.xml
generator.xml
1.3 搭建实体层
User,Role,Bill,Provider,Address
1.4 新建Mapper层接口,新建业务方法
public interface Smbms_UserMapper {
//登陆
public Smbms_User userLogin(String username,String password);
}
1.5 创建Mapper接口的配置文件
<!--登陆SQL-->
<select id="userLogin" resultType="com.wdksoft.entity.Smbms_User">
select * from smbms_user where userCode=#{userCode} and userPassword=#{userPassword}
</select>
1.6 配置Mybatis大配置文件
1.6.1 开启别名
1.6.2 开启日志
1.6.3 加载小配置文件
1.6.4 如果需要用到分页pageHelper插件,则在Myabtis配置文件中开启插件
<!--根节点-->
<configuration>
<!--开启日志-->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<!--别名配置-->
<typeAliases>
<package name="com.wdksoft.entity"/>
</typeAliases>
<!--开启插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper"></plugin>
</plugins>
<!--关联小配置文件-->
<mappers>
<package name="com.wdksoft.mapper"/>
</mappers>
</configuration>
1.7 在Spring大配置文件中配置Mybaits环境
<!--加载数据源配置文件-->
<context:property-placeholder location="classpath:datasource.properties"/>
<!--配置数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--SqlSessionFactory工厂-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!--开启Mapper层扫描-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.wdksoft.mapper"/>
</bean>
1.8 新建Service层接口
public interface Smbms_UserService {
//登陆
public Smbms_User userLogin(String userCode,String userPassword);
}
1.9 新建Service层接口的实现类,调用Mapper层对象
public class Smbms_UserServiceImpl implements Smbms_UserService {
//植入Mapper层对象
private Smbms_UserMapper smbms_userMapper;
@Override
public Smbms_User userLogin(String userCode, String userPassword) {
return smbms_userMapper.userLogin(userCode,userPassword);
}
public Smbms_UserMapper getSmbms_userMapper() {
return smbms_userMapper;
}
public void setSmbms_userMapper(Smbms_UserMapper smbms_userMapper) {
this.smbms_userMapper = smbms_userMapper;
}
}
2.0 配置Spring大配置文件,将Mapper层和Service层注入到容器当中
<!--Mapper层代理工厂生成Mapper对象-->
<bean id="smbms_UserMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<!--生成该接口的代理对象-->
<property name="mapperInterface" value="com.wdksoft.mapper.Smbms_UserMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
<!--注入Service层-->
<bean id="smbms_UserService" class="com.wdksoft.service.impl.Smbms_UserServiceImpl">
<property name="smbms_userMapper" ref="smbms_UserMapper"/>
</bean>
2.1 测试,使用spring-test
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
要求junit版本必须不能低于4.12版本
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:applicationContext.xml")
public class SpringTest {
@Resource
private Smbms_UserService smbms_userService;
@Test
public void loginTest(){
Smbms_User smbms_user = smbms_userService.userLogin("admin", "admin");
System.out.println(smbms_user);
}
}
2.2 新建一个Controller控制器
public class SmbmsUserController implements Controller {
//植入Service层对象
private Smbms_UserService smbms_userService;
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView modelAndView=new ModelAndView();
String userCode = request.getParameter("userCode");
String userPassword = request.getParameter("userPassword");
Smbms_User smbms_user = smbms_userService.userLogin(userCode, userPassword);
if(smbms_user!=null){
request.getSession().setAttribute("user",smbms_user);
modelAndView.setViewName("success");
}else{
modelAndView.setViewName("login");
}
return modelAndView;
}
public Smbms_UserService getSmbms_userService() {
return smbms_userService;
}
public void setSmbms_userService(Smbms_UserService smbms_userService) {
this.smbms_userService = smbms_userService;
}
}
2.3 将控制器注入到容器当中,配置视图解析器,释放静态资源
<!--注入Controller-->
<bean id="/user" class="com.wdksoft.controller.SmbmsUserController">
<property name="smbms_userService" ref="smbms_UserService"/>
</bean>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--释放静态资源-->
<mvc:default-servlet-handler/>
2.4 配置web.xml
<!--编码过滤器-->
<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>
<!--中央调度器-->
<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:applicationContext.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>