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日

相关文章

  • Android 解析JSON对象及实例说明

    Android 解析JSON对象及实例说明 什么是JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语言的一个子集,因此容易被人阅读和编写,同时也易于机器解析和生成。在Web应用程序中,JSON通常用来传递从服务器到客户端的数据。 Android中使用JSON Android中提…

    Java 2023年6月15日
    00
  • Spring Boot 与 kotlin 使用Thymeleaf模板引擎渲染web视图的方法

    首先,在使用Thymeleaf模板引擎前,我们需要在Spring Boot应用程序中添加Thymeleaf依赖,可以在pom.xml文件中添加以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo…

    Java 2023年6月15日
    00
  • Java调用C++程序的实现方式

    Java调用C++程序的实现方式主要涉及两个方面:JNI和JNA。接下来,我将分别介绍这两种实现方式。 使用JNI实现Java调用C++程序 JNI是Java Native Interface的简称,是Java提供的一种本地方法调用的标准接口。它允许Java程序和本地代码(例如C++、C等)进行交互,并提供了一系列的API接口用于支持Java程序与本地代码的…

    Java 2023年5月19日
    00
  • java模拟hibernate一级缓存示例分享

    让我为您简单讲解一下如何使用Java模拟Hibernate一级缓存。 一、什么是Hibernate一级缓存 Hibernate是一个Java持久层框架,其缓存机制为应用程序和数据库之间搭建了一个缓冲层,用于提高性能并优化数据库资源的使用。Hibernate一级缓存,也称为session缓存,是Hibernate提供的默认缓存机制。当运行应用程序时,Hiber…

    Java 2023年5月20日
    00
  • 解决Hmily与Feign冲突报错 NullPointerException的问题

    解决Hmily与Feign冲突报错NullPointerException的问题的完整攻略如下: 引入Hmily和Feign的依赖 在使用Hmily和Feign时需要引入它们的依赖,比如在Maven中可以使用以下依赖: <dependency> <groupId>org.springframework.cloud</groupI…

    Java 2023年5月26日
    00
  • Spring与Struts整合之让Spring管理控制器操作示例

    首先介绍一下Spring和Struts的整合。在传统的Struts应用中,Struts DispatchAction负责将不同的请求分发给对应的Action进行处理。而在整合了Spring之后,Spring的IoC容器能够负责管理Struts的Action类,将这些Action类作为Spring的Bean进行管理,从而赋予了Struts更强大的扩展能力和灵活…

    Java 2023年5月20日
    00
  • 浅谈JackSon的几种用法

    浅谈Jackson的几种用法 什么是Jackson Jackson是一个Java库,用于将Java对象转换为JSON格式,或者将JSON格式转换为Java对象。它提供了一种简便的方法,用来处理序列化和反序列化的JSON数据。 Jackson使用方式 1. 序列化 序列化是将Java对象转换为JSON字符串的过程。在Jackson中,我们使用ObjectMap…

    Java 2023年5月26日
    00
  • maven配置阿里仓库的方法步骤

    Maven 是一款开源项目建构工具,可以帮助我们更方便地构建、管理和发布项目。默认情况下,Maven 会从 Maven 官方仓库中下载依赖,但是有时候官方仓库的下载速度会受制于网络环境,因此我们需要配置Maven访问阿里仓库以加速依赖的下载。 以下是 Maven 配置阿里仓库的方法步骤: 1. 打开 Maven 的配置文件 Maven 的配置文件为 sett…

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