springmvc springJDBC 简单实训银行账户管理系统

1.简单介绍一下,在校时每周结束都会有一次学习总结,简称“实训”,这次实训内容是spring,因为是最近热门框架,我就先从基础方面开始练习,一路填坑,有点不容易。这是我第一次写文章,可能不太完善,希望多多包涵。喜欢的同学可以关注一下子。

项目建完大概是这样,看一下:

——————————————————————————————————————————————————————————————

2.项目搭建需求:

myEclipse + mysql + jdk1.6 + (spring 3.0 core Libraries+spring 3.0 AOP Libraries+spring 3.0 Web Libraries+spring 3.0+persistence JDBC Libraries+spring 3.0 persistence Core Libraries) + mysql5.17.jar

大致是这些,如还是不明白可以随时联系我:+备注(博客园)

——————————————————————————————————————————————————————————————

3.数据库搭建:

建立数据库名字  bank

建立表格trade   和 user 字段如下:

————————————————————————————————————————————————————————————————————————————————————

4.代码及功能的实现:

先看主要项目结构:

好了,不废话开始我们的第一步。

new--------web project-------输入name-------finish

右键单击项目 ---------MyEclipse-----------Add spring  Capabilities    如图:

 接下来选择spring3.0  选择所需要的jar包;如图:-------选择好后------finish

将applicationContext.xml拖入到webroot/web-inf内,如图:

 同时将mysql驱动jar放入lib内。!!!!!

 在src内建立四个包,我就不一一打了,如图:

 嗯,现在基本准备好了,就先撸一个登录部分,直接上代码吧:

在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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/bank?useUnicode=true&amp;characterEncoding=utf-8"/>
<!-- 指定连接数据库的用户名 -->
<property name="user" value="你的数据库名字"/>
<!-- 指定连接数据库的密码 -->
<property name="password" value="你的数据库密码"/>
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="40"/>
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minPoolSize" value="1"/>
<!-- 指定连接数据库连接池的初始化连接数 -->
<property name="initialPoolSize" value="1"/>
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxIdleTime" value="20"/>
</bean> <bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>
org.springframework.web.servlet.view.JstlView
</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/userAdd.do">userAddAction</prop>
<prop key="/userLogin.do">userLoginAction</prop>
</props>
</property>
</bean>
<!---Action Definition-->
<!-- 用户内容 -->
<bean class="com.service.UserService" id="userService">
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="com.dao.UserDao">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 用户内容 用户登陆-->
<bean id="userLoginAction" class="com.controller.UserLoginAction">
<property name="userService" ref="userService"></property>
<property name="commandClass" value="com.pojo.User"></property>
<property name="success_view">
<value>main</value>
</property>
<property name="shibai_view">
<value>shibai</value>
</property>
</bean> <!-- 用户内容 用户注册-->
<bean id="userAddAction" class="com.controller.UserAddAction">
<property name="userService" ref="userService"></property>
<property name="commandClass" value="com.pojo.User"></property>
<property name="success_view">
<value>index</value>
</property>
</bean>
</beans>

可能会有错误提示,别急,一步步来;

在web.xml里修改,如:

<?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"> <filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <servlet>
<servlet-name>Dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>Dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> </web-app>

在index.jsp里修改如:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登录</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">
</head>
<body>
<form action="userLogin.do" method="post" >
<input type="text" name="username" placeholder="登录|账号" /><br />
<input type="password" name="password" placeholder="输入密码" /><br />
<input type="submit" value="登 录" /><br/>
<input type="button" name="button" id="button" value="注册" onClick="location.href='userAdd.jsp'" >
</form>
</body>
</html>

建立main.jsp里面添加几句话就行,一会登录成功跳转的页面。

建立userAdd.jsp,这是注册页面,顺手写了吧。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登录</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"> <style type="text/css">
.div_th{
width: 150px; text-align: center;height: 40px;background-color: teal; font-size: 20px;font-family: "楷体";color: white;
}
.div_td{
width: 300px;height: 40px; background-color: teal; font-size: 20px;font-family: "楷体"
} </style>
</head>
<body>
<form id="form3" name="form3" action="userAdd.do" method="post">
<table border="1" align="center">
<tr >
<th class="div_th" >账号</th>
<td class="div_td">
<input type="text" name="username" style="width: 95%">
</td>
<th class="div_th">性别</th>
<td class="div_td"> <select name="sex" title="性别">
<option value="男" >男</option>
<option value="女" >女</option>
</select>
</td>
</tr>
<tr>
<th class="div_th">密码 </th>
<td class="div_td"><input type="password" name="password" style="width: 95%"> </td>
<th class="div_th">确认密码</th>
<td class="div_td"><input type="password" name="confirmpassword" style="width: 95%"></td>
</tr>
<tr>
<th class="div_th">用户年龄</th>
<td class="div_td"><input type="text" name="userage" style="width: 95%"> </td>
<th class="div_th">身份证号</th>
<td class="div_td"><input type="text" name="idcard" style="width: 95%" maxlength="18"></td>
</tr>
<tr>
<th class="div_th">联系电话</th>
<td class="div_td"><input type="text" name="tel" style="width: 95%"></td>
<th class="div_th">居住城市</th>
<td class="div_td"><input type="text" name="city" style="width: 95%"></td>
</tr>
<tr>
<th class="div_th">详细地址</th>
<td class="div_td"><input type="text" name="useradd" style="width: 95%"></td>
<th class="div_th"></th>
<td class="div_td"></td>
</tr>
</table>
<input type="hidden" name="userflag" value="否">
<div style="text-align: center; background-color: teal">
<input type="submit" value="注 册" name="submit" id="submit" style="width: 500px;height: 35px;color: white;background-color: orange;font-size: 20px;font-family: 楷体"> <br/>
<input type="button" name="button" value="返 回" onClick="location.href='index.jsp'"style="width: 500px;height: 35px;color: white;background-color: greenyellow;margin-top: 1%; font-size: 20px;font-family: 楷体" >
</div>
</form>
</body>
</html>

