[【SSM】Eclipse使用Maven創(chuàng)建Web項(xiàng)目+整合SSM框架]
自己接觸ssm框架有一段時(shí)間了交胚,從最早的接觸新版ITOO項(xiàng)目的(SSM/H+Dobbu zk)份汗,再到自己近期來(lái)學(xué)習(xí)到的《淘淘商城》一個(gè)ssm框架的電商項(xiàng)目盈电。用過(guò),但是還真的沒(méi)有自己搭建過(guò)杯活,一直都是用別人搭建好的匆帚。所以,從網(wǎng)上找了一些材料旁钧,結(jié)合自己來(lái)解決過(guò)程中的一些問(wèn)題吸重,使自己對(duì)ssm框架理解更加深了,不為分享歪今,只是總結(jié)一下嚎幸,下次有機(jī)會(huì)再搭建的時(shí)候,直接看自己的博客彤委,省得找了鞭铆!
一、準(zhǔn)備環(huán)境:
maven:apache-maven-3.2.3
jdk:jdk1.8.0_25
tomcat:tomcat-6.0.37
二焦影、配置Maven车遂、jdk
1、Window——>Preferences——>Maven——>設(shè)置自己的Settings
2斯辰、Window——>Preferences——>Java——>Installed JREs——>Add
配置好maven之后舶担,就可以在本地設(shè)置好的地方看到對(duì)應(yīng)的Maven文件了,還有包含resp文件夾
三彬呻、新建Maven項(xiàng)目:
1衣陶、右擊——>New(或者是File——>New)——>other——>Maven——>Maven Project——>Next
2、這時(shí)候闸氮,我們就成功創(chuàng)建出一個(gè)Maven項(xiàng)目了剪况,項(xiàng)目結(jié)構(gòu)如下圖:
3、右擊項(xiàng)目蒲跨,選擇Properties進(jìn)行一些配置:
到這里译断,我們的Maven項(xiàng)目就建好了,接下來(lái)或悲,我們來(lái)整合搭建SSM([spring](http://lib.csdn.net/base/javaee) MVC + Spring + Mybatis)
首先我們來(lái)配置一些整合框架所必須要的jar包孙咪,也就是來(lái)配置我們的pom文件,然后直接alt+f5巡语,保存后翎蹈,就會(huì)自動(dòng)下載,存放在之前配置好的本地maven倉(cāng)庫(kù)中男公。
pox.xml配置依賴的內(nèi)容:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ssm</groupId>
<artifactId>Maven_Project</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Maven_Project Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 用來(lái)設(shè)置版本號(hào) -->
<properties>
<srping.version>4.0.2.RELEASE</srping.version>
<mybatis.version>3.2.8</mybatis.version>
<slf4j.version>1.7.12</slf4j.version>
<log4j.version>1.2.17</log4j.version>
</properties>
<!-- 用到的jar包 -->
<dependencies>
<!-- 單元測(cè)試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!-- 表示開(kāi)發(fā)的時(shí)候引入荤堪,發(fā)布的時(shí)候不會(huì)加載此包 -->
<scope>test</scope>
</dependency>
<!-- java ee包 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!-- spring框架包 start -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${srping.version}</version>
</dependency>
<!-- spring框架包 end -->
<!-- mybatis框架包 start -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- mybatis框架包 end -->
<!-- 數(shù)據(jù)庫(kù)驅(qū)動(dòng) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
<!-- 導(dǎo)入dbcp的jar包,用來(lái)在applicationContext.xml中配置數(shù)據(jù)庫(kù) -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- jstl標(biāo)簽類 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log END -->
<!-- Json -->
<!-- 格式化對(duì)象,方便輸出日志 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- 上傳組件包 start -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<!-- 上傳組件包 end -->
</dependencies>
<build>
<finalName>Maven_Project</finalName>
</build>
</project>
2逞力、在src/main/resources下添加配置文件:applicationContext.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">
<!-- 使用注解式注入 -->
<context:annotation-config />
<!-- 自動(dòng)掃描 -->
<context:component-scan base-package="com.ssm" />
<!-- 導(dǎo)入DAO配置 -->
<import resource="spring-dao.xml"/>
<!-- 導(dǎo)入數(shù)據(jù)庫(kù)配置 -->
<import resource="spring-db.xml"/>
<!-- 導(dǎo)入數(shù)據(jù)庫(kù)配置 -->
<import resource="spring-tx.xml"/>
</beans>
配置數(shù)據(jù)庫(kù)連接池:jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/maven_ssm
username=root
password=root
#定義初始連接數(shù)
initialSize=0
#定義最大連接數(shù)
maxActive=20
#定義最大空閑
maxIdle=20
#定義最小空閑
minIdle=1
#定義最長(zhǎng)等待時(shí)間
maxWait=60000
配置日志:log4j.properties
#定義LOG輸出級(jí)別
log4j.rootLogger=INFO,Console,File
#定義日志輸出目的地為控制臺(tái)
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
#文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生一個(gè)新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定輸出目錄
log4j.appender.File.File = logs/ssm.log
#定義文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 輸出所以日志,如果換成DEBUG表示輸出DEBUG以上級(jí)別日志
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
配置我們的ioc注入: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">
<!-- DAO接口所在包名寇荧,Spring會(huì)自動(dòng)查找其下的類 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--basePackage指定要掃描的包举庶,在此包之下的映射器都會(huì)被搜索到。
可指定多個(gè)包揩抡,包與包之間用逗號(hào)或分號(hào)分隔-->
<property name="basePackage" value="com.ssm.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
</beans>
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">
<!-- 引入配置文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 初始化連接大小 -->
<property name="initialSize" value="${initialSize}"></property>
<!-- 連接池最大數(shù)量 -->
<property name="maxActive" value="${maxActive}"></property>
<!-- 連接池最大空閑 -->
<property name="maxIdle" value="${maxIdle}"></property>
<!-- 連接池最小空閑 -->
<property name="minIdle" value="${minIdle}"></property>
<!-- 獲取連接最大等待時(shí)間 -->
<property name="maxWait" value="${maxWait}"></property>
</bean>
<!-- spring和MyBatis完美整合户侥,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自動(dòng)掃描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:com/ssm/mapper/*.xml"></property>
</bean>
</beans>
配置spring的事務(wù)管理器: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: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">
<!-- (事務(wù)管理)transaction manager, use JtaTransactionManager for global tx -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
接下來(lái),我們來(lái)整合spring mvc: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">
<!--避免IE執(zhí)行AJAX時(shí)峦嗤,返回JSON出現(xiàn)下載文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 添加注解驅(qū)動(dòng) -->
<mvc:annotation-driven />
<mvc:default-servlet-handler/>
<!-- 設(shè)置使用注解的類所在的包 -->
<context:component-scan base-package="com.ssm.controller" />
<!-- 完成請(qǐng)求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON轉(zhuǎn)換器 -->
</list>
</property>
</bean>
<!-- 定義跳轉(zhuǎn)的文件的前后綴 蕊唐,視圖模式配置-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 這里的配置我的理解是自動(dòng)給后面action的方法return的字符串加上前綴和后綴,變成一個(gè) 可用的url地址 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- SpringMVC上傳文件時(shí)烁设,需要配置MultipartResolver處理器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默認(rèn)編碼 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 內(nèi)存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>
</beans>
修改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">
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
<!-- 加載spring bean -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 編碼過(guò)濾器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring MVC servlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
到這里替梨,我們的ssm框架就完成了,下面装黑,我們來(lái)個(gè)實(shí)現(xiàn):
在src/main/java下分別添加我們的dao包副瀑,service包,還有controller包.包里面添加相應(yīng)的類恋谭,效果圖如下:
UserController.java:
package com.ssm.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.ssm.dto.User;
import com.ssm.service.IUserService;
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private IUserService userService;
@RequestMapping("/userList")
public String userList(HttpServletRequest request,Model model){
List<User> 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.ssm.dao;
import java.util.List;
import java.util.Map;
import com.ssm.dto.User;
public interface IUserDao {
public User queryByPrimaryKey(Integer id);
public List<User> queryUserByBatch(Map<String,Object> params);
public void insertUser(User user);
public void insertUserByBatch(List<User> list);
public void deleteByPrimaryKey(Integer id);
public void delteUserByBatch(Map<String,Object> params);
public void updateByPrimaryKey(Integer id);
public List<User> getAllUser();
}
User.java:
package com.ssm.dto;
public class User {
private Integer id;
private String name;
private String password;
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();
}
}
UserMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ssm.dao.IUserDao" >
<resultMap id="BaseResultMap" type="com.ssm.dto.User">
<result column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List">
id, name, password, age
</sql>
<!-- 查詢用戶-->
<select id="queryByPrimaryKey" resultMap="BaseResultMap"
parameterType="java.lang.Integer">
select
<include refid="Base_Column_List" />
from user
where id = #{id,jdbcType=INTEGER}
</select>
<!-- 查詢用戶-->
<select id="getAllUser" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user
</select>
<!-- 批量查詢用戶-->
<select id="queryUserByBatch" resultMap="BaseResultMap"
parameterType="java.util.Map">
select
<include refid="Base_Column_List" />
from user
where id in
<foreach collection="idList" item="userId" index="index" open="(" separator="," close=")">
#{userId,jdbcType=DECIMAL}
</foreach>
</select>
<!-- 插入用戶 -->
<insert id="insertUser" parameterType="com.ssm.dto.User">
insert into user
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="name != null" >
name,
</if>
<if test="password != null" >
password,
</if>
<if test="age != null" >
age,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="name != null" >
#{name,jdbcType=VARCHAR},
</if>
<if test="password != null" >
#{password,jdbcType=VARCHAR},
</if>
<if test="age != null" >
#{age,jdbcType=INTEGER},
</if>
</trim>
</insert>
<!-- 批量插入用戶 -->
<insert id="insertUserByBatch" parameterType="java.util.List" >
insert into USER
(ID,
NAME,
PASSWORD,
AGE)
select A.* from
(
<foreach collection="list" item="user" index="index" separator="union">
select
#{user.id,jdbcType=INTEGER},
#{user.name,jdbcType=VARCHAR},
#{user.password,jdbcType=VARCHAR},
#{user.age,jdbcType=INTEGER}
from dual
</foreach>
) A
</insert>
<!-- 刪除用戶 -->
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from user
where id = #{id,jdbcType=INTEGER}
</delete>
<!-- 批量刪除用戶 -->
<delete id="deleteUserByBatch" parameterType="java.util.Map" >
delete from user
where id IN
<foreach item="ids" collection="iList" open="(" separator="," close=")">
#{ids,jdbcType=DECIMAL}
</foreach>
</delete>
<!-- 更新用戶 -->
<update id="updateByPrimaryKey" parameterType="com.ssm.dto.User" >
update user
<set >
<if test="name != null" >
name = #{name,jdbcType=VARCHAR},
</if>
<if test="password != null" >
password = #{password,jdbcType=VARCHAR},
</if>
<if test="age != null" >
age = #{age,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
IUserService.java:
package com.ssm.service;
import java.util.List;
import com.ssm.dto.User;
public interface IUserService {
public User getUserById(int userId);
public void insertUser(User user);
public void addUser(User user);
public List<User> getAllUser();
}
UserServiceImpl.java:
package com.ssm.service.Impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.ssm.dao.IUserDao;
import com.ssm.dto.User;
import com.ssm.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<User> getAllUser() {
return userDao.getAllUser();
}
}
接下來(lái)就是我們的靜態(tài)頁(yè)面了jsp文件了糠睡,在WEB-INF文件夾下新建jsp文件夾,添加userinfo.jsp
userinfo.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath=request.getSSScheme()+"://request.getServerName()"+":"+request.getServerPort+Path+
"/"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'userinfo.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form id="addUser" action="user/addUser" method="post">
userName: <input id="name" name="name" /><br/>
password: <input id="password" name="password" /><br/>
<input type="submit" value="添加新用戶"/>
</form>
</body>
</html>
哦,忘記配置tomcat疚颊,配置一下tomcat狈孔,然后部署發(fā)布項(xiàng)目,進(jìn)行測(cè)試
到此材义,框架成
總結(jié): 真心知道用maven之后均抽,我們搭框架真的方便多了,最起碼不用個(gè)頂個(gè)的去找jar包其掂,然后逐一的 導(dǎo)入油挥,只需要在pom文件里面配置一下依賴,就好了清寇。雖然說(shuō)比較簡(jiǎn)單喘漏,可是可能是自己沒(méi)有動(dòng)手弄過(guò)吧护蝶,期間出了各種各樣的錯(cuò)华烟,或者說(shuō)是失誤,但是持灰,總之盔夜,耗時(shí)一天半,總算是通了,這也是收獲喂链, 加油吧返十,少(qing)年。