金陵科技学院 软件工程学院
学 生 实 验 报 告
(理工类)
课程名称:javaEE 主流开源框架专业班级: 15 软嵌 3 班
学生学号: 1512011096 学生姓名:
阮笑逸
所属院部: 软件工程学院 指导教师:
师 欢
20 17 ——20 18 学年
第 2 学期
1
金陵科技学院教务处制
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。若因课程特点需
打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用
A4 的纸张。
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验
仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科
特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,
以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验
报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报
告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课
程的实验大纲。
2
金陵科技学院 软件工程学院
实验项目名称:基于 spring 框架实现用户的注册和登陆
实验学时: 12
同组学生姓名:
阮笑逸
实验地点: 1507
实验日期:
4.2-4.3
实验成绩:
批改教师:
批改时间:
3
《JavaEE 主流开源框架》实验指导书
实验 1 基于 spring 框架实现用户的注册和登陆
一、实验目的
(1)理解 Spring 中 IOC 和 DI 的思想;
(2)掌握 Spring 的配置文件;
(3)掌握 ApplicationContext 容器的使用;
(4)掌握基于代理类的 AOP 的实现;
(5)掌握 JdbcTemplate 类中几个常用的方法;
(6)掌握 Spring 中事务的使用;
二、实验要求
(1)记录本实验的过程,调试程序要记录调试过程中出现的问题及解决办
法;
(2)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编
程及调试经验;
(3)做完实验后给出本实验的实验报告。
三、实验设备环境
Windows 7 以上 、Eclipse、Mysql 数据库
四、实验内容和步骤
(1)体验 Spring 框架的使用。
使用 spring 框架实现用户登陆和注册。
(2)设计一个应用程序,在该程序定义用户类、数据层和业务逻辑层。该
程序会涉及到两张表:User 表:用户名和密码;UserInfo 表:编号,用户名,
密码,真实姓名,地址,电话,邮箱,性别,年龄。该程序的功能包括:
A.用户登陆,根据输入的用户名和密码,从数据库中查询,信息是否
存在,给出相应的提示。
B.若用户名不存在,再进行注册,跟新相关的数据表。
C.注册成功后,显示当前你是第多少位注册成功的用户,并展示用户
的详细信息。
核心代码提示:
逻辑层
Login.java
package com.soft.spring.login.service;
import com.soft.spring.login.user.User;
public interface login {
public boolean login(String userName,String password);
4
金陵科技学院 软件工程学院
public User register(User user);
LoginImpl.java
package com.soft.spring.login.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.stereotype.Repository;
import com.soft.spring.login.dao.checkInfoDao;
import com.soft.spring.login.user.User;
@Repository(value = "login")
public class loginImpl implements login {
@Autowired
private checkInfoDao checkInfoDao;
public checkInfoDao getCheckInfoDao() {
return checkInfoDao;
}
public void setCheckInfoDao(checkInfoDao checkInfoDao) {
this.checkInfoDao = checkInfoDao;
}
@Override
public booleanlogin(String userName, String password) {
User user = checkInfoDao.findByUserName(userName);
if(user.getPassword().equals(password)){
return true;
}else{
System.out.println("该用户密码不正确");
return false;
}
}
@Override
public User register(User user) {
int just = checkInfoDao.register(user);
if(just > 0){
User userInfo = checkInfoDao.findByUserName(user.getUsername());
return userInfo;
}else{
return null;
}
}
}
Dao 层
checkInfoDao.java
package com.soft.spring.login.dao;
import com.soft.spring.login.user.User;
public interface checkInfoDao {
5
public User findByUserName(String userName);
public int register(User user);
}
checkInfoDaoImpl.java
package com.soft.spring.login.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import com.soft.spring.login.user.User;
@Repository(value = "checkInfoDao")
public class checkInfoDaoImpl implements checkInfoDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public User findByUserName(String userName) {
String sql = "SELECT * FROM UserInfo WHERE username = ?";
RowMapper rowMapper = new BeanPropertyRowMapper(User.class);
User user = jdbcTemplate.queryForObject(sql,rowMapper,userName);
return user;
}
@Override
public int register(User user) {
String sql = "insert into
UserInfo(username,password,turename,address,tel,eamil,gender,age) value
(?,?,?,?,?,?,?,?)";
Object[] obj = new Object[]{user.getUsername(), user.getPassword(),
user.getTruename(),user.getAddress(),user.getTel(),user.getEmail(),user.getGend
er(),user.getAge()};
int num = jdbcTemplate.update(sql, obj);
if(num > 0){
System.out.println("注册成功");
}else{
System.out.println("注册失败");
}
return num;
}
6
金陵科技学院 软件工程学院
}
public class User {
private String username;
private String password;
private String truename;
private String address;
private int tel;
private String email;
private String gender;
private int age;
private int id;
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 getTruename() {
return truename;
}
public void setTruename(String truename) {
this.truename = truename;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getTel() {
return tel;
}
7
public void setTel(int tel) {
this.tel = tel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String username, String password, String truename, String address,
int tel, String email, String gender,
int age) {
super();
this.username = username;
this.password = password;
this.truename = truename;
this.address = address;
this.tel = tel;
this.email = email;
this.gender = gender;
this.age = age;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password + ",
truename=" + truename + ", address="
+ address + ", tel=" + tel + ", email=" + email + ", gender=" + gender
+ ", age=" + age + "]";
8