JDBC到Mybatis

一、创建项目

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/
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值