最近刚学了spring mvc框架,感觉确实方便了不少,减少了大量的冗余代码。就自己做了个小项目练练手,这是个初级的spring mvc应用的项目,没有用到mybatis,项目功能还算完善,实现了基本的增删改查的功能。
项目环境:
-
系统:win10
-
开发环境:eclipse Oxygen Release Candidate 3 (4.7)
-
jdk版本:java1.8(121)
-
mysql:5.7
-
spring:4.0
-
tomcat:8.5
用到的技术: -
spring mvc
-
spring
-
jsp
-
jdbc
-
javaBean
-
js
-
jstl
访问地址:http://localhost:8080/你的项目名/all
声明:我只是一个刚入门不久的新手,所写代码难免有出错之处,如发现欢迎各位指出
下面就贴上详细过程
##1. 首先创建一个web项目(Dynamic Web Project)
项目名字就自己写了,不再详细写
##2. 这是我的已完成项目结构
我只是为了实现功能,没有用到接口,只用了简单的三个类,bean包下的实体类,dao层数据库访问类,controller层的界面控制类,
所有引用的jar包都在/WebContent/WEB-INF/lib文件夹下,这点与普通的java项目不同。
3. 具体java代码
1.Student类,实体类
- 首先要写一个javaBean,我的是Student作为javaBean,详细代码如下:
package bean;
public class Student {
private Integer id;//学生id
private String name;//学生姓名
private Double javaScore;//java成绩
private Double htmlScore;//html成绩
private Double cssScore;//css成绩
private Double totalScore;
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 Double getJavaScore() {
return javaScore;
}
public void setJavaScore(Double javaScore) {
this.javaScore = javaScore;
}
public Double getHtmlScore() {
return htmlScore;
}
public void setHtmlScore(Double htmlScore) {
this.htmlScore = htmlScore;
}
public Double getCssScore() {
return cssScore;
}
public void setCssScore(Double cssScore) {
this.cssScore = cssScore;
}
public Double getTotalScore() {
return totalScore;
}
public void setTotalScore(Double totalScore) {
this.totalScore = totalScore;
}
}
2. StudentDao,数据库访问操作类
- 然后是dao层即数据访问层的代码,这里使用的是spring封装的一个类(JdbcTemplate),里面有一些操作数据库的方法,不用再自己写大量重复代码,只要写SQL语句。下面是具体代码:
package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.List;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import bean.Student;
public class StudentDao {
/**
* @Fields jdbcTemplate : TODO
*/
private JdbcTemplate jdbcTemplate;
/**
* spring提供的类
*
* @param jdbcTemplate
* 返回值类型: void
* @author janinus
*/
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
/**
* 查询所有学生
*
* @return 返回值类型: List<Student>
* @author janinus
*/
public List<Student> queryAll() {
String sql = "select id,name,javaScore,htmlScore,cssScore from student";
//将查询结果映射到Student类中,添加到list中,并返回
return jdbcTemplate.query(sql, new StudentMapper());
}
/**
* 通过姓名查询
*
* @param name
* @return 返回值类型: List<Student>
* @author janinus
*/
public List<Student> queryByName(String name) {
String sql = "select id,name,javaScore,htmlScore,cssScore from student where name like '%" + name + "%'";
return jdbcTemplate.query(sql, new StudentMapper());
}
/**
* 添加学生
*
* @param student
* @return 返回值类型: boolean
* @author janinus
*/
public boolean addStu(Student student) {
String sql = "insert into student(id,name,javaScore,htmlScore,cssScore) values(0,?,?,?,?)";
return jdbcTemplate.update(sql,
new Object[] { student.getName(), student.getJavaScore(), student.getHtmlScore(),
student.getCssScore() },
new int[] { Types.VARCHAR, Types.DOUBLE, Types.DOUBLE, Types.DOUBLE }) == 1;
}
/**
* 删除学生
*
* @param id
* @return 返回值类型: boolean
* @author janinus
*/
public boolean deleteStu(Integer id) {
String sql = "delete from student where id = ?";
return jdbcTemplate.update(sql, id) =