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日

相关文章

  • 微信小程序实现卡片左右滑动效果的示例代码

    以下是“微信小程序实现卡片左右滑动效果的示例代码”的详细攻略。 1.实现原理 实现卡片左右滑动效果主要基于小程序的swiper组件。swiper组件是一个可以实现轮播图、图片幻灯片等功能的组件,其实现方式是通过横向滑动图片来实现轮播的效果。 为了实现卡片左右滑动效果,我们可以利用swiper组件的以下属性和事件: 属性: current,用于设置当前所在的卡…

    Java 2023年5月23日
    00
  • 基于JVM-jinfo的使用方式

    基于JVM的jinfo工具可以帮助我们在运行中的JVM进程中实时查看和修改指定Java进程的配置参数,以及输出JVM内部配置信息和线程堆栈信息等。 以下是使用jinfo的步骤: 步骤一:查看运行中的JVM进程 在使用jinfo工具前,需要先确认当前运行中的JVM进程PID。可以使用jps命令查看,例如: $ jps 2386 Bootstrap 2834 J…

    Java 2023年5月26日
    00
  • 如何用Jfinal连接多个数据库

    下面我将为您详细讲解如何用Jfinal连接多个数据库,分为以下几个步骤: 添加数据源配置 定义不同数据源的Model类 配置多数据源的实现 先来看第一步: 1. 添加数据源配置 在 Jfinal 的配置文件中,需要添加多个数据源的配置,以支持同时连接多个数据库。比如我们需要连接两个数据库 db1 和 db2,则可以按照如下方式添加配置: # db1 数据库配…

    Java 2023年5月20日
    00
  • Java基本类型与byte数组之间相互转换方法

    请看下面的讲解。 Java基本类型与byte数组之间相互转换方法 在Java中,有时候我们需要将基本类型(如int、float等)转换成byte数组,或者将byte数组转换成基本类型。本文将提供两种方法来实现这种相互转换。 1. 使用Java的ByteBuffer类 Java的ByteBuffer类可以很方便地完成基本类型与byte数组的转换。 将基本类型转…

    Java 2023年5月26日
    00
  • Java数组,去掉重复值、增加、删除数组元素的实现方法

    Java数组是一种非常常见的数据结构,可以存储一组相同数据类型的元素。下面我将详细讲解如何在Java中实现去掉重复值、增加、删除数组元素的方法。 Java数组去重 Java数组去重的实现通常有两种方法:使用HashSet或使用双循环。 使用HashSet String[] array = new String[]{"a", "b…

    Java 2023年5月26日
    00
  • C#模拟实现抽奖小程序的示例代码

    让我详细讲解一下“C#模拟实现抽奖小程序的示例代码”的完整攻略。 步骤1:确定抽奖方式和奖项 首先确定抽奖的方式和奖项,可以是平等概率、权重抽奖等方式,同时也要定义好奖项的名称和中奖几率。 示例代码: //定义奖项名称 string[] rewardNames = {"一等奖", "二等奖", "三等奖&qu…

    Java 2023年5月19日
    00
  • Java Spring的使用注解开发详解

    Java Spring的使用注解开发详解 Java Spring是一个开源框架,它帮助Java开发人员开发企业级应用程序。Spring框架有多种模块,其中最流行的是Spring Core,它是Spring框架的核心部分,提供了依赖注入(DI)和面向切面编程(AOP)等重要功能。本文将详细讲解如何使用注解开发Java Spring应用程序。 环境准备 在开始使…

    Java 2023年5月19日
    00
  • Spring Security配置多个数据源并添加登录验证码的实例代码

    下面我会给你详细讲解Spring Security配置多个数据源并添加登录验证码的实例代码。 1. 添加验证码 首先,我们需要添加验证码功能。我们可以通过在Spring Security过滤器链中添加一个自定义的过滤器来完成此操作。具体实现如下: public class ValidateCodeFilter extends OncePerRequestFi…

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