目录

1.创建web Maven项目

2.创建java源码文件和resources资源文件

3.创建数据库配置文件:jdbc.properties

4.项目总体目录:

5.添加spring配置文件:applicationContext.xml

6.添加springMVC配置文件:springMVC.xml

7.修改web.xml

8.创建数据库相关表

9.根据数据库表创建pojo类:User.java

10.编写dao层->mapper接口和xml文件 :UserMapper.java、UserMapper.xml

11.编写service层->UserService.java、UserServiceImpl.java

12.编写controller层->UserController.java

13.在jsp文件夹下创建edit.jsp和view.jsp

14.配置tomcat,启动服务器(记得加载项目名)

15.查看运行结果(已经成功)

16.项目源码


前言:学习maven后,感觉很厉害就搭建个项目小项目玩玩。

功能:实现表的增删改查

工具:IDEA    jdk 1.8   mysql

整体项目结构:

1.创建web Maven项目

,接下来在pom文件加入项目所需依赖:

 <dependencies>
<!--Spring框架核心库 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<!-- Spring Web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<!--连接驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!--数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- mybatis ORM框架 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!--mybatis-spring适配器 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!--整合mybatis如果不加这个包会报错 java.lang.NoClassDefFoundError: org/springframewor-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<!--测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--引入JSTL标签-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency> </dependencies>

2.创建java源码文件和resources资源文件

3.创建数据库配置文件:jdbc.properties

resources目录下添加:jdbc.properties

#数据库配置文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root

4.项目总体目录:

先给出项目总体目录

创建好java目录下的分层的包,resources下创建存放mapper的包,WEB-INF下创建jsp放跳转的页面(下面的配置文件中会配置这些路径)

5.添加spring配置文件:applicationContext.xml

resources目录下添加: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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 导入数据库配置文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 扫描包 这里的包需要根据自己java目录下的包名修改 -->
<context:component-scan base-package="com.demo.service" />
<!-- 配置数据库连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<!-- 基本属性 url、user、password -->
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" /> </bean> <!--Mybatis的SessionFactory配置-->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="typeAliasesPackage" value="com.demo.pojo" />
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!--Mybatis的Mapper文件识别-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.demo.dao"/>
</bean> </beans>

6.添加springMVC配置文件:springMVC.xml

resources目录下添加:springMVC.xml,并且根据文件中‘视图定位’的配置,所以在WEB-INF下创建jsp文件夹

<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"> <context:component-scan base-package="com.demo.controller" />
<!--
配置如果没有<mvc:annotation-driven/>,
那么所有的Controller可能就没有解析,所有当有请求时候都没有匹配的处理请求类,
就都去<mvc:default-servlet-handler/>即default servlet处理了。
添加上<mvc:annotation-driven/>后,
相应的do请求被Controller处理,而静态资源因为没有相应的Controller就会被default servlet处理。
总之没有相应的Controller就会被default servlet处理就ok了。
-->
<mvc:annotation-driven />
<!--开通静态资源的访问-->
<mvc:default-servlet-handler /> <!-- 视图定位 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean> </beans>

7.修改web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"> <!-- spring的配置文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <!--中文过滤器-->
<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> <!-- spring mvc核心:分发servlet -->
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- spring mvc的配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> </web-app>

8.创建数据库相关表

/*
Navicat Premium Data Transfer Source Server : phpStudy
Source Server Type : MySQL
Source Server Version : 50553
Source Host : localhost:3306
Source Schema : test Target Server Type : MySQL
Target Server Version : 50553
File Encoding : 65001 Date: 16/09/2019 19:46:40
*/ SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0; -- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,
`password` varchar(255) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 9 CHARACTER SET = gbk COLLATE = gbk_chinese_ci ROW_FORMAT = Dynamic; -- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'cheng', '128946');
INSERT INTO `user` VALUES (3, 'eff', 'f');
INSERT INTO `user` VALUES (4, 'fwefw', 'wef');
INSERT INTO `user` VALUES (8, 'fwef', '13'); SET FOREIGN_KEY_CHECKS = 1;

