一.项目的创建
创建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; }