SSM框架详细整合教程(Spring+SpringMVC+MyBatis)

#可以灵活地指定日志输出格式,下面一行是指定具体的格式

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

spring-dao.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

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">

spring-db.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

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">

spring-tx.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

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:aop=“http://www.springframework.org/schema/aop”

xmlns:tx=“http://www.springframework.org/schema/tx”

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/aop

http://www.springframework.org/schema/aop/spring-aop-3.1.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">

<bean id=“transactionManager”

class=“org.springframework.jdbc.datasource.DataSourceTransactionManager”>

aop:config

<aop:pointcut id=“allServiceMethod” expression=“execution(* com.chillax.service..(…))”/>

<aop:advisor pointcut-ref=“allServiceMethod” advice-ref=“TxAdvice” />

</aop:config>

<tx:advice id=“TxAdvice” transaction-manager=“transactionManager”>

tx:attributes

<tx:method name=“*” propagation=“REQUIRED” rollback-for=“java.lang.Exception”/>

</tx:attributes>

</tx:advice>

3、在WEB-INF文件夹下添加/修改以下配置文件


spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

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">

<mvc:annotation-driven />

mvc:default-servlet-handler/

<context:component-scan base-package=“com.chillax.controller” />

web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

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 Application

/index.jsp

contextConfigLocation

classpath:applicationContext.xml

org.springframework.web.context.ContextLoaderListener

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

true

encoding

UTF-8

encodingFilter