9.根据数据库表创建pojo类:User.java

pojo的编写规则:数据库字段对应类字段,字段类型要一直 。

package com.demo.pojo;

import java.io.Serializable;

public class User implements Serializable {

    private Integer id;
private String name;
private String password; public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} 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 == null ? null : name.trim();
}
}

10.编写dao层->mapper接口和xml文件 :UserMapper.java、UserMapper.xml

UserMapper.xml放在resources\mapper下,UserMapper.java放在com.demo.dao这个包下:

注意namespace="com.demo.dao.UserMapper",这里一定写对应的mapper接口具体路径

UserMapper接口的编写规则:

(1)方法名和对应的mapper配置文件中查询语句的id相同

(2)返回类型和resultType的类型一致,没有就是void。

(3)方法中的参数列表中的类型和parameterType一致。

(4)mapper配置文件的namespace对应mapper接口类的全路径。

UserMapper.java

package com.demo.dao;

import com.demo.pojo.User;

import java.util.List;

public interface UserMapper {

    List<User> list();

    void del(int id);

    void update(User user);

    void add(User user);

    User get(int id);

}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.demo.dao.UserMapper" > <select id="list" resultType="user">
select * from user
</select> <update id="update" parameterType="user">
update user set name=#{name} ,password=#{password} where id=#{id}
</update> <insert id="add" parameterType="user">
insert into user values (null,#{name},#{password});
</insert> <delete id="del">
delete from user where id=#{id}
</delete> <select id="get" resultType="user">
select * from user where id =#{id}
</select> </mapper>

11.编写service层->UserService.java、UserServiceImpl.java

UserService.java

package com.demo.service;

import com.demo.pojo.User;

import java.util.List;

public interface UserService {

    List<User> list();
void del(int id);
void update(User user);
void add(User user);
User get(int id); }

UserServiceImpl.java

package com.demo.service.impl;

import com.demo.dao.UserMapper;
import com.demo.pojo.User;
import com.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List; @Service
public class UserServiceImpl implements UserService{ @Autowired
UserMapper userMapper;
public List<User> list() {
return userMapper.list();
}
public void add(User user) {
userMapper.add(user);
}
public void del(int id) {
userMapper.del(id);
}
public void update(User user) {
userMapper.update(user);
}
public User get(int id) {
return userMapper.get(id);
} }

12.编写controller层->UserController.java

package com.demo.controller;

import com.demo.pojo.User;
import com.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; @Controller
@RequestMapping("")
public class UserController { @Autowired
UserService userService;
@RequestMapping("list")
public String list(Model model){
List<User> us= userService.list();
model.addAttribute("us", us);
return "view";
}
@RequestMapping("add")
public String add(User user,Model model){
userService.add(user);
return "redirect:list";
}
@RequestMapping("del")
public String del(int id){
userService.del(id);
return "redirect:list";
}
@RequestMapping("editUI")
public String editUI(int id,Model model){
User user = userService.get(id);
model.addAttribute("user",user);
return "edit";
}
@RequestMapping("update")
public String update(User user){
userService.update(user);
return "redirect:list";
} }

13.在jsp文件夹下创建edit.jsp和view.jsp

edit.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
<style>
#edit{width:300px;height:500px;margin: 100px auto}
</style>
</head>
<body>
<div id="edit">
<form action="/update">
姓名:<input type="text" name="name" value="${user.name}"/><br/>
密码:<input type="text" name="password" value="${user.password}"/><br/>
<input type="hidden" value="${user.id}" name="id">
<button type="submit" value="">修改</button>
</form>
</div>
</body>
</html>

view.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
<style>
table,table tr th, table tr td { border:1px solid rgba(41, 36, 35, 0.96); }
#mytable{width:300px;margin: 100px auto}
#add{width:300px;height:500px;margin: 100px auto}
</style>
</head>
<body>
<div id="list">
<table id="mytable">
<thead>
<th>id</th>
<th>名字</th>
<th>密码</th>
<th>修改</th>
<th>删除</th>
</thead>
<tbody>
<c:forEach items="${us}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.password}</td>
<td><a href="editUI?id=${user.id}">edit</a> </td>
<td><a href="del?id=${user.id}">delete</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</div> <div id="add">
<form action="/add">
姓名:<input type="text" name="name" value=""/><br/>
密码:<input type="text" name="password" value=""/><br/>
<button type="submit">添加</button>
</form>
</div> </body>
</html>

最后把index.jsp内容修改为:

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title> </head>
<body>
<%
response.sendRedirect(request.getContextPath()+"/list");
%>
</body>
</html>

14.配置tomcat,启动服务器(记得加载项目名)

15.查看运行结果(已经成功)

16.项目源码

源码+sql:https://www.lanzous.com/i679e2d

如果有什么问题,可以私聊我,看见解决

欢迎不会的可以相互交流。

交流群:629383010(免费)

Maven+SSM框架,实现单表简单的增删改查的更多相关文章

  1. Django---ORM简介丶单表操作丶增删改查

    一丶ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  2. Django【第6篇】:Django之ORM单表操作(增删改查)

    django之数据库表的单表查询 一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name =& ...

  3. 初识hibernate框架之一:进行简单的增删改查操作

    Hibernate的优势 l 优秀的Java 持久化层解决方案  (DAO) l 主流的对象—关系映射工具产品 l 简化了JDBC 繁琐的编码 l 将数据库的连接信息都存放在配置文件 l 自己的ORM ...

  4. IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)

    原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...

  5. Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查

    本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...

  6. BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块

    NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...

  7. 用CI框架向数据库中实现简单的增删改查

    以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html Code ...

  8. springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能

    转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包     数据库表 数据库表就不用教大家了,一张表,很简 ...

  9. SpringMVC之简单的增删改查示例(SSM整合)

    本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...

