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

yizhihongxing

以下是“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复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan

    当我们需要在Java中复制(拷贝)数组时,有四种主要的方法可供选择: 使用arraycopy()方法 使用clone()方法 使用copyOf()方法 使用copyOfRange()方法 下面,我们将详细讲解这四种方法。 1. 使用arraycopy()方法 public static void arraycopy(Object src, int srcPo…

    Java 2023年5月26日
    00
  • JAVA求两直线交点和三角形内外心的方法

    首先我们来介绍如何求两条直线的交点。假设我们有直线L1和直线L2,L1的解析式为y = k1x + b1,L2的解析式为y = k2x + b2。我们可以通过如下公式计算交点的坐标(x,y): $x = \frac{b2 – b1}{k1 – k2}$ $y = k1*\frac{b2 – b1}{k1 – k2} + b1$ 例如,假设L1的解析式为y =…

    Java 2023年5月19日
    00
  • java 逐行读取txt文本如何解决中文乱码

    要想解决中文乱码问题,需要了解Java中文编码方式的特点。Java会默认使用UTF-8编码格式,而读取txt文本时可能会面对其他编码格式,因此需要进行适当的转码操作。 以下是逐行读取txt文本并解决中文乱码问题的步骤: 创建一个FileReader对象,用于读取txt文件,并指定编码格式为GBK。 FileReader fr = new FileReader…

    Java 2023年5月20日
    00
  • java servlet结合mysql搭建java web开发环境

    概述 在Java Web开发中,结合MySQL数据库使用Java Servlet技术是非常常见的一种方式。本文将给出完整的攻略,演示如何在本地环境下搭建Java Servlet和MySQL结合使用的开发环境,并提供两个示例进行说明。 环境准备 在开始之前需要安装以下组件: JDK Tomcat MySQL 配置Tomcat 下载Tomcat并解压到本地目录(…

    Java 2023年6月16日
    00
  • java获取文件大小的几种方法

    当我们需要获取文件的大小时,有多种方法可以实现。下面将介绍java中获取文件大小的几种方法。 使用File类的length方法获取文件大小 File类是Java中常用的文件操作类,它提供了获取文件大小的方法length。该方法返回的是文件的字节数。 import java.io.File; public class FileSizeTest { public…

    Java 2023年5月20日
    00
  • java基础之数组常用操作总结(必看篇)

    Java基础之数组常用操作总结(必看篇) 一、什么是数组 数组是一种容器,用于存储固定大小的同类型元素序列。在Java中,数组是用连续的内存空间来存储相同类型的数据。 二、数组的定义 Java中使用[]来声明一个数组类型,且数组必须被初始化为一定数量的元素。数组的长度是不可变的。 dataType[] arrayName; // 声明数组 arrayName…

    Java 2023年5月26日
    00
  • 手把手教你怎么创建spring项目

    创建Spring项目的步骤如下: 步骤一:安装IDE 首先,我们需要在本地安装一个IDE(Integrated Development Environment),例如Eclipse、IntelliJ IDEA、Spring Tool Suite等。这里以Eclipse为例进行讲解。进入Eclipse,按照提示进行安装和配置即可。 步骤二:创建Maven工程 …

    Java 2023年5月20日
    00
  • idea中如何配置tomcat

    下面是关于如何在IntelliJ IDEA中配置Tomcat的攻略。 配置Tomcat 下载Tomcat 首先,需要从Tomcat的官网下载Tomcat,下载地址为https://tomcat.apache.org。选择适合自己的版本和操作系统,并下载对应的文件。下载完成后,解压文件。 在IDEA中新增Tomcat配置 打开IntelliJ IDEA,点击顶…

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