Java+MyBatis+MySQL开发环境搭建流程详解

以下是“Java+MyBatis+MySQL开发环境搭建流程详解”的攻略。

准备工作

  1. 安装JDK及配置环境变量
  2. 安装MySQL数据库及客户端
  3. 安装MyBatis框架及依赖库

创建数据库及表

  1. 创建数据库

在MySQL客户端中执行以下SQL语句,创建一个名为testdb的数据库:

CREATE DATABASE testdb;
  1. 创建表

继续在MySQL客户端中执行以下SQL语句,创建一个名为user的表:

CREATE TABLE user (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  age INT(11) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

配置MyBatis

  1. 配置数据库连接信息

src/main/resources目录下创建jdbc.properties文件,配置数据库连接信息:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=
  1. 配置MyBatis映射文件

src/main/resources目录下创建UserMapper.xml文件,配置MyBatis的映射文件:

<?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 type="com.example.entity.User" id="UserResultMap">
    <id property="id" column="id" />
    <result property="name" column="name" />
    <result property="age" column="age" />
  </resultMap>

  <select id="getUserById" resultMap="UserResultMap">
    SELECT * FROM user WHERE id=#{id}
  </select>

  <select id="getUserList" resultMap="UserResultMap">
    SELECT * FROM user
  </select>

  <insert id="insertUser">
    INSERT INTO user(name, age) VALUES(#{name}, #{age})
  </insert>

  <update id="updateUser">
    UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}
  </update>

  <delete id="deleteUser">
    DELETE FROM user WHERE id=#{id}
  </delete>
</mapper>

编写Java代码

  1. 创建实体类

src/main/java目录下创建com.example.entity.User类,表示用户实体:

package com.example.entity;

public class User {
  private Integer id;
  private String name;
  private Integer age;

  // getter and setter
}
  1. 创建Mapper接口

src/main/java目录下创建com.example.mapper.UserMapper接口,定义MyBatis的操作方法:

package com.example.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.example.entity.User;

@Mapper
public interface UserMapper {
  User getUserById(Integer id);

  List<User> getUserList();

  int insertUser(User user);

  int updateUser(User user);

  int deleteUser(Integer id);
}
  1. 编写DAO层

src/main/java目录下创建com.example.dao.UserDao类,调用MyBatis框架的Mapper接口实现DAO操作:

package com.example.dao;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.example.entity.User;
import com.example.mapper.UserMapper;

@Repository
public class UserDao {
  @Autowired
  private UserMapper userMapper;

  public User getUserById(Integer id) {
    return userMapper.getUserById(id);
  }

  public List<User> getUserList() {
    return userMapper.getUserList();
  }

  public int insertUser(User user) {
    return userMapper.insertUser(user);
  }

  public int updateUser(User user) {
    return userMapper.updateUser(user);
  }

  public int deleteUser(Integer id) {
    return userMapper.deleteUser(id);
  }
}

运行示例

  1. 编写Controller

src/main/java目录下创建com.example.controller.UserController类,处理HTTP请求:

package com.example.controller;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.example.dao.UserDao;
import com.example.entity.User;

@RestController
public class UserController {
  @Autowired
  private UserDao userDao;

  @GetMapping("/user/{id}")
  public User getUserById(@PathVariable("id") Integer id) {
    return userDao.getUserById(id);
  }

  @GetMapping("/user/list")
  public List<User> getUserList() {
    return userDao.getUserList();
  }

  @PostMapping("/user")
  public String insertUser(@RequestBody User user) {
    userDao.insertUser(user);
    return "success";
  }

  @PostMapping("/user/{id}")
  public String updateUser(@PathVariable("id") Integer id, @RequestBody User user) {
    user.setId(id);
    userDao.updateUser(user);
    return "success";
  }

  @PostMapping("/user/delete/{id}")
  public String deleteUser(@PathVariable("id") Integer id) {
    userDao.deleteUser(id);
    return "success";
  }
}
  1. 启动应用

在命令行中执行mvn spring-boot:run,启动应用。

  1. 测试API

使用浏览器或Postman工具,访问以下API:

方法 API 请求体 返回值
GET http://localhost:8080/user/1 {"id":1,"name":"张三","age":20}
GET http://localhost:8080/user/list [{"id":1,"name":"张三","age":20},...]
POST http://localhost:8080/user {"name":"李四","age":25} "success"
POST http://localhost:8080/user/1 {"name":"王五","age":30} "success"
POST http://localhost:8080/user/delete/1 "success"

其中,前两个API用于查询用户,第三个API用于新增用户,第四个API用于修改用户信息,第五个API用于删除用户。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java+MyBatis+MySQL开发环境搭建流程详解 - Python技术站

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

相关文章

  • java获取当前时间并格式化代码实例

    下面是“Java获取当前时间并格式化代码实例”的完整攻略。 1. Java获取当前时间 Java可以通过java.util.Date和java.util.Calendar两个类获取当前时间。其中,java.util.Date是Java的日期类,可以获取当前时间戳;而java.util.Calendar类则是日期操作的类,可以获取具体的年、月、日、时、分、秒等…

    Java 2023年5月20日
    00
  • 深入解析Session工作原理及运行流程

    深入解析Session工作原理及运行流程 在Web应用中,会话(Session)是指一种记录客户端与服务端交互的机制。需要注意的是,Session指的是服务端存储的数据结构,而Cookie指的是存储在客户端的一个文本文件。本文将深入探讨Session的工作原理及运行流程。 Session的工作原理 Session常常被用来存储用户的登录状态、购物车中的商品等…

    Java 2023年6月15日
    00
  • spring boot security设置忽略地址不生效的解决

    当我们使用Spring Boot的Security模块时,经常会遇到需要设置特定路径忽略身份验证和授权的情况,但是在设置后却发现该路径还是需要认证。本文将介绍如何解决这个问题。 问题分析 在Spring Boot中,我们可以通过WebSecurity来配置安全策略。通过调用它的ignoring()方法,可以设置忽略的URL地址。但是,有时候我们会发现这样的设…

    Java 2023年5月20日
    00
  • 基于Spring Security前后端分离的权限控制系统问题

    基于Spring Security前后端分离的权限控制系统是一个非常常见的开发需求。下面将提供完整攻略,从搭建环境、配置安全策略、实现权限控制等方面讲解该系统的具体实现。其中示例将分别展示两种不同的权限控制方式。 1. 搭建环境 首先,需要搭建一个Spring Boot项目,并且集成Spring Security。需要在项目中引入以下依赖: <depe…

    Java 2023年5月20日
    00
  • Java Web开发之MD5加密用法分析

    Java Web开发之MD5加密用法分析 什么是MD5加密 MD5全称为“Message-Digest Algorithm 5”,是一种非常常见并且安全性较高的哈希算法。MD5算法的核心在于将任意长度的数据(消息)通过一个不可逆的算法变换成一个固定长度的、十六进制表示的字符串,称为消息摘要。这个摘要具有防篡改性、密钥敏感性和抗碰撞等特性。 MD5加密的应用场…

    Java 2023年5月19日
    00
  • struts2入门(搭建环境、配置、示例)详解

    Struts2入门攻略 Struts2是一个基于MVC架构的Web应用程序开发框架。本攻略将介绍如何搭建Struts2开发环境、配置Struts2框架并开发示例项目。 环境搭建 首先,我们需要准备好开发环境: JDK:Java开发工具包,下载地址:https://www.oracle.com/technetwork/java/javase/downloads…

    Java 2023年5月20日
    00
  • ShardingSphere数据库读写分离算法及测试示例详解

    下面我将为大家详细讲解“ShardingSphere数据库读写分离算法及测试示例详解”的完整攻略。 1. ShardingSphere数据库读写分离算法简介 ShardingSphere是一款开源的分布式数据库中间件,其中提供了数据库读写分离功能。读写分离是指将数据库的读写操作分别分发到不同的节点进行,以达到平衡负载、提高数据库性能和可用性的目的。在Shar…

    Java 2023年5月20日
    00
  • java的arraylist排序示例(arraylist用法)

    下面是关于Java的ArrayList排序示例及用法的攻略。 ArrayList是什么 ArrayList是Java提供的集合框架中的一种,它继承了List接口并实现了可变数组。它的特点是可以添加、删除、排序和搜索其中的元素,同时可以动态地更改其大小。因其灵活性和高效性,它被广泛应用于Java程序开发中。 ArrayList的排序 使用自然排序(默认) Ar…

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