java dotnet core_Java Spring Boot VS .NetCore (五)MyBatis vs EFCore

介绍

添加MyBatis先关的依赖包

mysql

mysql-connector-java

5.1.38

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.1

MyBatis

有两种配置方式 一种是通过XML来实现 相关操作 解耦性相对较强,第二种则是以注解的方式来实现,这里已第二种方式说明

使用这种方式还需要配置下 指向实体类的包路径

mybatis.type-aliases-package=com.liyouming.demo.domain.Entitys

在 启动入口里面添加注解指向 Mapper操作功能包地址

@MapperScan("com.liyouming.demo.Mapper")

下面的代码是功能类User  直接可以通过注解的方式完成相关方法的操作

public interfaceUserMapper {

@Select("SELECT username,email,newname,nick_name FROM user_model")

@Results({

@Result(property= "username", column = "username"),

@Result(property= "email", column = "email"),

@Result(property= "newname", column = "newname"),

@Result(property= "nickName", column = "nick_name")

})

ListgetAll();

@Select("SELECT * FROM user_model WHERE id = #{id}")

@Results({

@Result(property= "username", column = "username"),

@Result(property= "email", column = "email"),

@Result(property= "newname", column = "newname"),

@Result(property= "nickName", column = "nick_name")

})

UserModel getOne(Long id);

@Insert("INSERT INTO user_model(username,email,newname) VALUES(#{username}, #{email}, #{newname})")voidinsert(UserModel user);//@SelectProvider(type = CustomSql.class, method = "getList")//List getList(UserModel userParam);

}

EFCore

其实也有相关配置文件,只是平时都是用的直接根据实体生成的方式,如果需要配置怎么处理,使用查询ORM映射处理后的结果对应放在类里面的哪些字段,可以通过System.ComponentModel.DataAnnotations.Schema 引用下的标签工鞥来完成

当然EFCore 提供了配置处理 在数据库上下文对象中 重写 实现OnModelCreating 其中 ModelBuilder 类提供了添加配置的方法

protected override voidOnModelCreating(ModelBuilder builder)

{

builder.ApplyConfiguration(newClassMap());

ClassMap 只需要实现 IEntityTypeConfiguration 接口,实现Configure 方法来实现配置映射关系 如下:

public class ClassMap : IEntityTypeConfiguration{public void Configure(EntityTypeBuilderbuilder)

{

builder.ToTable("Express_Class").HasKey(x =>x.Id);

builder.Property(c=> c.ClassName).HasColumnName("Class_Name").HasColumnType("varchar").HasMaxLength(200);

}

}

很清楚的可以看出来  实体类与表之间的映射关系 以及字段名称、类型、长度等配置,当然这一步不需要 MyBatis那么复杂 EFCore通过这种关系已经帮我们实现了映射关系,而MyBatis 则需要使用注解的方式指定(@Results)指定属性与字段列之间的关系

单元测试

@Testpublic voidtestMapper()

{

UserModel model= userMapper.getOne((long)1);

System.out.print(model.getEmail());

}

84e139be628b537360ea5fafa9a3a29f.png

2c669908ff426c061f60b83ac3c50808.png

可以得到我们想要的结果 Ok ,做完了这些,我们是不是应该处理下界面的问题了,下一章主要说明下thymeleaf模版的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值