首页 > 初学ssm框架的信息

初学ssm框架的信息

     ssm框架,就是Spring ,SpringMVC ,mybstis 的简称,我们是从mybstis 开始学起的,mybatis的作用作为一个连接数据库的框架,可以很好配置连接好数据库, 有mybatis,我们对数据库增删改查的操作更为简便了。SSM框架,我们用MAVEN工具对他们进行管理,maven 工具的主要作用就是为我们的工程自动配置好我们所需的架包,是通过POM.xml 文件进行依赖管理的。

ssm02这个工程使用maven工具进行管理和配置的,他的主要作用是实现用户的登陆和注册!以及对学生信息的管理,当然其中包括了增删改查的四个基本的操作,详细的具体的过程直接看后面的代码!

1 首先是POM.xml 文件的配置,他的作用主要是添加依懒的关系和自动下载相关的包。

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">4.0.0com.zztyssm01war0.0.1-SNAPSHOTssm01 Maven Webapphttp://maven.apache.org  4.0.2.RELEASE  3.1.1  1.7.7 1.2.17    junit junit 4.11  test    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.1.0    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.alibaba fastjson 1.1.41   org.slf4j slf4j-api ${slf4j.version}   org.slf4j slf4j-log4j12 ${slf4j.version}     org.codehaus.jackson jackson-mapper-asl 1.9.13    commons-fileupload commons-fileupload 1.3.1   commons-io commons-io 2.4   commons-codec commons-codec 1.9  ssm01

  2 、配置resource下面的四个文件。

3、首先对resource下的jdbc.properties进行配置 ,作用就是连接你的数据库的配置

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ssm01
username=root
password=root
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000

4、接着是log4.properties的配置,它的作用是用来记录运行时产生的信息。

#定义LOG输出级别
log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n

5、接着是spring mvc .xml的配置。


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-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">package="zizai.controller" />class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">text/html;charset=UTF-8<beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> class="org.springframework.web.servlet.view.InternalResourceViewResolver">class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    

6、spring mybatis.xml  他的作用就是整合Spring 和Mybatis。


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-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">package="zizai.*" />class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">class="org.mybatis.spring.SqlSessionFactoryBean">class="org.mybatis.spring.mapper.MapperScannerConfigurer">class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

 

7、还有的就是webapp 下面的WEB-INF下面的web.xml 的配置了


xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0">Archetype Created Web ApplicationcontextConfigLocationclasspath:spring-mybatis.xmlencodingFilterclass>org.springframework.web.filter.CharacterEncodingFilterclass>trueencodingUTF-8encodingFilter/*org.springframework.web.context.ContextLoaderListenerorg.springframework.web.util.IntrospectorCleanupListenerdefault/resources/*SpringMVCorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:spring-mvc.xml1trueSpringMVC//index.jsp15

 8、我们现在要写的就是Controller层,Service接口层,ServiceImp接口的实现层!就一个列子为例来说明的吧!这个UserController层,主要是实现用户的登陆和注册以及修改用户的密码。

package zizai.controller;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import zizai.model.User;
import zizai.service.StudentService;
import zizai.service.UserService;@Controller  
@RequestMapping("/user") 
public class UserController {@Resourceprivate UserService userService;@Resourceprivate StudentService studentService;@RequestMapping("/showUser")  public String showUser(HttpServletRequest request,Model model){  int userId = Integer.parseInt(request.getParameter("id"));  User user = this.userService.getUserById(userId);  model.addAttribute("user", user);  return "showUser";  
} @RequestMapping("/table")  public ModelAndView showTable(HttpServletRequest request){  ModelAndView view = new ModelAndView("tables");return view; } @RequestMapping("/index")  public ModelAndView toIndex(HttpServletRequest request){  ModelAndView view = new ModelAndView("login");return view;
} @RequestMapping("/login2")  public ModelAndView login(HttpServletRequest request,Model model){String  username = request.getParameter("name");String pwd = request.getParameter("pwd");User user = this.userService.getUserByName(username);String url="login";if(user!=null&&pwd.equals(user.getPwd())){url="sucess";}else{url="fail";}ModelAndView view = new ModelAndView(url);return view;} @RequestMapping("/register")  public ModelAndView register(HttpServletRequest request,Model model){     String  username = request.getParameter("name");String pwd = request.getParameter("pwd");User user = new User(); user.setName(username);user.setPwd(pwd);int i=this.userService.addUser(user);String url="register";if(username!=null||pwd!=null){        if(i>0){url="login";}else{url="fail";}                 }ModelAndView view = new ModelAndView(url);return view;} @RequestMapping("/updateUserPwd")  public String updateUserPwd(HttpServletRequest request,Model model){String name=request.getParameter("name");String pwd=request.getParameter("pwd");String pwd1=request.getParameter("pwd1");if(pwd1.equals(pwd)&&pwd1!=null){        User user=new User();user.setPwd(pwd);user.setName(name);int i=this.userService.updateUserPwdByName(user);        return "success";}else{return "fail2";}}@RequestMapping("/getUserByName")  public ModelAndView selectByName(HttpServletRequest request,Model model){String name = request.getParameter("name");User user=new User();user=this.userService.getUserByName(name);String url="getUserByName";if(name!=null){url="updateUserPwd";}        ModelAndView view = new ModelAndView();view.setViewName(url);view.addObject("xxx", user);return view;}}

useService 接口层

package zizai.service;import zizai.model.User;public interface UserService {public User getUserById(int id);public User getUserByName(String name);public int addUser(User user);public int updateUserPwdByName(User user);}

