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日

相关文章

  • JTS空间坐标Geometry使用

    Geomtery子类图 创建Geometry GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); // 点 Coordinate coord = new Coordinate(1, 1); Point point = geometryFactory.createPo…

    Java 2023年4月23日
    00
  • Kafka 安装与配置详细过程

    Kafka 安装与配置详细过程 1. 安装 Java Kafka 是基于 Java 开发的,所以我们首先需要安装 Java 运行环境。可以通过官方网站下载并安装适用于您的操作系统的 Java 环境。 2. 下载 Kafka 可以从 Kafka 官方网站下载最新的 Kafka 压缩包。解压缩之后,可以得到以下几个目录: bin:包含了 Kafka 的命令行工具…

    Java 2023年6月2日
    00
  • java多线程使用mdc追踪日志方式

    Java多线程使用MDC追踪日志方式 在Java应用程序中,多线程并发执行的情况很常见。在这种情况下,如果想追踪某个请求或操作的日志,需要借助线程本地变量和MDC(Mapped Diagnostic Context)技术来实现。 1. MDC是什么? MDC是Logback和log4j等日志框架提供的一种日志追踪技术,用于在多线程环境中将一组关联的日志事件关…

    Java 2023年5月19日
    00
  • 手把手教你如何获取微信用户openid

    下面是详细讲解“手把手教你如何获取微信用户openid”的完整攻略。 准备工作 申请微信公众号账号,开通开发者模式。 在公众号开发者中心配置服务器相关信息。 获取 openid 方法一:利用微信网页授权机制获取 在微信公众平台开发者中心,打开网页开发,配置公众号授权域名,并设置网页授权的回调域名。 在前端页面中,引入微信JS-SDK,并使用 wx.confi…

    Java 2023年5月23日
    00
  • Java日期时间类及计算详解

    Java日期时间类及计算详解 Java中提供了多个日期时间类,用于操作和计算日期和时间。本文将详细介绍Java日期时间类及计算的相关知识。 Date类 Date类是Java中最基本的日期时间类。它表示时间戳,即自1970年1月1日00:00:00至当前日期时间所经过的毫秒数。 获取当前日期时间 要获取当前日期时间,可以使用Date类的无参构造函数和toStr…

    Java 2023年5月20日
    00
  • jquery分页插件jquery.pagination.js实现无刷新分页

    请看下面的详细解释: 前言 在Web应用中,经常需要使用分页功能来展示数据,这样用户可以通过分页快速地浏览和查询数据。jQuery分页插件jquery.pagination.js是一个非常好用的插件,它可以帮助我们实现无刷新分页功能,提高用户的体验。 安装 我们可以通过在页面中引入jquery.pagination.js插件来使用它: <script …

    Java 2023年5月31日
    00
  • java获取当前时间和前一天日期(实现代码)

    获取当前时间和前一天日期是Java中常见的操作,下面我为大家介绍具体的实现方法和代码。 获取当前时间 Java中获取当前时间的方法有很多,这里介绍最常见的两种方法: 方法一:使用系统时间获取 我们可以使用java.util.Date类的getTime()方法获取当前时间的毫秒数,然后使用java.sql.Timestamp类将毫秒数转换成时间格式。 impo…

    Java 2023年5月20日
    00
  • MyBatis-Spring配置的讲解

    MyBatis-Spring配置的讲解 MyBatis-Spring是MyBatis官方提供的基于Spring框架的集成方案,可以很方便地将MyBatis集成到Spring中,并且可以利用Spring框架的优势,如Spring的事务管理机制等。下面将详细讲解MyBatis-Spring的配置过程。 第一步:添加依赖 首先需要在项目的Maven配置文件中添加以…

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