前言
最近手頭上沒啥活兒,就想用IDEA搭建一個SSM項目,結果發現不百度根本搭不出來,就算是搭建好了也是有很多問題,為了以后方便上手,在此一步一步記錄一下。
一、搭建SSM框架
【File】-->【New】-->【Project】
選擇左側【Maven】,在【Create from archetype】前面打【√】,選擇【org.apache.maven.archetype:maven-archetype-webapp】,點擊【Next】
初始狀態下【Name】為untitled,修改【Name】,下面的【Location和【ArtifactId】會自動填寫為一樣的,如果不自動生成就手動填寫吧。
【GroupId】默認值為org.example,需要手動修改,當然也可以不改,后期修改配置文件注意配置的路徑就可以。
填寫完畢,點擊【Next】。
配置maven,選擇本地maven地址,在【Override】前面打上【√】,才可以選擇maven中的setting.xml文件以及本地倉庫,然后點擊【Finish】IDEA就開始創建項目了
在這里多提一句,我用的是阿里雲的maven鏡像,下載jar包的速度挺快,至於怎么配置請移步這里 Maven配置阿里雲鏡像
創建之后,項目會自動為你加載jar包,如果沒有jar的情況下,如果在上面那步配置使用阿里雲maven鏡像,加載就會快一些,要不然就會慢多了。
二、完善SSM框架結構
創建之后項目的結構是這樣的,很顯然,這不是我們需要的標准SSM框架
我們新建包,為項目補充缺失的包
選中項目的src,右鍵選擇【New】-->【Directory】
彈窗有四個選項,我們先添加【main\java】,之后再按照相同的步驟,把剩下的三個加上。
加上之后的效果就是這樣的
接下來新建一下項目所需要的文件包繼續補充項目結構。
右鍵項目中的java文件夾,點擊【New】-->【Package】
先建一個跟剛開始新建項目的時候,GroupId相同值的包
然后在com.manage包下依次加上controller(web層)、dao、entry(實體類)、service(接口類),
在service下新建impl包用來存放接口的實現類,
在resource下增加mapper用來存放映射的xml文件。
在webapp下新加一個page文件夾用來存放jsp頁面,並將index.jsp挪到該文件夾下。加上之后如下
三、編寫配置文件
首先在pom.xml中引入spring以及mybatis以及mysql等的相關依賴,為方便參考,我直接把代碼粘到下面:
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.manage</groupId> <artifactId>resourcemanage</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>resourcemanage Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <!--spring版本--> <spring.version>5.0.5.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- 實現slf4j接口並整合 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.1</version> </dependency> <!-- jsp頁面使用的jstl表達式 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!--spring核心包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- 數據庫 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.2</version> </dependency> <!-- 其他 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> </dependencies> <build> <finalName>resourcemanage</finalName> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </pluginManagement> </build> </project>
導入依賴之后,第一次可能會有import program提示,點擊導入即可
接下來我們在resources下新建
三個Spring配置文件:spring-dao.xml,spring-service.xml,spring-web.xml
一個mybatis配置文件:mybatis-config.xml
一個mysql連接的文件:jdbc.properties文件
一個日志配置文件:log.xml
xml文件新建步驟為:右鍵【resources】-->【New】-->【XML Configuration File】-->【Spring Config】
如果找不到【Spring Config】,說明pom.xml引入依賴沒生效,右鍵一下項目【Maven】-->【Reload project】,然后再重復上一步驟應該就有了。
mysql的配置文件,新建的類型為file就可以
建好之后的結構就是這樣的了
接着我們編寫XML文件內容
1.jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/sm?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC jdbc.username=root jdbc.password=123456
2.mybatis.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 打開延遲加載的全局開關 --> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="false"/> <!-- 使用jdbc的getGeneratedKeys獲取數據庫自增主鍵值 --> <setting name="useGeneratedKeys" value="true"/> <!-- 使用列別名替換列名 默認:true --> <setting name="useColumnLabel" value="true"/> <!-- 開啟駝峰命名轉換:Table{create_time} -> Entity{createTime} --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
3.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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 配置整合mybatis過程 --> <!-- 1.配置數據庫相關參數properties的屬性:${url} --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 2.數據庫連接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 配置連接池屬性 --> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- c3p0連接池的私有屬性 --> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="10"/> <!-- 關閉連接后不自動commit --> <property name="autoCommitOnClose" value="false"/> <!-- 獲取連接超時時間 --> <property name="checkoutTimeout" value="10000"/> <!-- 當獲取連接失敗重試次數 --> <property name="acquireRetryAttempts" value="2"/> </bean> <!-- 3.配置SqlSessionFactory對象 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入數據庫連接池 --> <property name="dataSource" ref="dataSource"/> <!-- 配置MyBaties全局配置文件:mybatis-config.xml --> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!-- 掃描entity包 使用別名 --> <property name="typeAliasesPackage" value="com.manage.entity"/> <!-- 掃描sql配置文件:mapper需要的xml文件 --> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!-- 4.配置掃描Dao接口包,動態實現Dao接口,注入到spring容器中 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 注入sqlSessionFactory --> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!-- 給出需要掃描Dao接口包 --> <property name="basePackage" value="com.manage.dao"/> </bean> </beans>
這個文件會在掃描sql配置文件處報錯,因為映射xml我們還沒有放進去,所以我們先給注釋掉,防止之后啟動項目訪問報錯。
<!-- 掃描sql配置文件:mapper需要的xml文件 -->
<!--<property name="mapperLocations" value="classpath:mapper/*.xml"/>-->
4.spring-service.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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 掃描service包下所有使用注解的類型 --> <context:component-scan base-package="com.manage.service"/> <!-- 1.配置數據庫相關參數properties的屬性:${url} --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 2.數據庫連接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 配置連接池屬性 --> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- c3p0連接池的私有屬性 --> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="10"/> <!-- 關閉連接后不自動commit --> <property name="autoCommitOnClose" value="false"/> <!-- 獲取連接超時時間 --> <property name="checkoutTimeout" value="10000"/> <!-- 當獲取連接失敗重試次數 --> <property name="acquireRetryAttempts" value="2"/> </bean> <!-- 配置事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 注入數據庫連接池 --> <property name="dataSource" ref="dataSource"/> </bean> <!-- 配置基於注解的聲明式事務 --> <tx:annotation-driven transaction-manager="transactionManager"/> </beans>
5.spring-web.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: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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- 配置SpringMVC --> <!-- 1.開啟SpringMVC注解模式 --> <!-- 簡化配置: (1)自動注冊DefaultAnootationHandlerMapping,AnotationMethodHandlerAdapter (2)提供一些列:數據綁定,數字和日期的format @NumberFormat, @DateTimeFormat, xml,json默認讀寫支持 --> <mvc:annotation-driven/> <!-- 2.靜態資源默認servlet配置 (1)加入對靜態資源的處理:js,gif,png (2)允許使用"/"做整體映射 --> <mvc:default-servlet-handler/> <!-- 3.配置jsp 顯示ViewResolver --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/page/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 4.掃描web相關的bean --> <context:component-scan base-package="com.manage.controller"/> </beans>
6.log.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="true"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- encoders are by default assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder --> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="STDOUT"/> </root> </configuration>
以上6個配置文件編寫完之后,我們將Spring配置文件掛載到服務啟動的時候,在web.xml下配置
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <!--1.配置前置控制器 --> <servlet> <servlet-name>SpringDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- 引入spring配置文件 --> <param-value>classpath:spring-*.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>SpringDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!--2.歡迎文件--> <welcome-file-list> <welcome-file>/page/index.jsp</welcome-file> </welcome-file-list> </web-app>
最后在pom.xml文件中加入對xml的掃描,和pluginManagement同級,也在build標簽里面
<!--編譯時包括xml文件和properties文件,不然編譯后不包括此文件--> <resources> <resource> <directory>src/main/java</directory> <includes> <include>*./*.xml</include> </includes> <filtering>false</filtering> </resource> </resources>
至此,配置文件編寫完畢,接下來我們配置一下tomcat看一下效果
四、配置tomcat服務
點擊右上角【Add Configuration】-->【+】-->【Tomcat server】-->【Local】
配置sever
切換到【Deployment】,點擊【+】,選擇第二個帶【exploded】的
生成的Application context會帶 _war_exploded 后綴,本人習慣刪掉,這樣保存之后,之前說的【Server】下的url會自動拼上這個值
配置完成之后,點擊右上角的綠色三角或者左下角綠色三角,啟動tomcat,稍等一會兒瀏覽器就會自動彈出 當初領你進門的那句話
五、SSM案例
前期的准備工作完成之后, 我們添加一個案例 用戶信息維護
1.數據庫名sm,表名sysuser,我這里使用的mysql數據庫,版本是8.0.26,不知道自己版本的話可以 使用cmd命令查一下版本信息。
mysql -u用戶名 -p密碼
用戶表的DDL語句
CREATE TABLE `sysuser` (
`id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`username` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`usercode` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`password` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`sex` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`createdate` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`isvalid` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`isstop` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`organid` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
2.生成實體類、xml映射文件。如果沒有工具可以參考一下這里 IDEA創建插件自動生成entity、mapper.xml、dao文件
我這里生成好的文件如下
SysUser.java
package com.manage.entity; import java.util.Date; public class SysUser { private Integer id; private String username; private String usercode; private String password; private Integer sex; private Date createdate; private Integer isvalid; private Integer isstop; private Integer organid; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username == null ? null : username.trim(); } public String getUsercode() { return usercode; } public void setUsercode(String usercode) { this.usercode = usercode == null ? null : usercode.trim(); } public String getPassword() { return password; } public void setPassword(String password) { this.password = password == null ? null : password.trim(); } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public Date getCreatedate() { return createdate; } public void setCreatedate(Date createdate) { this.createdate = createdate; } public Integer getIsvalid() { return isvalid; } public void setIsvalid(Integer isvalid) { this.isvalid = isvalid; } public Integer getIsstop() { return isstop; } public void setIsstop(Integer isstop) { this.isstop = isstop; } public Integer getOrganid() { return organid; } public void setOrganid(Integer organid) { this.organid = organid; } }
SysUser.xml,加上這個文件之后,我們就可以把之前spring-dao.xml中的掃描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.manage.dao.SysUserMapper"> <resultMap id="BaseResultMap" type="com.manage.entity.SysUser"> <id column="id" jdbcType="INTEGER" property="id"/> <result column="username" jdbcType="VARCHAR" property="username"/> <result column="usercode" jdbcType="VARCHAR" property="usercode"/> <result column="password" jdbcType="VARCHAR" property="password"/> <result column="sex" jdbcType="INTEGER" property="sex"/> <result column="createdate" jdbcType="TIMESTAMP" property="createdate"/> <result column="isvalid" jdbcType="INTEGER" property="isvalid"/> <result column="isstop" jdbcType="INTEGER" property="isstop"/> <result column="organid" jdbcType="INTEGER" property="organid"/> </resultMap> <sql id="Base_Column_List"> id, username, usercode, password, sex, createdate, isvalid, isstop, organid </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from sysuser where id = #{id,jdbcType=INTEGER} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> delete from sysuser where id = #{id,jdbcType=INTEGER} </delete> <insert id="insert" parameterType="com.manage.entity.SysUser"> insert into sysuser (id, username, usercode, password, sex, createdate, isvalid, isstop, organid) values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{usercode,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{sex,jdbcType=INTEGER}, #{createdate,jdbcType=TIMESTAMP}, #{isvalid,jdbcType=INTEGER}, #{isstop,jdbcType=INTEGER}, #{organid,jdbcType=INTEGER}) </insert> <insert id="insertSelective" parameterType="com.manage.entity.SysUser"> insert into sysuser <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null"> id, </if> <if test="username != null"> username, </if> <if test="usercode != null"> usercode, </if> <if test="password != null"> password, </if> <if test="sex != null"> sex, </if> <if test="createdate != null"> createdate, </if> <if test="isvalid != null"> isvalid, </if> <if test="isstop != null"> isstop, </if> <if test="organid != null"> organid, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null"> #{id,jdbcType=INTEGER}, </if> <if test="username != null"> #{username,jdbcType=VARCHAR}, </if> <if test="usercode != null"> #{usercode,jdbcType=VARCHAR}, </if> <if test="password != null"> #{password,jdbcType=VARCHAR}, </if> <if test="sex != null"> #{sex,jdbcType=INTEGER}, </if> <if test="createdate != null"> #{createdate,jdbcType=TIMESTAMP}, </if> <if test="isvalid != null"> #{isvalid,jdbcType=INTEGER}, </if> <if test="isstop != null"> #{isstop,jdbcType=INTEGER}, </if> <if test="organid != null"> #{organid,jdbcType=INTEGER}, </if> </trim> </insert> <update id="updateByPrimaryKeySelective" parameterType="com.manage.entity.SysUser"> update sysuser <set> <if test="username != null"> username = #{username,jdbcType=VARCHAR}, </if> <if test="usercode != null"> usercode = #{usercode,jdbcType=VARCHAR}, </if> <if test="password != null"> password = #{password,jdbcType=VARCHAR}, </if> <if test="sex != null"> sex = #{sex,jdbcType=INTEGER}, </if> <if test="createdate != null"> createdate = #{createdate,jdbcType=TIMESTAMP}, </if> <if test="isvalid != null"> isvalid = #{isvalid,jdbcType=INTEGER}, </if> <if test="isstop != null"> isstop = #{isstop,jdbcType=INTEGER}, </if> <if test="organid != null"> organid = #{organid,jdbcType=INTEGER}, </if> </set> where id = #{id,jdbcType=INTEGER} </update> <update id="updateByPrimaryKey" parameterType="com.manage.entity.SysUser"> update sysuser set username = #{username,jdbcType=VARCHAR}, usercode = #{usercode,jdbcType=VARCHAR}, password = #{password,jdbcType=VARCHAR}, sex = #{sex,jdbcType=INTEGER}, createdate = #{createdate,jdbcType=TIMESTAMP}, isvalid = #{isvalid,jdbcType=INTEGER}, isstop = #{isstop,jdbcType=INTEGER}, organid = #{organid,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER} </update> </mapper>
SysUserMapper.java
package com.manage.dao; import com.manage.entity.SysUser; public interface SysUserMapper { int deleteByPrimaryKey(Integer id); int insert(SysUser record); int insertSelective(SysUser record); SysUser selectByPrimaryKey(Integer id); int updateByPrimaryKeySelective(SysUser record); int updateByPrimaryKey(SysUser record); }
SysUserService.java
package com.manage.service; import com.manage.entity.SysUser; public interface SysUserService { SysUser getOneById(Integer id); }
SysUserServiceImpl.java
package com.manage.service.impl; import com.manage.dao.SysUserMapper; import com.manage.entity.SysUser; import com.manage.service.SysUserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @Service public class SysUserServiceImpl implements SysUserService { @Resource public SysUserMapper sysUserMapper; @Override public SysUser getOneById(Integer id) { return sysUserMapper.selectByPrimaryKey(id); } }
SysUserController.java
package com.manage.controller; import com.manage.entity.SysUser; import com.manage.service.SysUserService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @Controller @RequestMapping("/user") public class SysUserController { @Resource public SysUserService sysUserService; @RequestMapping("/getInfo") public String getUserInfo(HttpServletRequest request){ SysUser user = sysUserService.getOneById(1); request.setAttribute("user",user); return "userinfo"; } }
再新建一個jsp頁面用來展示查出的數據
userinfo.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <div>用戶信息</div> <div>用戶名:${user.username}</div> <div>用戶編碼:${user.usercode}</div> </body> </html>
建好之后我們啟動程序,然后按照controller里面寫的路徑訪問一下
結果顯示頁面並沒有解析jsp的內置作用域,造成這種原因是因為web.xml是我們新建項目的時候自動生成,需要改一下
將
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
修改為
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
我們再重啟一下訪問發現就可以了。
至此,我們完成了一個SSM框架的搭建和案例的展示。