在com.pojo里建立User.java

package com.pojo;

public class User {
public static final int PAGE_SIZE=10;
private int id;
private String username;
private String password;
private String userflag;
private int userage;
private String idcard;
private String tel;
private String city;
private String useradd;
private String sex; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserflag() {
return userflag;
}
public void setUserflag(String userflag) {
this.userflag = userflag;
}
public int getUserage() {
return userage;
}
public void setUserage(int userage) {
this.userage = userage;
}
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getUseradd() {
return useradd;
}
public void setUseradd(String useradd) {
this.useradd = useradd;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public static int getPageSize() {
return PAGE_SIZE;
}
}

上面那个相当好理解,也容易自动生成,不详细说明了。

在com.dao里建立UserDao.java代码如下:

package com.dao;

import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport; import com.pojo.User; public class UserDao extends JdbcDaoSupport { //用户---- 用户登陆
@SuppressWarnings("unchecked")
public List userLogin(User user){
JdbcTemplate jt=new JdbcTemplate(getDataSource());
String sql="select * from user where username='"+user.getUsername()+"' and password='"+user.getPassword()+"'";
List rows=jt.queryForList(sql);
return rows;
}
//用户---- 用户注册
public int userAdd(User user){
JdbcTemplate jt=new JdbcTemplate(getDataSource());
String sql = "insert into user (username, password, userflag,userage,idcard,tel,city,useradd,sex) " +
"value('"+user.getUsername()+"','"+user.getPassword()+"','"+user.getUserflag()+"','"+user.getUserage()+"','"+user.getIdcard()+"','"+user.getTel()+"','"+user.getCity()+"','"+user.getUseradd()+"','"+user.getSex()+"')";
int n=jt.update(sql);
return n; } }

上面这个主要涉及到数据库一些内容,还是老样子不懂咨询我。

在com.service里建立UserService.java.如:

package com.service;

import java.util.List;

import com.dao.UserDao;
import com.pojo.User; public class UserService {
UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} //用户---- 用户登陆
@SuppressWarnings("unchecked")
public List userLogin(User user){
return userDao.userLogin(user);
}
//用户---- 用户注册
public int userAdd(User user){
return userDao.userAdd(user); } }

在com.controller里创建UserLoginAction.java  登录

package com.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController; import com.pojo.User;
import com.service.UserService; @SuppressWarnings("deprecation")
public class UserLoginAction extends SimpleFormController {
public String success_view;
public String shibai_view;
public String getShibai_view() {
return shibai_view;
}
public void setShibai_view(String shibaiView) {
shibai_view = shibaiView;
}
public UserService userService;
public String getSuccess_view() {
return success_view;
}
public void setSuccess_view(String successView) {
success_view = successView;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
@SuppressWarnings("unchecked")
protected ModelAndView onSubmit(HttpServletRequest request,HttpServletResponse response,Object cmd,BindException ex)throws Exception{
User user=(User)cmd;
List list=userService.userLogin(user);
String username=user.getUsername(); HttpSession session=request.getSession();
session.setAttribute("user", list);
session.setAttribute("username", username);
if(list==null||list.size()<1){
return new ModelAndView(this.getShibai_view());
}else {
return new ModelAndView(this.getSuccess_view());
} } }

在com.controller里创建UserAddAction.java   注册

package com.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController; import com.pojo.User;
import com.service.UserService; @SuppressWarnings("deprecation")
public class UserAddAction extends SimpleFormController {
public String success_view;
public UserService userService;
public String getSuccess_view() {
return success_view;
}
public void setSuccess_view(String successView) {
success_view = successView;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
protected ModelAndView onSubmit(HttpServletRequest request,HttpServletResponse response,Object cmd,BindException ex)throws Exception{
User user=(User)cmd;
int n=userService.userAdd(user);
request.setAttribute("user", user.getUsername()); if(n>0){
request.setAttribute("userAddMes", "注册成功");
}else{
request.setAttribute("userAddMes", "注册失败");
}
return new ModelAndView(this.getSuccess_view());
} }

-____________________________________________________________________________________________________________________________________________

好了,登录和注册的功能已经完成,因为也是菜鸟,所以有很多地方,比如方法什么的出现错误还望各位大神指出,在下就多多学习。学习在于积累,勤奋一下总会有所成功。

这个程序因为时间紧,所以写的有点仓促,只是严格的按照要求把程序功能全部实现,而里面的好多效验什么的没有写。切记!

我的源码里是有css,和js样式的,所以还算美观。

但是不知道怎么上传源码,所以麻烦一下吧,需要源码的直接联系我吧。(个人爱好,免费)

QQ:1763907618。+备注(博客园)

邮箱:1763907618@qq.com

我会一直在,期待小伙伴们的评论,哈哈!!!!

 

springmvc springJDBC 简单实训银行账户管理系统的更多相关文章

