能够对数据库进行增、删、改、查操作使用springmvc框架进行搭建。
创建Stu.java文件,内容有:
1 public class Stu { 2 //学生的相关属性 3 private Integer id; //学号 4 private String name; //姓名 5 private Integer age; //年龄 6 private String addr; //居住地址 7 //生成相应的set和get方法 8 public Integer getId() { 9 return id; 10 } 11 public void setId(Integer id) { 12 this.id = id; 13 } 14 public String getName() { 15 return name; 16 } 17 public void setName(String name) { 18 this.name = name; 19 } 20 public Integer getAge() { 21 return age; 22 } 23 public void setAge(Integer age) { 24 this.age = age; 25 } 26 public String getAddr() { 27 return addr; 28 } 29 public void setAddr(String addr) { 30 this.addr = addr; 31 } 32 //重写toString方法 33 @Override 34 public String toString() { 35 return "Stu [id=" + id + ", name=" + name + ", age=" + age + ", addr=" + addr + "]"; 36 }
以及一些有关框架的配置文件mybatis-config.xml、applicationContext.xml、springmvc-config.xml
1 applicationContext.xml 2 <?xml version="1.0" encoding="UTF-8"?> 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" 5 xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 6 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 7 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 8 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd 9 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 10 http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> 11 12 <!-- 1.加载jdbc.properties文件的位置 --> 13 <context:property-placeholder location="classpath:jdbc.properties"/> 14 15 <!-- 2.配置druid连接池 ,id是固定值,class是druid连接池类的全路径 --> 16 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> 17 <!-- 配置连接数据库的基本信息 --> 18 <property name="driverClassName" value="${db.driverClassName}"></property> 19 <property name="url" value="${db.url}"></property> 20 <property name="username" value="${db.username}"></property> 21 <property name="password" value="${db.password}"></property> 22 </bean> 23 24 <!-- 3.整合spring和mybatis框架 25 将SqlSession等对象的创建交给Spring容器 26 id值(sqlSessionFactory)是固定值 27 --> 28 <bean id="sqlSessionFactory" 29 class="org.mybatis.spring.SqlSessionFactoryBean"> 30 <!-- 3.1.指定mybatis核心配置文件的位置 --> 31 <property name="configLocation" 32 value="classpath:mybatis/mybatis-config.xml"></property> 33 <!-- 3.2.配置连接池(数据源) ref指向连接池bean对象的id值 --> 34 <property name="dataSource" ref="dataSource"></property> 35 <!-- 3.3、扫描所有的 XxxMapper.xml映射文件,读取其中配置的SQL语句 --> 36 <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/> 37 </bean> 38 39 <!-- 4、定义mapper接口扫描器 40 41 --> 42 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 43 <!-- 扫描所有XxxMapper接口,将接口实例的创建交给spring容器 --> 44 <property name="basePackage" 45 value="com.tedu.dao"/> 46 </bean> 47 48 49 </beans> 50 springmvc-config.xml 51 <?xml version="1.0" encoding="UTF-8"?> 52 <beans xmlns="http://www.springframework.org/schema/beans" 53 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" 54 xmlns:context="http://www.springframework.org/schema/context" 55 xsi:schemaLocation="http://www.springframework.org/schema/mvc 56 http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 57 http://www.springframework.org/schema/beans 58 http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 59 http://www.springframework.org/schema/context 60 http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 61 62 <!-- 1.配置前端控制器放行静态资源(html/css/js等,否则静态资源将无法访问) --> 63 <mvc:default-servlet-handler/> 64 65 <!-- 2.配置注解驱动,用于识别注解(比如@Controller) --> 66 <mvc:annotation-driven></mvc:annotation-driven> 67 68 <!-- 3.配置需要扫描的包:spring自动去扫描 base-package 下的类, 69 如果扫描到的类上有 @Controller、@Service、@Component等注解, 70 将会自动将类注册为bean 71 --> 72 <context:component-scan base-package="com.tedu.controller"> 73 </context:component-scan> 74 75 <!-- 4.配置内部资源视图解析器 76 prefix:配置路径前缀 77 suffix:配置文件后缀 78 --> 79 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 80 <property name="prefix" value="/WEB-INF/pages/"/> 81 <property name="suffix" value=".jsp"/> 82 </bean> 83 84 85 </beans>
进行增、删、改、查的操作控制的相关文件代码
1 /* 2 * 负责处理用户的所有请求 3 */ 4 @Controller 5 public class StuController { 6 7 /* 8 * /{jspName}中的jspName用于接收访问的路径名称 9 * 例如:访问路径为http://localhost/yonghe/index 10 * 那么{}中的jspName的值就是"index",再将{}中jspName的值 11 * 传给形参的jspName,最后作为返回值返回,表示跳转到这个名称 12 * 对应的jsp页面 13 */ 14 @RequestMapping("/{page}") 15 public String page(@PathVariable String page) { 16 return page; 17 } 18 19 /* 20 * 获取StuMapper接口的子类实例 21 */ 22 @Autowired 23 StuMapper stuMapper; 24 25 /* 26 * 1.查询所有学生信息 27 */ 28 @RequestMapping("/stuList") 29 public String StuList(Model model) { 30 //查询所有学生信息 31 List<Stu> list=stuMapper.findAll(); 32 //将学生信息的集合存入model中,再转发到jsp中 33 model.addAttribute("list", list); 34 //跳转到stu_list.jsp,显示所有学生信息 35 return "stu_list"; 36 37 } 38 39 /* 40 * 2.根据id删除学生信息 41 */ 42 @RequestMapping("/stuDelete") 43 public String stuDelete(Integer id) { 44 //调用stuMapper的deleteById方法,根据id删除学生信息 45 stuMapper.deleteById(id); 46 //跳转到学生列表页面,查询所有学生信息 47 //return "stu_list";直接跳转到学生列表页面,不会显示学生信息 48 return "forward:/stuList"; 49 } 50 51 /* 52 * 3.新增学生信息 53 */ 54 @RequestMapping("/stuAdd") 55 public String stuadd(Stu stu) { 56 //调用stuMapper的add方法 57 stuMapper.add(stu); 58 //跳转到学生列表页面,查询最新所有学生信息 59 return "forward:/stuList"; 60 } 61 62 /* 63 * 4.根据id查询学生信息 64 */ 65 @RequestMapping("/stuInfo") 66 public String stuInfo(Integer id,Model model) { 67 //调用stuMapper的findById方法,进行id查询学生信息 68 Stu stu=stuMapper.findById(id); 69 //将学生对象存入Madel中,再带到学生信息修改页面 70 model.addAttribute("stu", stu); 71 //将查询到的学生信息带到学生信息修改页面,进行数据的回显 72 return "stu_update"; 73 } 74 75 /* 76 * 5.根据id修改学生信息 77 */ 78 @RequestMapping("/stuUpdate") 79 public String stuUpdate(Stu stu) { 80 //调用stuMapper的updateById方法 81 stuMapper.updateById(stu); 82 //转发到查询所有门店的方法,跳转到学生列表页面,查询最新学生信息 83 return "redirect:/stuList"; 84 } 85 } 86 <?xml version="1.0" encoding="UTF-8"?> 87 <!DOCTYPE mapper 88 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 89 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 90 <!-- 学生表的映射文件 namespace值为对应接口的全路径 --> 91 <mapper namespace="com.tedu.dao.StuMapper"> 92 <!-- 1.查询所有学生信息,id值为对应接口中方法的名字 93 resultType指定将查询的结果封装到哪个pojo对象中 94 --> 95 <select id="findAll" resultType="com.tedu.pojo.Stu"> 96 select * from stu 97 </select> 98 99 <!-- 2.根据id删除学生信息(id是传过来的) --> 100 <delete id="deleteById"> 101 delete from stu where id=#{id} 102 </delete> 103 104 <!-- 3.新增学生信息(name、age、addr都是传过来的) --> 105 <insert id="add"> 106 insert into stu value(null,#{name},#{age},#{addr}) 107 </insert> 108 109 <!-- 4.根据id查询门店信息 --> 110 <select id="findById" resultType="com.tedu.pojo.Stu"> 111 select * from stu where id=#{id} 112 </select>
113 <!-- 根据id修改学生信息(修改后的学生name、age、addr也都是传过来的) --> 114 <update id="updateById"> 115 update stu set name=#{name},age=#{age},addr=#{addr} 116 where id=#{id} 117 </update> 118 119 120 </mapper>
最后运行结果