MyBatis相关

发布于:2022-11-15 ⋅ 阅读:(1070) ⋅ 点赞:(0)

一.项目的创建

 

 

 创建demo,并在中间添加main入口

 二.在pom中添加依赖

<!-- MyBatisPlus依赖-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>
<!--LomBok依赖-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId> <optional>true</optional>
</dependency>
<!--mysql依赖-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

三.配置数据源

在resources中创建application.xml

 

#配置端口
server:
  port: 8080
spring:
  # 配置数据源信息
  datasource:
    # 配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
      # 配置连接数据库信息
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/crm?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456

#mybatisPlus相关配置
mybatis-plus:
  mapper-locations: classpath:mappers/*.xml

 四.创建实体并与数据库相连接

 

package demo.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data//添加get和set方法
@AllArgsConstructor//生成有参构造器
@NoArgsConstructor//生成无参构造器
@TableName("t_u")//设置表名
public class User {
    //名字与数据库中的名字保持一致
    //如果名字与数据库中不相同,可以用@TableField("数据库中的名字")来产生连接
    @TableId//设置主键id
    private Long id;
    private String userName;
    private String passwd;

}

五. 创建dao并继承自BaseMapper

 

package demo.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import demo.entity.User;

public interface UserDAO extends BaseMapper<User> {
    
}

 六.在启动类上扫描dao路径

七.创建controller并且进行测试

 

1.通过AutoWired注解实例化dao对象

@RestController
@Slf4j
public class TestController {
    @Autowired(required = false)
    private UserDAO dao;
}

 

 2.调用dao方法实现增删改查

package demo.controller;

import demo.dao.UserDAO;
import demo.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Arrays;
import java.util.List;

@RestController
@Slf4j
public class TestController {
    @Autowired(required = false)
    private UserDAO dao;

    @RequestMapping("/insert")
    public int insertUser(){
        int count = dao.insert(new User(null, "tom", "123"));
        return count;
    }

    @RequestMapping("/delete")
    public int deleteUser(){
        int count = dao.deleteById(1L);
        return count;
    }

    @RequestMapping("/delete_users")
    public int deleteUsers(){
        int count = dao.deleteBatchIds(Arrays.asList(1001L, 1002L, 1003L));
        return count;
    }

    @RequestMapping("/update")
    public int UpdateUser( ){
        int count = dao.updateById(new User(1004L, "ammy", "123"));
        return count;
    }

    @RequestMapping("/select_user")
    public User selectUser(){
        User user = dao.selectById(1005L);
        return user;
    }

    @RequestMapping("/select_all")
    public List<User> selectAll(){
        List<User> users = dao.selectList(null);
        return users;
    }
}

 八.自定义

1.在resources文件夹下创建mappers文件夹

2.在application.yml配置文件下配置mappers文件夹(上文中一并配置过了)

3.在dao中添加登录方法

 4.在mapper.xml中指定dao接口的路径

<?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="demo.dao.UserDAO">
    
</mapper>

 5.维护login方法中的sql语句

<?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="demo.dao.UserDAO">
    <select id="login" resultType="demo.entity.User">
        select * from t_u where user_name=#{userName} and passwd=#{passwd}
    </select>
</mapper>

 6.在controller中测试

@RequestMapping("/login")
public String login(String userName,String passwd){
    User user = dao.login(userName, passwd);
    if(user!=null){
        return "成功";
    }else{
        return "失败";
    }
}

crud中其他的写法

 1.新增

UserDAO中新增的语句

public int addUser(User user);

mapper.xml中的sql语句

<insert id="addUser" >
    insert into t_u (id, user_name, passwd) values (#{id}, #{userName}, #{passwd})
</insert>

TestController中的测试语句 

@RequestMapping("/add")
public int add( ){
    int count = dao.addUser(new User(1006L, "mike", "321"));
    return count;
}

2.修改

UserDAO中新增的语句

public int updateUser(User user);

mapper.xml中的sql语句

<update id="updateUser">
    update t_u set user_name=#{userName} , passwd=#{passwd} where id=#{id}
</update>

TestController中的测试语句 

@RequestMapping("/t9")
public int update(){
    int count = dao.updateUser(new User(1001L, "tom", "321"));
    return count;
}

 

3.删除

UserDAO中新增的语句

public int deleteUser(Long id);

mapper.xml中的sql语句

<delete id="deleteUser">
    delete from t_u where id=#{id}
</delete>

TestController中的测试语句 

@RequestMapping("/t10")
public int t10(){
    int count = dao.deleteUser(1001L);
    return count;
}

网站公告

今日签到

点亮在社区的每一天
去签到