一、创建项目
file–new–project
这个页面不用修改,直接next
选择web–spring web–next
SQL–JDK API, MySQL Driver, mybatis
二、项目编写
定义一个项目需要的数据库
创建User实体类实现业务流程
创建项目路径包来,展示业务流程。在项目src-main-java-com-sjzeis下分别创建包:controller、entity、mapper、service,用来实现控制层、实体层、映射层、业务层。这里面简单介绍一下业务流程及各层业务的作用如下:
1.entity实体层(别名: model层 ,domain层),用于存放我们的实体类,与数据库中的属性值基本保持一致,实现set和get的方法。如:user表的实体User
2.mapper映射层(别名:dao层),用于对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作,在mybatis中方法主要与*Mapper.xml内相互一一映射。如:public interface UserMapper {…}。
3.service业务层,用于给controller层的类提供接口进行调用。一般就是自己写的方法封装起来,就是声明一下,存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层,mapper层是直接跟数据库打交道的,他也是个接口,只有方法名字,具体实现在mapper.xml文件里,service是供我们使用的方法。如:public class UserService {…}。
4.controller控制层(别名:web 层),用于负责具体模块的业务流程控制,需要调用service逻辑设计层的接口来控制业务流程。因为service中的方法是我们使用到的,controller控制器导入service层,因为service中的方法是我们使用到的,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。如:public class UserController {…}
编写代码
在com.example.demo目录下创建controller、entity、service、mapper四个package包,在entity包里创建一个Java class,取名User
将application.properties后缀名改为.yml,里面的内容username,password,以及3306后面的名字是自己的数据库配置情况
创建好一个实体类User,写上如下代码
package com.example.demo.entity;
public class User {
private int id;
private String name;
private String password;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id=id;
}
public String getName(){
return name;
}
public void setName(){
this.name=name;
}
public String getPassword(){
return password ;
}
public void setPassword(){
this.password=password;
}
}
创建Mapper映射操作UserMapper类
package com.example.demo.mapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface userMapper {
public List<User> findAllUser();
public List<User> findUserByUserId(int userid);
}
创建Mapper映射对应的UserMapper.xml文件
<?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.demo.mapper.userMapper">
<resultMap id="result" type="com.example.demo.entity.User">
<!--column表示数据库中字段名;property表示的是实体类定义的对象名称-->
<result column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="password" jdbcType="VARCHAR" property="password" />
</resultMap>
<select id="findAllUser" resultType="com.example.demo.entity.User">
select * from mybatistesy;
</select>
</mapper>
xml文件的内容视自己创建的文件名以及数据库名而定
创建service业务UserService类
package com.example.demo.service;
import com.example.demo.entity.User;
import com.example.demo.mapper.userMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class userService {
@Autowired(required = false);
public userMapper userMapper;
public List<User> findALLUser(){
return userMapper.findAllUser();
}
}
创建 controller控制层UserController类
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/gerALLUser")
public List<User> findALLUser(){
return userService.findALLUser();
}
}
三、运行测试
先在数据库添加一些数据
运行
打开http://localhost:8080/user/getAllUser/