  1. 银行账户管理系统(oracle数据库连接池,数据库的链接,)

    /* * 银行账户管理系统: * 属性:账户id,姓名,金额salary,利息类型: *管理员模块实现的功能: * 1.给用户开户 * 2.查询所有账户信息 * 用户模块实现的功能: * 1.显示用户 ...

  2. Java实验-课程设计报告一:个人银行账户管理系统SavingAccountManageSystem-具体文档+源码

    课程设计报告一:个人银行账户管理系统 此文档及源码仅供参考 不得直接复制使用 author: [xxxxxxxxx xx xxxx] date: "2019-04-12" 作 者: ...

  3. c++课程实训 银行储蓄系统

    基本要求:定义了用户类(User)和银行类(Bank),用成员函数实现各种功能,多文件组织程序.能用文本文件存取数据(如演示样例中给出的技术): 拓展方向: 序号 加分项目 细       则 1 改 ...

  4. 【C语言期末实训】学生学籍管理系统

    目录: 一,设计要求 ,总体要求: ,具体功能: 二,设计框架 三,程序代码 ,声明函数和头文件 ,声明结构体 ,声明全局变量 ,主体启动函数 ,主菜单函数 ,创建学生档案函数 ,编辑学生档案函数 , ...

  5. 基于Spring MVC + Spring + MyBatis的【银行账户信息管理系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/45604661 练习点设计: 模糊查询.删除.新增.修改 一.语言和环境 实现语言:J ...

  6. 简单练习题2编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能

    编写Java应用程序.首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”.“取款”和“余额查询”.其次, 编写一个主类,在主类中测试Account类的 ...

  7. 学校实训作业:Java爬虫(WebMagic框架)的简单操作

    项目名称:java爬虫 项目技术选型:Java.Maven.Mysql.WebMagic.Jsp.Servlet 项目实施方式:以认知java爬虫框架WebMagic开发为主,用所学java知识完成指 ...

  8. Java企业实训 - 01 - Java前奏

    前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...

  9. UML基础与Rose建模实训教程

    目  录 第1章  初识UML. 1 1.1 初识UML用例图... 1 1.2 初识UML类图... 3 第2章  Rational Rose工具... 6 2.1 安装与配置Rational Ro ...

随机推荐

  1. list对象指针与指针类型list

    #include <string> #include <cctype> #include <algorithm> #include <iostream> ...

  2. mac os x 之通过远程主机在nginx上部署web静态页面

    1.mac使用ssh命令登陆远程主机 因为苹果mac os x自带ssh命令,所以我们只需打开终端输入 $ ssh user@remote 在这之前最好在服务器上上传自己的ssh key,避免每次登陆 ...

  3. SQL记录-PLSQL日期与时间

    PL/SQL日期及时间 PL/SQL提供两个日期和时间相关的数据类型: 日期时间(Datetime)数据类型 间隔数据类型 datetime数据类型有: DATE TIMESTAMP TIMESTAM ...

  4. 如何通过卡面标识区分SD卡的速度等级

    现在很多设备都可以插存储卡,而比较流行的就是SD(Secure Digital Memory Card)卡和Micro SD(原名TF,Trans-flash Card )卡,这两种卡主要就是尺寸不同 ...

  5. 用代码块在new对象时set属性

    看到这样一种用法,很方便 request.setRequestHead(new RequestHeadType() {{ setRequestor("Online"); setRe ...

  6. hdu 5385 The path

    http://acm.hdu.edu.cn/showproblem.php?pid=5385 题意: 给定一张n个点m条有向边的图,构造每条边的边权(边权为正整数),令d(x)表示1到x的最短路,使得 ...

  7. mysql出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 错误

    init 神奇..其他的都没有成功,这个居然成功了!! 还试验过:sudo mysqld restart啥的,都没有用......

  8. Linux - ssh 连接问题

    SSH 连接方式 ssh -p 22 user@192.168.1.209 # 从linux ssh登录另一台linux ssh -p 22 root@192.168.1.209 CMD # 利用ss ...

  9. Servlet笔记9--Cookie

    Cookie: 使用Cookie机制实现十天内免登陆: Servlet程序: package com.bjpowernode.javaweb.servlet; import java.io.IOExc ...

  10. 【CTF REVERSE】WHCTF2017-CRACKME

    1.前言 假装大学生水一下CTF题目,常规思路.程序没有加壳,是VC写的MFC程序. 2.破题思路 1.MessageBox 下断点 2.找到提示错误字符串的函数B 3.跟踪函数 4.跟踪算法 3.实 ...