/*

SpringMVC

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

/WEB-INF/spring-mvc.xml

1

true

SpringMVC

/

4、在src/main/java下添加如下包和类


UserController.java

package com.chillax.controller;

import java.util.List;

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 com.chillax.dto.User;

import com.chillax.service.IUserService;

@Controller

@RequestMapping(“/user”)

public class UserController {

@Resource

private IUserService userService;

@RequestMapping(“/userList”)

public String userList(HttpServletRequest request,Model model){

List uList = userService.getAllUser();

model.addAttribute(“uList”, uList);

return “userList”;

}

@RequestMapping(“/showUser”)

public String showUser(HttpServletRequest request,Model model){

int userId = Integer.parseInt(request.getParameter(“id”));

User user = userService.getUserById(userId);

model.addAttribute(“user”, user);

return “showUser”;

}

@RequestMapping(“/addUserUI”)

public String addUserUI(){

return “addUser”;

}

@RequestMapping(“/addUser”)

public String addUser(HttpServletRequest request,Model model){

User user = new User();

user.setName(String.valueOf(request.getParameter(“name”)));

user.setPassword(String.valueOf(request.getParameter(“password”)));

user.setAge(Integer.parseInt(String.valueOf(request.getParameter(“age”))));

userService.addUser(user);

return “redirect:/user/userList”;

}

}

IUserDao.java

package com.chillax.dao;

import java.util.List;

import java.util.Map;

import com.chillax.dto.User;

public interface IUserDao {

public User queryByPrimaryKey(Integer id);

public List getAllUser();

public void insertUser(User user);

public void insertUserByBatch(List list);

public void deleteByPrimaryKey(Integer id);

public void delteUserByBatch(Map<String,Object> params);

public void updateByPrimaryKey(User user);

}

User.java

package com.chillax.dto;

public class User {

private Integer id;

private String name;

private String password;

private Integer age;

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;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password == null ? null : password.trim();

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>

id, name, password, age

<select id=“queryByPrimaryKey” resultMap=“BaseResultMap”

parameterType=“java.lang.Integer”>

select

from user

where id = #{id,jdbcType=INTEGER}

select

from user

insert into user

id,

name,

password,

age,

#{id,jdbcType=INTEGER},

#{name,jdbcType=VARCHAR},

#{password,jdbcType=VARCHAR},

#{age,jdbcType=INTEGER},

insert into USER

(ID,

NAME,

PASSWORD,

AGE)

select A.* from

(

select

#{user.id,jdbcType=INTEGER},

#{user.name,jdbcType=VARCHAR},

#{user.password,jdbcType=VARCHAR},

#{user.age,jdbcType=INTEGER}

from dual

) A

delete from user

where id = #{id,jdbcType=INTEGER}

delete from user

where id IN

#{ids,jdbcType=DECIMAL}

update user

name = #{name,jdbcType=VARCHAR},

password = #{password,jdbcType=VARCHAR},

age = #{age,jdbcType=INTEGER},

where id = #{id,jdbcType=INTEGER}

IUserService.java

package com.chillax.service;

import java.util.List;

import com.chillax.dto.User;

public interface IUserService {

public User getUserById(int userId);

public void insertUser(User user);

public void addUser(User user);

public List getAllUser();

}

UserServiceImpl.java

package com.chillax.service.Impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.chillax.dao.IUserDao;

import com.chillax.dto.User;

import com.chillax.service.IUserService;

@Service(“userService”)

public class UserServiceImpl implements IUserService {

@Resource

private IUserDao userDao;

public User getUserById(int userId) {

return userDao.queryByPrimaryKey(userId);

}

public void insertUser(User user) {

userDao.insertUser(user);

}

public void addUser(User user) {

userDao.insertUser(user);

}

@Override

public List getAllUser() {

return userDao.getAllUser();

}

}

5、在WEB-INF文件夹下创建jsp文件夹,并添加userList.jsp,showUser.jsp、addUser.jsp


userList.jsp

<%@ page language=“java” import=“java.util.*” pageEncoding=“utf-8”%>

<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+“😕/”+request.getServerName()+“:”+request.getServerPort()+path+“/”;

%>

My JSP 'showUser.jsp' starting page

<c:forEach items=“${uList }” var=“u”>

用户名称:${u.name}

用户年龄:${u.age }


</c:forEach>

addUser.jsp

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+“😕/”+request.getServerName()+“:”+request.getServerPort()+path+“/”;

%>

My JSP 'addUser.jsp' starting page

userName:

password:

age:

showUser.jsp

<%@ page language=“java” import=“java.util.*” pageEncoding=“utf-8”%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+“😕/”+request.getServerName()+“:”+request.getServerPort()+path+“/”;

%>

My JSP 'showUser.jsp' starting page

${user.name }

6、创建数据库,并创建表


create database maventest;

use maventest;

CREATE TABLE user (

id int(12) NOT NULL AUTO_INCREMENT,

name varchar(50) NOT NULL,

password varchar(50) NOT NULL,

age int(9) NOT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

insert into user(id,name,password,age) values (1,‘admin’,‘admin’,22);

7、整个项目文件结构图


8、部署发布项目,进行测试


至此,框架搭建完成。

5.常见问题

======

问题1:pom.xml文件里的代码到哪里找?


解答:http://www.mvnrepository.com/

问题2:新建MAVEN项目过程中,出现下图错误?


**解决:**在MyEclipse的安装目录找到myeclipse.ini,将分配的堆内存加大

问题3:新建完工程后出现以下错误?


**解答:**在pom.xml添加以下代码即可,添加完代码就会自动下载好jar包

问题4:修改pom.xml时出现以下错误?


**解答:**这是由于jar包没有正确下载导致的,找到错误的jar包位置,将文件夹里的文件删掉,将pom.xml里该jar包的配置代码删除后再重新写上,让MAVEN重新下载jar包即可。

问题5:出现以下错误?


解答:

问题6:出现以下错误?


**解答:**将项目的jre版本换成1.7或者以上的版本即可

问题7:出现以下错误,并且已经确定jre是1.7版本或者以上版本。


**解答:**在pom.xml文件的的标签中加入以下代码,然后Update Project(参照问题5)

Maven_Project

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

问题8:访问报错


**解答:**请确认地址中的项目,跟项目中的Web Context-root地址一致。

问题9:直接导入代码报错


**解答:**如果想直接导入代码需要先做文章开头的1和2两步,即用一个自己的新的仓库来存储jar包,不然容易跟已有的仓库配置冲突,导致jar包无法下载或下载不全。下图是我导入的过程,下载jar的过程比较慢,并且下载完了还报错,但是报错并不影响项目的正确运行。

推荐阅读

====

如何写一份让 HR 眼前一亮的简历(附模板)

字节、美团、快手核心部门面试总结(真题解析)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家

在这里插入图片描述

在这里插入图片描述

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
ps://img-blog.csdn.net/20180119222422395?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdjEyMzQxMTczOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

问题9:直接导入代码报错


**解答:**如果想直接导入代码需要先做文章开头的1和2两步,即用一个自己的新的仓库来存储jar包,不然容易跟已有的仓库配置冲突,导致jar包无法下载或下载不全。下图是我导入的过程,下载jar的过程比较慢,并且下载完了还报错,但是报错并不影响项目的正确运行。

推荐阅读

====

如何写一份让 HR 眼前一亮的简历(附模板)

字节、美团、快手核心部门面试总结(真题解析)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-6f07Xzkv-1713341706885)]

[外链图片转存中…(img-xqTLj3De-1713341706885)]

[外链图片转存中…(img-cvmCn4oo-1713341706886)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家

[外链图片转存中…(img-34Huao8V-1713341706886)]

[外链图片转存中…(img-F1IKH8MT-1713341706886)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值