基于 SSM 框架的 Soso 移动业务大厅
一、 整体基本实现情况
对本学期的 Java 作业 1 的 SOSO 移动大厅进行改进, 基于 SSM、JSP、Maven、Tomcat、MySQL 等实现。
二、 实现详情
1、 工程结构图
2、 工程结构各部分实现
(1)Java
pojo: 存放自定义的 Java 类。每个类的属性设为 private,并提供 public 属性的 getter/setter 方法让外界访问。
// MobileCard.java
``` package com.pojo;
//手机卡类 public class MobileCard { private String cardNumber; //卡号 private String userName; //用户名 private String passWord; //密码 private String serPackage; //服务包 private double consumAmount; //总消费额 private double money; //余额 private int realTalkTime; //实际通话时间 private int realSMSCount; //实际短信数量 private int realFlow; //实际流量消耗
public MobileCard() {
this.realTalkTime = 0;
this.realSMSCount = 0;
this.realFlow = 0;
}
public String getcardNumber() {
return cardNumber;
}
public String getuserName() {
return userName;
}
public String getpassWord() {
return passWord;
}
public String getserPackage() {
return serPackage;
}
public double getconsumAmount() {
return consumAmount;
}
public double getmoney() {
return money;
}
public int getrealTalkTime() {
return realTalkTime;
}
public int getrealSMSCount() {
return realSMSCount;
}
public int getrealFlow() {
return realFlow;
}
public void setcardNumber(String temp) {
cardNumber = temp;
}
public void setuserName(String temp) {
userName = temp;
}
public void setpassWord(String temp) {
passWord = temp;
}
public void setserPackage(String temp) { serPackage = temp; }
public void setconsumAmount(double temp) {
consumAmount = temp;
}
public void setmoney(double temp) {
money = temp;
}
public void setrealTalkTime(int temp) {
realTalkTime = temp;
}
public void setrealSMSCount(int temp) {
realSMSCount = temp;
}
public void setrealFlow(int temp) {
realFlow = temp;
}
} ```
service:定义接口,包含系统所提供的功能。此外还会在 service 包下再新建 impl 包。
//SosoService.java
``` package com.service; import com.pojo.MobileCard; import java.util.List;
public interface SosoService { int userRegister(MobileCard newUser);
List<MobileCard> queryAllUser();
}
```
dao:定义接口,包含与数据库进行交互的功能。
//SosoDao.java
``` package com.dao; import com.pojo.MobileCard; import java.util.List;
public interface SosoDao {
int userRegister(MobileCard newUser);
List
controller:控制器,负责接收页面请求,转发和处理。
//SosoController.java
``` package com.controller; import com.pojo.MobileCard; import com.service.SosoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest; import java.util.List;
@Controller @RequestMapping("/soso") public class SosoController { @Autowired private SosoService sosoService; @Autowired HttpServletRequest request;
@RequestMapping("/userRegisterWeb")
public String userRegisterWeb(MobileCard newUser) {
return "userRegister";
}
@RequestMapping(value = "/userRegister")
public String userRegister() {
MobileCard newUser = new MobileCard();
newUser.setcardNumber(request.getParameter("cardNumber"));
newUser.setuserName(request.getParameter("userName"));
newUser.setpassWord(request.getParameter("passWord"));
newUser.setserPackage(request.getParameter("serPackage"));
newUser.setconsumAmount(Double.valueOf(request.getParameter("consumAmount")));
newUser.setmoney(Double.valueOf(request.getParameter("money")));
newUser.setrealTalkTime(Integer.valueOf(request.getParameter("realTalkTime")));
newUser.setrealSMSCount(Integer.valueOf(request.getParameter("realSMSCount")));
newUser.setrealFlow(Integer.valueOf(request.getParameter("realFlow")));
sosoService.userRegister(newUser);
return "userRegister";
}
@RequestMapping("/allUserWeb")
public String allUserWeb(Model model) {
List<MobileCard> list = sosoService.queryAllUser();
model.addAttribute("list", list);
return "allUser";
}
} ```
(2)resource
在 resource 包下有两个文件夹, “mapper”(用于存放 xxxMapper.xml 文件)和“Spring”(用于存放 spring-xxx.xml 配置文件)。
jdbc.properties:MySQL 数据库配置文件
log4j.properties:日志输出配置文件
mybatis-config.xml:MyBatis 框架配置文件
//mapper 文件
```
<insert id="userRegister" parameterType="MobileCard">
INSERT INTO MobileCardMYSQL(CardNumber,UserName,PassWord,SerPackage,ConsumAmount,Money, RealTalkTime, RealSMSCount, RealFlow) VALUE (#{cardNumber},#{userName}, #{passWord}, #{serPackage}, #{consumAmount},#{money}, #{realTalkTime}, #{realSMSCount}, #{realFlow})
</insert>
<select id="queryAllUser" resultMap="sosoResultMap">
SELECT * FROM MobileCardMYSQL
</select>
```
// jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/soso?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
// log4j.properties
log4j.rootLogger=ERROR, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
// mybatis-config.xml
```
<!-- 使用列别名替换列名 默认:true -->
<setting name="useColumnLabel" value="true" />
<!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} -->
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
```
(3)JSP
Web 界面配置
// index.jsp 主界面
``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <% pageContext.setAttribute("path", request.getContextPath()); %>
Soso移动应用大厅
用户登录
用户注册
使用嗖嗖
话费充值
资费说明
退出系统
```
(4)pom.xml
在此文件中配置项目所需要的 jar 包。
```
(5)Spring
spring-dao.xml:(spring-mybatis 整合配置文件)
```
<!-- 2.数据库连接池 --> <bean id="dataSource" > <!-- 配置连接池属性 --> <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" > <!-- 注入数据库连接池 --> <property name="dataSource" ref="dataSource"/> <!-- 配置MyBaties全局配置文件:mybatis-config.xml --> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!-- 扫描pojo包 使用别名 --> <property name="typeAliasesPackage" value="com.pojo"/> <!-- 扫描sql配置文件:mapper需要的xml文件 --> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!-- 4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 --> <bean > <!-- 注入sqlSessionFactory --> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!-- 给出需要扫描Dao接口包 --> <property name="basePackage" value="com.dao"/> </bean>
```
Spring-mvc
```
<!-- 2.静态资源默认servlet配置
(1)加入对静态资源的处理:js,gif,png
(2)允许使用"/"做整体映射
-->
<mvc:default-servlet-handler/>
<!-- 3.配置jsp 显示ViewResolver -->
<bean class="A27_ed89_89f6f43 org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 4.扫描web相关的bean -->
<context:component-scan base-package="com.controller" />
```
Spring-service
```
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="B35_0cc7_c75316c org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 配置基于注解的声明式事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
```
三、 参考资料
https://blog.csdn.net/khxu666/article/details/79851070
参考文献
- 基于SOA的移动教务及过程管理平台的设计与实现(吉林大学·赵圆圆)
- IDP(综合数据业务平台)数据持久层和内容管理的设计与实现(北京邮电大学·常旭)
- 基于SOA的电信SPS系统设计与实现(中南大学·胡睿达)
- IDP(综合数据业务平台)数据持久层和内容管理的设计与实现(北京邮电大学·常旭)
- 企业移动应用平台应用商店和用户授权管理子系统的设计与实现(北京交通大学·张炳彦)
- 中国移动浙江公司渠道集中化管理系统的设计与实现(山东大学·潘迪科)
- 基于移动终端的营销能力自动化系统设计与实现(厦门大学·王锦标)
- 客户营销模式及销售管理平台的设计(吉林大学·张宏)
- 分布式测试系统Web服务封装及管理系统的设计与实现(电子科技大学·袁一)
- 中国移动浙江公司渠道集中化管理系统的设计与实现(山东大学·潘迪科)
- 基于需求语义描述的多平台统一框架的研究与实现(中国海洋大学·辛灿灿)
- 基于SOA的呼叫中心增值业务平台的设计与实现(东华大学·祁博民)
- 大卖场电子商务第三方服务平台(搜啦网)设计与实现(电子科技大学·王汝平)
- 基于智能手机平台的铁路旅客移动服务信息系统的研究(首都师范大学·张稳洁)
- 构建基于SOA的企业应用的策略和方法(内蒙古大学·张俊青)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设小屋 ,原文地址:https://bishedaima.com/yuanma/35858.html