UserServiceImp 实现层

package zizai.serviceImp;import javax.annotation.Resource;import org.springframework.stereotype.Service;import zizai.dao.UserMapper;
import zizai.model.User;
import zizai.service.UserService;@Service("userService")
public class UserServiceImp implements UserService {@Resourceprivate UserMapper userMapper;public User getUserById(int id) {// TODO Auto-generated method stubreturn userMapper.selectByPrimaryKey(id);}public int addUser(User user) {// TODO Auto-generated method stubreturn userMapper.insert(user);}public User getUserByName(String name) {// TODO Auto-generated method stubreturn userMapper.selectByName(name);}public int updateUserPwdByName(User user) {// TODO Auto-generated method stubreturn userMapper.updateUserPwdByName(user);}}

model(USer model)层

package zizai.model;public class User {private Integer id;private String name;private String pwd;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name == null ? null : name.trim();}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd == null ? null : pwd.trim();}
}

 

mapping (USer mapping)



id, name, pwddelete from suserwhere id = #{id,jdbcType=INTEGER}insert into suser (id, name, pwd)values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{pwd,jdbcType=VARCHAR})insert into suser<if test="id != null" >id,if><if test="name != null" >name,if><if test="pwd != null" >pwd,if><if test="id != null" >#{id,jdbcType=INTEGER},if><if test="name != null" >#{name,jdbcType=VARCHAR},if><if test="pwd != null" >#{pwd,jdbcType=VARCHAR},if>update suser<if test="name != null" >name = #{name,jdbcType=VARCHAR},if><if test="pwd != null" >pwd = #{pwd,jdbcType=VARCHAR},if>where id = #{id,jdbcType=INTEGER}update suserset name = #{name,jdbcType=VARCHAR},pwd = #{pwd,jdbcType=VARCHAR}where id = #{id,jdbcType=INTEGER}update suserset pwd = #{pwd,jdbcType=VARCHAR}where name = #{name,jdbcType=VARCHAR}

dao (user Dao)

package zizai.dao;import zizai.model.User;public interface UserMapper {int deleteByPrimaryKey(Integer id);int insert(User record);int insertSelective(User record);User selectByName(String name);User selectByPrimaryKey(Integer id);int updateByPrimaryKeySelective(User record);int updateByPrimaryKey(User record);int updateUserPwdByName(User user);}

最后就是剩下WEB-INF 目录下的jsp文件夹下面的jsp 文件了。

login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
 
  登录  

欢迎来到自在天原的登陆页面

用户名:

    密码:

register.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
  
    注册      
 &nbsp; 用户名:
    密码:

 

转载于:https://www.cnblogs.com/chendezhen/p/8193655.html

更多相关:

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 这是第三部分,完成效果如下 图1 建图和导航 三、使用RTAB-Map进行建图和导航 1. rtab...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 由于之前的虚拟机性能限制,我在这个项目中使用了新的ubantu 16.04环境,虚拟机配置 内存 8GCPU...

  • [{name:1},{name:2}].forEach((v,i,ar) => {console.log(v,i,ar)});//基础遍历[{name:1},{name:2}].map((v) => v.name);//[1,2]返回对象数组中指定字段值的一位数组(不改变原始数组)[{name:1},{name:2},{name:3}...

  • 体验内容 使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。 1. 安装一些依赖包 sudo apt-get install ros-melodic-move-base* sudo apt-get install ros-melodic-map-server* sudo apt-get insta...

  • 前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射,比如http接口中 用户传入了url,我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C++ 并没有友好得支持这样的操作,而最近工作中需要通过C++实现http接口,这个过程想要代码实现得优雅...

  • 环境:Cmake3.10+OpenCV2.4.13.5+CUDA9.2 Problem CMake Warning at cmake/OpenCVPackaging.cmake:23 (message):CPACK_PACKAGE_VERSION does not match version provided by version...

  • 文章目录Step 1:glibc-2.17 被libc.so.6库依赖,升级glibc库Step2:升级编译器-->4.8.2可以正常编译glibc2.17Step3:修改ELF,降低ceph-mon依赖的库函数版本解决ceph-mon调用高版本libc库(修改动态库链接表ELF) Step 1:glibc-2.17 被lib...

  • Qt程序版本号使用 在pro文件中添加(版本号可以3段或者4段) VERSION=1.0.1.2DEFINES += APP_VERSION=\"$${VERSION}\" 实际代码中使用 QString version = APP_VERSION;qInfo()<<"版本信息:"<< version;...

  • 一:概述SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛。 Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP。SpringMVC是Spring实现的一个Web层,相当于Struts的框架,但是比Struts更加灵活和强大!Mybatis是 一个持久层...

  • AppDomain.CurrentDomain.ApplicationIdentity.CodeBase   获取作为URL的部署清单的位置 Eg:发布前地址为E:PROJECTWORKLandaV8inDebugxxxxx.xbap(xxxxx.xbap为部署站点下的文件),部署后获取的地址为http://192.168...

  •   1  启动Consul 2  创建springcloud-consul项目及三个子模块        2.1 数据模块consul-producer        2.2 数据消费模块consul-consumer        2.3 gateway网关模块 3  测试及项目下载    1、首先安装Consul并启动Consu...

  • 参考自: http://how2j.cn/k/search-engine/search-engine-springboot/1791.html?p=78908 工具版本: elasticsearch 6.2.2、 kibana 6.2.2,  下载地址: elasticsearch、kibana 下载demo 1、kotlin版sp...