Spring MVC 4.1.3 + MyBatis零基础搭建Web开发框架(注解模式)

下面是Spring MVC 4.1.3 + MyBatis零基础搭建Web开发框架(注解模式)的完整攻略。

1. 环境搭建

  • JDK安装及环境变量配置
  • Maven安装及配置
  • Eclipse/IDEA集成Maven插件及配置

2. 项目建立

  • 利用Maven建立项目:新建Maven项目,设置GroupId、ArtifactId、Version等基本信息。
  • 导入相关依赖:spring-webmvcmybatismysql-connector-java等。
  • 新建src/main/resources目录,创建Spring配置文件spring-mvc.xml、MyBatis配置文件mybatis-config.xml及数据库配置文件jdbc.properties

3. 数据库连接

jdbc.properties文件中配置数据库相关参数,如数据库连接地址、用户名、密码等:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=

4. MyBatis映射

  • 建立数据模型JavaBean,并在其中定义相关属性及Getter/Setter方法。
  • 建立对应的Mapper映射文件,编写增删改查等基本SQL语句。

5. Spring MVC配置

  • spring-mvc.xml文件中配置dataSourcesqlSessionFactorytransactionManager等相关信息。
  • 配置Spring MVC的控制器、视图解析器等信息。

6. 编写Controller和JSP

  • 编写Controller类,利用@RequestMapping注解进行请求地址映射。
  • 编写JSP页面,进行数据展示。

注:这里为了方便,只是简略介绍了整体建立过程。具体步骤和代码请参考完整的教程。

接下来,以两个示例说明具体步骤和代码。

示例1:用户信息查询

  1. 创建数据模型对象User

src/main/java目录下创建com.example.model.User.java文件,定义用户信息相关属性及Getter/Setter方法:

package com.example.model;

public class User {
    private int userId;
    private String userName;
    private int age;

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
  1. 创建MyBatis映射文件UserMapper.xml

src/main/resources目录下创建com.example.mapper.UserMapper.xml文件,定义用户信息相关的SQL语句操作:

<?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.example.mapper.UserMapper">

    <resultMap id="userMap" type="com.example.model.User">
        <id column="id" property="userId"/>
        <result column="username" property="userName"/>
        <result column="age" property="age"/>
    </resultMap>

    <select id="getUserById" resultMap="userMap">
        select * from user where id = #{id}
    </select>

    <select id="getAllUser" resultMap="userMap">
        select * from user
    </select>

</mapper>
  1. 新建Controller类

src/main/java目录下创建com.example.controller.UserController.java文件,定义用户信息查询控制器:

package com.example.controller;

import com.example.mapper.UserMapper;
import com.example.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/getUserById")
    public ModelAndView getUserById(int id) {
        User user = userMapper.getUserById(id);
        ModelAndView modelAndView = new ModelAndView("user");
        modelAndView.addObject("user", user);
        return modelAndView;
    }

    @RequestMapping("/getAllUser")
    public ModelAndView getAllUser() {
        List<User> userList = userMapper.getAllUser();
        ModelAndView modelAndView = new ModelAndView("userList");
        modelAndView.addObject("userList", userList);
        return modelAndView;
    }
}
  1. 新建JSP页面

src/main/webapp/WEB-INF/views目录下创建user.jspuserList.jsp页面,用于展示用户信息:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>User Info</title>
</head>
<body>
    <table>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Age</th>
        </tr>
        <tr>
            <td><%= request.getAttribute("user.userId") %></td>
            <td><%= request.getAttribute("user.userName") %></td>
            <td><%= request.getAttribute("user.age") %></td>
        </tr>
    </table>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>User List</title>
</head>
<body>
    <table>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Age</th>
        </tr>
        <% 
        List<User> userList = (List<User>)request.getAttribute("userList");
        for(User user : userList) { %>
        <tr>
            <td><%= user.getUserId() %></td>
            <td><%= user.getUserName() %></td>
            <td><%= user.getAge() %></td>
        </tr>
        <% } %>
    </table>
</body>
</html>
  1. 配置Spring MVC

src/main/resources/spring-mvc.xml文件中配置控制器、视图解析器等信息:

<mvc:annotation-driven />
<context:component-scan base-package="com.example.controller" />

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="mapperLocations" value="classpath:com/example/mapper/*.xml" />
    <property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>

<mybatis:scan base-package="com.example.mapper" />
  1. 测试

运行项目,打开浏览器,输入地址http://localhost:8080/user/getUserById?id=1 或 http://localhost:8080/user/getAllUser,即可查看查询到的用户信息。

示例2:添加新用户

  1. 添加数据模型对象NewUser

与示例1中的数据模型相同,不再赘述。

  1. 创建MyBatis映射文件NewUserMapper.xml

src/main/resources目录下创建com.example.mapper.NewUserMapper.xml文件,定义新增用户相关的SQL语句操作:

