logo资料库

Spring MVC实现mysql数据库增删改查完整实例.pdf

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
Spring MVC实现实现mysql数据库增删改查完整实例 数据库增删改查完整实例 主要介绍了Spring MVC实现mysql数据库增删改查完整实例,从创建一个web项目开始,分享了项目结构以及具 体Java代码和前端页面等相关内容,具有一定借鉴价值,需要的朋友可以了解下。 最近刚学了springmvc框架,感觉确实方便了不少,减少了大量的冗余代码。就自己做了个小项目练练手,这是个初级的 springmvc应用的项目,没有用到mybatis,项目功能还算完善,实现了基本的增删改查的功能。 项目环境: -系统:win10 -开发环境:eclipseOxygenReleaseCandidate3(4.7) -jdk版本:java1.8(121) -mysql:5.7 -spring:4.0 -tomcat:8.5 用到的技术: springmvcspringjspjdbcjavaBeanjsjstl 访问地址:http://localhost:8080/你的项目名/all 声明:我只是一个刚入门不久的新手,所写代码难免有出错之处,如发现欢迎各位指出,谢谢大家。 下面就贴上详细过程 1.首先创建一个 首先创建一个web项目项目(DynamicWebProject) 项目名字就自己写了,不再详细写
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 * @author janinus */ public List queryAll() { String sql = "select id,name,javaScore,htmlScore,cssScore from student"; //将查询结果映射到Student类中,添加到list中,并返回 return jdbcTemplate.query(sql, new StudentMapper()); } /** * 通过姓名查询 * * @param name * @return 返回值类型: List * @author janinus */ public List 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) == 1; } /** * 更新学生信息 * * @param student * @return 返回值类型: boolean * @author janinus */ public boolean updateStu(Student student) { String sql = "update student set name=? ,javaScore=?,htmlScore = ? ,cssScore = ? where id = ?"; Object stuObj[] = new Object[] { student.getName(), student.getJavaScore(), student.getHtmlScore(), student.getCssScore(), student.getId() }; return jdbcTemplate.update(sql, stuObj) == 1; } /** * 返回总成绩前n名学生 * * @param num * @return 返回值类型: List * @author janinus */ public List topNum(int num) { String sql = "select id,name,javaScore+htmlScore+cssScore from student order by javaScore+htmlScore+cssScore desc ,name asc limit ?"; return jdbcTemplate.query(sql, new RowMapper() { @Override public Student mapRow(ResultSet rs, int rowNum) throws SQLException { // TODO Auto-generated method stub Student student = new Student(); student.setId(rs.getInt(1)); student.setName(rs.getString(2)); student.setTotalScore(rs.getDouble(3)); return student; } }, num); } /** * * StudentMapper数据库映射 * * @ClassName StudentMapper * @author janinus * @date 2017年6月27日 * @Version V1.0 */ class StudentMapper implements RowMapper { @Override public Student mapRow(ResultSet rs, int rowNum) throws SQLException { // TODO Auto-generated method stub Student student = new Student(); student.setId(rs.getInt(1)); student.setName(rs.getString(2)); student.setJavaScore(rs.getDouble(3)); student.setHtmlScore(rs.getDouble(4)); student.setCssScore(rs.getDouble(5)); return student; } } } 3. StudentController ,前后端交互类 最后是与用户交互有关的控制层StudentController类,这个类主要用来将前后端联合, 实现完整的交互。下面是具体代码:
package controller; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import bean.Student; import dao.StudentDao; @Controller public class StudentController { /** * * 从数据库中获取全部学生信息,将数据返回给主页index,jsp * * @param model * @return 返回值类型: String * @author janinus */ @RequestMapping(value = "/all") public String queryAll(Model model) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //从ioc容器中获取dao StudentDao dao = (StudentDao) context.getBean("dao"); model.addAttribute("students", dao.queryAll()); model.addAttribute("tops", dao.topNum(3)); return "index.jsp"; } /** * 通过姓名查找学生,使用模糊查找,将结果返回给index.jsp * * @param name * @param model * @return 返回值类型: String * @author janinus */ @RequestMapping(value = "/queryByName") public String queryByName(String name, Model model) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //从ioc容器中获取dao StudentDao dao = (StudentDao) context.getBean("dao"); model.addAttribute("students", dao.queryByName(name)); model.addAttribute("tops", dao.topNum(3)); return "index.jsp"; } /** * 添加新学生,并将结果返回给all页面,由all转发到主页 * @param name * @param javaScore * @param htmlScore * @param cssScore * @param model * @return 返回值类型: String * @author janinus */ @RequestMapping(value = "/add") public String addStu(String name, String javaScore, String htmlScore, String cssScore, Model model) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); StudentDao dao = (StudentDao) context.getBean("dao"); Student student = new Student(); student.setName(name); student.setJavaScore(Double.parseDouble(javaScore)); student.setHtmlScore(Double.parseDouble(htmlScore)); student.setCssScore(Double.parseDouble(cssScore)); boolean result = dao.addStu(student); if (result) model.addAttribute("msg", ""); else model.addAttribute("msg", ""); return "all"; } /** * 通过id删除学生 * @param id * @param model
* @return 返回值类型: String * @author janinus */ @RequestMapping(value = "/deleteById") public String deleteById(String id, Model model) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); StudentDao dao = (StudentDao) context.getBean("dao"); boolean result = dao.deleteStu(Integer.parseInt(id)); if (result) model.addAttribute("msg", ""); else model.addAttribute("msg", ""); return "all"; } /** * * @param id * @param name * @param javaScore * @param htmlScore * @param cssScore * @param model * @return 返回值类型: String * @author janinus */ @RequestMapping(value = "/update") public String updateStu(String id, String name, String javaScore, String htmlScore, String cssScore, Model model) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); StudentDao dao = (StudentDao) context.getBean("dao"); Student student = new Student(); student.setId(Integer.parseInt(id)); student.setName(name); student.setJavaScore(Double.parseDouble(javaScore)); student.setHtmlScore(Double.parseDouble(htmlScore)); student.setCssScore(Double.parseDouble(cssScore)); boolean result = dao.updateStu(student); if (result) model.addAttribute("msg", msg("修改成功")); else model.addAttribute("msg", msg("修改失败")); return "all"; } /** * 要弹出的页面消息 * @param msg * @return 返回值类型: String * @author janinus */ public String msg(String msg) { return ""; } } 所有的java代码已经完成,下面只剩下具体的xml配置和前端页面。 4.前端页面 前端页面 由于是一个简单的小项目,我的js,css都在同一个页面,没有分开,只有两个页面, 1.index.jsp 主页,截图
编辑 详细代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 学生管理