spring + springmvc + mybatis 框架的搭建

标签:?java??spring??springmvc??mybatis??ssm

?

一、创建工程

我们采用的编辑器为idea,使用eclipse、myeclipse的小伙伴,虽然创建的方法不同,但是其中的配置文件是一样的。也可以参照进行配置。

选择框框里的属性,点击next,然后填写工程名,这里我们将其命名为ssm,那么我们的工程就创建好了。

二、导入jar包

我们需要导入的jar包有:

有很多同学不会导入jar包,总是用到那个包了就百度一下各种奇葩的下载,这里我推荐使用maven依赖包,在maven仓库中你可以找到所有你想要的jar包,如下:

选择第一个mybatis点进去,选择相应的版本,我们选择3.2.7

版本选择好了之后点进去,会看见下面的东西,我们复制如下的一段代码

?

然后在idea打开project中的 project struct,如图所示:

点进去,将我们复制的代码,粘贴即可导入

?

重复以上步骤将所需要的jar包完全导入。

三、搭建工程目录

我们首先创建如下的工程目录,我会逐一介绍这些目录以及文件的作用

Config:存放spring、springmvc、mybatis等的配置文件

applicationContext.xml:spring的配置文件,用于加载数据源,管理事物、SqlsessionFactory、mapper、service



    
    
    
    
        
        
        
        
    
    
    
        
        
        
        
    

    
    
        
        
    
    
    
        
    

    
    
        
            
            
            
            
        
    
    
        
    
    
    

?

db.properties:用于存放数据库信息的配置文件,这里要根据你自己的情况进行填写

jdbc.jdbcUrl = jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
jdbc.driverClass = com.mysql.jdbc.Driver
jdbc.user = root
jdbc.password = 168168

log4j.priperties:配置控制台打印日志的配置文件,公共的

# Root logger option
log4j.rootLogger=DEBUG, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

springmvc.xml:springmvc的配置文件,用于配置Handler即Controller以及处理器适配器、处理器映射器、视图解析器



    
    
    
    

    
    
        
            
                itemController
            
        
    
    
    
    
    
    
    
    
    
    

SqlmapConfig.xml:mybatis的配置文件,用于加载mapper.xml以及一些别名的配置





    
        
        
        
        
    

    
    
        
    


四、从mapper 到 service 再到 controller开发目录

首先我们创建user.java这个属性类,当然这个文件可以使用mybatis逆向工程直接生成,我们这里因为只有一张表,所以不用此方法,如果有时间我会专门写一篇来讨论,逆向工程。user.java如下

package pojo;

import java.util.Date;

public class user {
    int id;
    String username;
    Date birthday;
    String address;

    public int getId() {
        return id;
    }

    @Override
    public String toString() {
        return "user{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", birthday=" + birthday +
                ", address='" + address + '\'' +
                '}';
    }

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

    public String getUsername() {
        return username;
    }

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

    public Date getBirthday() {
        return birthday;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public void setBirthday(String s) {
    }
}

?

首先,我们创建usermapper.xml:此文件用于编写sql语句的statement





    
    

然后我们开发mapper的接口,在dao文件目录下创建userMapper.java的接口,这其中有很多细枝末节的东西我们此次的目的时熟悉整个框架的运作体系,因此不做赘述,userMapper.java文件如下





    
    

写到这里我们dao层就开发完毕了,我们可以见一个test文件测试一下,即TestUserMapperImpl.java

package test;

import dao.userMapper;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import pojo.user;

import java.util.List;

public class TestUserMapperImpl {
    private ApplicationContext applicationContext;
    @Before
    public void setup() throws Exception{
//        创建spring容器
        applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    }
    @Test
    public void TestfindUserById() throws Exception {
        userMapper userMapper = (dao.userMapper) applicationContext.getBean("userMapper");
        List user = userMapper.findUserByName("周");
        System.out.print(user);
    }

}

如果控制台出现user的list,则说明dao层通了

接下来,我们开发service层和controller层,这里面会用到注解开发,这都是在springmvc里配置过的,如果有时间我会专门写的,创建UserService.java接口,其实这文件和usermapper接口时一样的,不过多了一个实现类,和原始的dao开发方式一样

package service;

import pojo.user;

import java.util.List;

public interface UserService {
    public user findUserById(int id) throws Exception;
    public List findUserByName(String username) throws Exception;
}

紧接着我们编写他的实现类UserServiceImpl.java,为controller层提供数据库资料提供的方法

package serviceimpl;

import org.springframework.beans.factory.annotation.Autowired;
import pojo.user;
import service.UserService;

import java.util.List;

public class UserServiceImpl implements UserService {

    @Autowired
    private dao.userMapper userMapper;
    @Override
    public user findUserById(int id) throws Exception {
        return null;
    }

    @Override
    public List findUserByName(String username) throws Exception {
        return userMapper.findUserByName(username);
    }
}

最后我们开发controller层,用于对url进行解析,得到他的逻辑视图并将我们取得的数据填写进jsp,这里其实就是controller层和前端jsp页面的交互了。

package controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import pojo.user;
import service.UserService;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

@Controller
public class UserController {
//    注入service
    @Autowired
    private UserService userService;

    @RequestMapping("/queryUsers.action")
    public ModelAndView queryUsers(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//        调用service查询用户列表
        List list = userService.findUserByName("周");
//        httpServletRequest.setAttribute("user",user);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("list",list);
        modelAndView.setViewName("index.jsp");
        return modelAndView;
    }
}

?

五、配置web.xml

在web.xml中我们需要配置spring的配置文件的位置、servlet(springmvc)的配置文件的地址以及servletmapping



    
        contextConfigLocation
        classpath:applicationContext.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            
            springmvc.xml
        
    
    
        springmvc
        
        *.action
    

最后我们写一个jsp页面,看能否呈现结果

这里我们直接修改index,jsp为

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: mi
  Date: 2018/8/6
  Time: 18:11
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


  $Title$



    
学号 姓名 出生日期
${item.id} ${item.username} ${item.birthday}

至此我们整个工程,ssm框架已经完成,我们启动tomcat服务器测试一下吧

ok,没问题,我们输入经过验证的url?http://localhost:8081/queryUsers.action

ok,果然将我们查询的数据显示出来了,框架完成!有需要的可以私聊我源码

联系方式QQ:369212851 验证问题:csdn

原文链接:加载失败,请重新获取