Spring boot 六 集成 MyBatis

spring boot 集成MyBatis 非常简单:

1、添加依赖包。mysql驱动 mybatis驱动(必须大于 1.1.1版本)
2、添加 application.properties 配置。
3、在 Application.main 类 添加 @MapperScan(com.zll.*)
4、添加实体对象 Student
5、编写Student数据映射对象 StudentMapper
6、编写Student业务逻辑层 StudentService
7、编写对外控制层 StudentController。

1、添加依赖包。mysql驱动 mybatis驱动(必须大于 1.1.1版本)

        <!--Spring boot jpa 依赖包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!--mysql 依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--mybaits 依赖包-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>

2、添加 application.properties 配置。

# 数据库访问配置
# 主数据源,默认的
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username= root
spring.datasource.password= root
spring.datasource.driverClassName = com.mysql.jdbc.Driver


#指定数据库
spring.jpa.database=mysql
# 是否显示sql语句
spring.jpa.show-sql=true
# hibernate ddl auto (create create-drop update)
spring.jpa.hibernate.ddl-auto=update
# 选择自己的 命名策略 ImprovedNamingStrategy  (比如 orderItem >> order_item)
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy

3、在 Application.main 类 添加 @MapperScan(com.zll.*)

@SpringBootApplication
@MapperScan("com.example.demo.*")//mybaits 扫描 指定报下的所有实体和映射对象。
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

4、添加实体对象 Student
不需要注解


public class Student {

    private int id;
    private String name;
    private String creditHour;

5、编写Person数据映射对象 StudentMapper

public interface StudentMapper {

     @Insert("insert into student(name,credit_hour) value(#{name},#{creditHour})")
    @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")//加入该注解可以保持对象后,查看对象插入id
    public int insert(Student s);

    @Delete("delete from student where id=#{id}")
    public int delete(int id);

    @Update("update student set name=#{name},credit_hour=#{credit} where id=#{id}")
    public int update(@Param("id") int id, @Param("name") String name, @Param("credit") String credit);

    @Select("select * from student ")
    @Results({
            @Result(id = true, property = "id", column = "id", javaType = Integer.class),
            @Result(property = "creditHour", column = "credit_hour", javaType = String.class),
    })
    public List<Student> selectAll();

}

6、编写Person业务逻辑层 StudentService

@Service
public class StudentService {

    @Resource
    private StudentMapper mStudentMapper;

    public int insert(Student s){
        mStudentMapper.insert(s);
        return s.getId();
    }


    public int delete(int id){
        return mStudentMapper.delete(id);
    }

    public int update(int id,Student s){
        return mStudentMapper.update(id,s.getName(),s.getCreditHour());
    }

    public List<Student> selectAll(){
        return mStudentMapper.selectAll();
    }

}

7、编写对外控制层 StudentController。

@RestController
@RequestMapping("/mybaits")
public class StudentController {

    @Resource
    private StudentService mStudentService;

    @RequestMapping("/insert")
    public int insert(String name,String credit) {
        return mStudentService.insert(new Student(name,credit));
    }

    @RequestMapping("/delete")
    public int delete(int id) {
        return mStudentService.delete(id);
    }

    @RequestMapping("/update")
    public int update(int id, String name,String credit) {
        return mStudentService.update(id, new Student(name,credit));
    }

    @RequestMapping("/selectAll")
    public List<Student> selectLikeName() {
        return mStudentService.selectAll();
    }

}

注意容易出现的问题:
Mybatis错误:Parameter ‘XXX’ not found. Available parameters are [1, 0, param1, param2]
解决办法:
在参数上加@Param(id)

查看Mapper类 Update写法

关于更多 Spring Mybatis 注解的细节 请查看 MyBiats 注解开发系列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值