源代码:https://download.csdn.net/download/weixin_42493072/11262891
Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new
一个对象,而是让Spring框架帮你来完成这一切。
SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
mybatis
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。
下面,我将分享我使用IDEA,利用MAVEN管理项目,整合SSM框架搭建一个项目,实现对数据库中UserInfo表中数据的查询。
一、数据库的建立
我是在之前已经存在的数据库paper中新建了一个表userinfo表,并向其中插入了一条数据。
二、新建Maven项目
1.File—>New—>Project
Maven -> 勾选 Create from archetype -> 选择 maven-archetype-webapp–>next
3.在弹出的new project 选项卡中填写GroupId和Artifactid,其中GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构,ArtifactID是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。对于入门练习,这两项可以随意填写。
4.点击next后,选择Maven版本,点击选择自己安装的maven所在的路径,点击ok,再点击next。
5.填写项目名称Project name,点击Finish。
新建后的项目如下图所示:
6.在项目的根目录下新建target文件夹,系统自动将其设置为“Excluded”
右击test–>New–>Directory–>命名为target
7.在src/main目录下新建Directory:“java”,并将其设置为“Source Root”(即:此项目默认的代码文件源目录)
8.同理,在src/main目录下新建Directory:“resources”,并将其设置为“Resources Root”
9.在刚才新建的java文件下新建“com”包,再在com包下新建四个包,分别命名为:bean,service,dao,controller。
上面新建的四个包:bean,service,dao,controller,其所存放的分别是:
bean: 存放自定义的java类,理论上每个数据库表都应有一个对应的java类。比如:我的userinfo表应该新建一个UserInfo类,每个类的属性设为private,并提供public属性的getter/setter方法让外界访问
service:定义接口,包含系统所提供的功能。(之后还会在service包下再新建impl包)。
dao:定义接口,包含与数据库进行交互的功能。
controller:控制器,负责接收页面请求,转发和处理。
10.在resource包下新建Directory:“mapper”(用于存放xxxMapper.xml文件)和“spring”(用于存放spring-xxx.xml配置文件),新建文件:“db.properties”(mysql数据库配置文件),”log4j.properties”(日志输出配置文件),”mybatis-config.xml”(mybatis框架配置文件),“applicationContext.xml”。
11.在webapp目录下新建新建Directory:“jsp”,用于存放xxx.jsp显示界面。
补充之后的项目目录如下图所示,至此项目骨架搭建完毕,开始写代码实现功能。
三、编码实现功能
对项目的pom.xml文件进行配置,在此文件中配置项目所需要的jar包。
pom.xml
4.0.0
test
test
1.0-SNAPSHOT
war
test Maven Webapp
http://www.example.com
UTF-8
1.7
1.7
5.0.2.RELEASE
3.2.6
1.7.7
1.2.17
0.9.5.2
1.1.2
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.2
javax
javaee-api
7.0
mysql
mysql-connector-java
5.1.30
commons-dbcp
commons-dbcp
1.2.2
jstl
jstl
1.2
log4j
log4j
${log4j.version}
com.mchange
c3p0
${c3p0.version}
taglibs
standard
${taglibs.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
javax.servlet
javax.servlet-api
3.1.0
provided
javax.servlet.jsp
javax.servlet.jsp-api
2.3.1
provided
test
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
applicationContext.xml
下面开始写java代码
1.bean包下新建类UserInfo.java
package com.bean;
public class UserInfo {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "UserInfo{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
2.在service包中新建接口 IUserService:
package com.service;
import com.bean.UserInfo;
import java.util.List;
public interface IUserService {
List findall();//查询方法
}
3.在service包下新建impl包,并在此包中新建UserService.java
package com.service.impl;
import com.bean.UserInfo;
import com.dao.IUserDao;
import com.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public List findall() {
return userDao.findall();
}
}
4.在dao包中新建接口 IUserDao.java
package com.dao;
import com.bean.UserInfo;
import java.util.List;
public interface IUserDao {
public List findall();
public int adduser(UserInfo userinfo);
}
5.在controller包中新建 UserController.java
package com.controller;
import com.bean.UserInfo;
import com.service.IUserService;
import com.service.impl.UserService;
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 javax.xml.registry.infomodel.User;
import java.util.List;
//control层实现页面跳转
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("/findAll.do")
public ModelAndView findall() {
List all = userService.findall();
ModelAndView mv=new ModelAndView();
mv.addObject("userinfos", all);
mv.setViewName("allUser");
return mv;
}
}
6.在resource/mapper包下新建 UserMapper.xml(mybatis框架mapper代理开发配置文件)
7.在resource/spring包下分别新建配置文件: spring-mvc.xml
spring-mvc.xml
8.在db.properties文件中配置mysql数据库(这里的数据库名、表名,用户名,密码一定要记得修改!!!)。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/paper?useSSL=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
9.在log4j.properties文件中配置日志设定
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
10.配置web.xml文件
Archetype Created Web Application
contextConfigLocation
classpath*:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
org.springframework.web.context.request.RequestContextListener
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
characterEncodingFilter
/*
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/spring-mvc.xml
1
dispatcherServlet
*.do
11.修改index.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
Hello World!
点击此处跳转
12在webapp/jsp包下新建allUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
user列表
四、利用tomcat进行项目部署
IDEA配置tomcat:
1.点击上方的 Run 选项,选择Edit Configuration
2.选择templates -> Tomcat Server-> local 选择下载安装到本地的tomcat服务器的地址
3切换到Deployment选项页 点击 + 号选择 Arctifact
4.添加 项目名:war exploded 打包
5.最后在Application context 中选择 空白 那一项,点击 Apply 应用。
6.最后切换到index.jsp界面,右键Run’index.jsp’运行项目
五、运行界面
点击链接后,跳转到下面的界面:
源代码:https://download.csdn.net/download/weixin_42493072/11262891