<?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.example.mapper.NewUserMapper">

    <insert id="addUser" useGeneratedKeys="true" keyProperty="id">
        insert into user(username, age) values(#{userName}, #{age})
    </insert>

</mapper>
  1. 新建Controller类

src/main/java目录下创建com.example.controller.NewUserController.java文件,定义用户信息新增控制器:

package com.example.controller;

import com.example.mapper.NewUserMapper;
import com.example.model.NewUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/newUser")
public class NewUserController {

    @Autowired
    private NewUserMapper newUserMapper;

    @RequestMapping("/addUser")
    public ModelAndView addUser(NewUser newUser) {
        newUserMapper.addUser(newUser);
        ModelAndView modelAndView = new ModelAndView("add");
        return modelAndView;
    }
}
  1. 新建JSP页面

src/main/webapp/WEB-INF/views目录下创建add.jsp页面,用于展示新增用户后的结果:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Add Result</title>
</head>
<body>
    <p>New user added successfully!</p>
</body>
</html>
  1. 配置Spring MVC

src/main/resources/spring-mvc.xml文件中新增Mapper扫描配置:

<mybatis:scan base-package="com.example.mapper" />
  1. 测试

运行项目,打开浏览器,输入地址http://localhost:8080/newUser/addUser?userName=test&age=20,即可添加一个年龄为20、姓名为test的新用户,并查看新增结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring MVC 4.1.3 + MyBatis零基础搭建Web开发框架(注解模式) - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • SpringBoot JPA懒加载失效的解决方案(亲测有效)

    下面我将详细讲解“SpringBoot JPA懒加载失效的解决方案(亲测有效)”的完整攻略。 1. 问题描述 在使用SpringBoot框架中,我们常常会使用JPA来进行数据持久化操作,而在使用JPA的过程中,我们可能会遇到懒加载失效的问题。具体来说,就是当我们使用懒加载的注解(如@OneToMany)来关联查询两个实体类时,有时候却发现第二个实体类并没有进…

    Java 2023年5月20日
    00
  • 一文探究ArrayBlockQueue函数及应用场景

    一文探究ArrayBlockingQueue函数及应用场景 介绍 ArrayBlockingQueue是Java中的一个阻塞队列实现类,它是一个支持在队列的两端插入和删除元素的线程安全队列。它的大小是有限的,当队列已满时,插入操作会阻塞线程,直到队列有空闲空间;当队列为空时,获取操作会阻塞线程,直到队列有可用元素。 使用方法 创建ArrayBlockingQ…

    Java 2023年5月26日
    00
  • java多线程模拟交通灯管理系统

    下面我将详细讲解如何编写一个Java多线程模拟交通灯管理系统。 前言 交通灯是城市中必不可少的重要设施之一,能帮助路面交通管理变得更加有序。为了更好地理解交通灯的工作原理,我们可以开发一个Java多线程模拟交通灯管理系统来模拟交通灯的运行过程。 设计思路 我们的系统需要设计两个交通灯对象,即红绿灯和绿红灯,交替更替地工作。为了实现此目的,我们可以使用多线程的…

    Java 2023年5月19日
    00
  • Java实现的朴素贝叶斯算法示例

    下面是”Java实现的朴素贝叶斯算法示例”的完整攻略。 1. 背景介绍 朴素贝叶斯算法是一类基于贝叶斯定理的简单概率分类算法之一。它通过特征之间的独立假设,将多维问题转化为一维问题,从而简化了计算。 2. 算法原理 朴素贝叶斯算法根据贝叶斯公式: P(Y|X) = P(X|Y) * P(Y) / P(X) 其中,Y为类别,X为特征,P(Y|X)为在知道特征X…

    Java 2023年5月19日
    00
  • 图书管理系统java版

    “图书管理系统java版”完整攻略 1. 简介 “图书管理系统java版”是一个用Java语言开发的图书管理系统,旨在提供一个方便管理图书信息的工具,可实现添加、删除、修改、查询等功能。 2. 环境搭建 在开始使用“图书管理系统java版”之前,需要先搭建Java环境和数据库环境。具体步骤如下: 下载安装Java开发工具包(JDK),建议使用最新版本。 下载…

    Java 2023年5月20日
    00
  • Java使用JSONObject操作json实例解析

    下面我将为你详细讲解Java使用JSONObject操作json实例解析的完整攻略。 什么是JSONObject 在Java中操作json数据需要用到第三方库,其中一个流行的库是JSON-java。而JSONObject就是JSON-java库中的一个类,用于操作Json格式的数据。 导入JSON-java库 在使用JSON-java库前,需要先将其导入到项…

    Java 2023年5月26日
    00
  • 一文带你了解如何正确使用MyBatisPlus

    一文带你了解如何正确使用MyBatis Plus MyBatis Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上,提供了更加便捷的方法和功能。本文将介绍如何正确使用 MyBatis Plus,包括安装、配置、使用和优化等方面。 安装和配置 在使用 MyBatis Plus 之前,需要进行一些准备工作,包括 Maven 依赖的配置和配置…

    Java 2023年5月20日
    00
  • Springmvc加ajax实现上传文件并页面局部刷新

    首先,上传文件是指将文件从客户端传输到服务器端,而Springmvc是一种轻量级的mvc框架。在本文中,将会介绍如何利用Springmvc和ajax实现文件上传和页面局部刷新。 一、环境准备 实现文件上传需要用到Springmvc和Spring的MultipartResolver组件,因此需要在pom.xml文件中引入相关依赖。 <!– Spring…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部