在springboot中使⽤通⽤mapper与mybatisplus
⽬录
mybatis的问题(为什么要⽤通⽤mapper和mybatisplus)
在之前使⽤mybatis的时候,有⼀个⽐较⿇烦的地⽅, 就是我们所有的SQL都需要⾃⼰写,包括基础的增删改查,这个我们也得⾃⼰写,这个不是很⽅便,因为基础的这些语句,我们不管哪个表,都可能遇见,这样就很浪费时间和精⼒
别犟,我知道mybatis有逆向⼯程,我也在之前分享了mybatis逆向⼯程的使⽤,但是不可否认的是,mybatis有这个缺陷,逆向⼯程也是为了解决这个问题
本次要分享的通⽤mapper和mybatisplus就是解决了这个问题,当然还有其他的⼀些dao框架也能避免这些问题,⽐如JPA啦,这个是后话,我们之后再聊,先说这两个,通⽤mapper和mybatisplus
通⽤mapper
导⼊依赖
<dependency>
<groupId&batis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
配置实体类
import lombok.Data;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@Table(name = "usermessage")
public class User {
private String username;
private String password;
@Id
private int id;
public String getUsername() {
return username;
}
public void setUsrname(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", id=" + id +
'}';
}
}
注意,这⾥实体类和数据库的关系,默认⽤驼峰命名,如果说明明不规则,请⽤注解指定@Column(name = "user_name")
编写Dao
import own.study.vo.User;
batis.mappermon.Mapper;
public interface UserDao extends Mapper<User> {
}
开启包扫描
@SpringBootApplication
@EnableAspectJAutoProxy
@MapperScan("own.study.dao")
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
编写配置⽂件
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root
password: 123456
driver-class-name: sql.cj.jdbc.Driver
注意,因为我本地的mysql⽤的8.0版本,所以存在时区问题,我在url后⾯指定了读取的时区地址
编写service并验证
package own.study.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import own.study.dao.UserDao;
import own.study.vo.User;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserDao userDao;
public void testMapaper () {
List<User> users = userDao.selectAll();
for (User use : users) {
System.out.println(use);
}
}
}
完事,齐活~ 看,是不是没有写什么基础SQL
还有其他的基础⽅法,也都有
⾃定义条件查询
当然,通⽤mapper也可以⾃定义SQL查询,可以在Dao上编写SQL 例如
public interface UserDao extends Mapper<User> {
@Select(value="select * from tb_user where user_name=#{username}") User findByUsername(String username);
}
这是⼀种⽅法,还可以创建条件构造器,进⾏使⽤
Example example = new Example(User.class);
Example.Criteria criteria = ateCriteria();
criteria.andEqualTo("username", "root");
List<User> users = userDao.selectByExample(example);
for (User user : users) {
System.out.println(user);
springboot aop}
mybatisplus
导⼊依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
配置数据库信息
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root
password: 123456
driver-class-name: sql.cj.jdbc.Driver
编写实体类
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论