随机推荐

  1. Python入门基础学习(环境安装/字符串)

    Python基础学习笔记(一) 编译性语言与解释性语言: 编译性语言:读完代码再执行,一般会生成一个文件,如C语言会生成一个.h的文件给计算机执行 如:C,C++,C#,Java,Go 解释性语言:读 ...

  2. 在C++工程上添加CUDA编译环境

    1.直接在新建工程的时候选择CUDA,这样的工程既能编译C++也能编译CU 2.在已有的C++工程上添加CUDA编译环境 右键工程-->生成依赖项-->生成自定义-->勾选CUDA ...

  3. 01day-webpack

    <!-- .sass后缀的文件名 比较老了 现在它的后缀名是.scss 其实他们是同一个东西 只是 后缀名发生了变化 以 .sass写的文件的内容是 他没有括号 没有分号 有点怪 它跟新为了.s ...

  4. HTML与CSS学习笔记(7)

    1.响应式布局 利用媒体查询,即media queries,可以针对不同的媒体类型定义不同的样式,从而实现响应式布局. 常见选项: 媒体类型 and.not min-width.max-width: ...

  5. 重构 改善既有代码的设计 (Martin Fowler 著)

    第1章 重构, 第一个案例 1.1 起点 1.2 重构的第一步 1.3 分解并重组 statement() 1.4 运用多态取代与价格相关的条件逻辑 1.5 结语 第2章 重构原则 2.1 何谓重构 ...

  6. QDialog 设置成圆角

    void paintEvent(QPaintEvent *event) { Q_UNUSED(event); QBitmap bmp(this->size()); bmp.fill(); QPa ...

  7. USB鼠标抓包数据(转)

    https://blog.csdn.net/zqixiao_09/article/details/53056854

  8. vscode自定义vue模板代码

    File--->preference -->user Snippets-->搜索html.json 编辑 加入以下自定义代码内容 "Html5-Vue": { & ...

  9. JSON转成List结构数据

    先要引入对应的jar,然后调用net.sf.json库的 ObjectMapper mapper = new ObjectMapper(); JavaType javaType = mapper.ge ...

  10. Uboot启动流程分析(一)

    1.前言 Linux系统的启动需要一个bootloader程序,该bootloader程序会先初始化DDR等外设,然后将Linux内核从flash中拷贝到DDR中,最后启动Linux内核,uboot的 ...