Java Spring Boot VS .NetCore (五)MyBatis vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World
Java Spring Boot VS .NetCore (二)实现一个过滤器Filter
Java Spring Boot VS .NetCore (三)Ioc容器处理
Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore
Java Spring Boot VS .NetCore (五)MyBatis vs EFCore
Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml
Java Spring Boot VS .NetCore (七) 配置文件
Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute
Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security
Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor
Java Spring Boot VS .NetCore (十一)自定义标签 Java Tag Freemarker VS .NetCore Tag TagHelper
介绍
添加MyBatis先关的依赖包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
MyBatis
有两种配置方式 一种是通过XML来实现 相关操作 解耦性相对较强,第二种则是以注解的方式来实现,这里已第二种方式说明
使用这种方式还需要配置下 指向实体类的包路径
mybatis.type-aliases-package=com.liyouming.demo.domain.Entitys
在 启动入口里面添加注解指向 Mapper操作功能包地址
@MapperScan("com.liyouming.demo.Mapper")
下面的代码是功能类User 直接可以通过注解的方式完成相关方法的操作
public interface UserMapper {
@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")
})
List<UserModel> getAll();
@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})")
void insert(UserModel user);
// @SelectProvider(type = CustomSql.class, method = "getList")
// List<UserModel> getList(UserModel userParam);
}
EFCore
其实也有相关配置文件,只是平时都是用的直接根据实体生成的方式,如果需要配置怎么处理,使用查询ORM映射处理后的结果对应放在类里面的哪些字段,可以通过System.ComponentModel.DataAnnotations.Schema 引用下的标签工鞥来完成
当然EFCore 提供了配置处理 在数据库上下文对象中 重写 实现OnModelCreating 其中 ModelBuilder 类提供了添加配置的方法
protected override void OnModelCreating(ModelBuilder builder)
{
builder.ApplyConfiguration(new ClassMap());
}
ClassMap 只需要实现 IEntityTypeConfiguration 接口,实现Configure 方法来实现配置映射关系 如下:
public class ClassMap : IEntityTypeConfiguration<ClassModel>
{
public void Configure(EntityTypeBuilder<ClassModel> builder)
{
builder.ToTable("Express_Class").HasKey(x => x.Id);
builder.Property(c => c.ClassName).HasColumnName("Class_Name").HasColumnType("varchar").HasMaxLength(); }
}
很清楚的可以看出来 实体类与表之间的映射关系 以及字段名称、类型、长度等配置,当然这一步不需要 MyBatis那么复杂 EFCore通过这种关系已经帮我们实现了映射关系,而MyBatis 则需要使用注解的方式指定(@Results)指定属性与字段列之间的关系
单元测试
@Test
public void testMapper()
{
UserModel model= userMapper.getOne((long)1);
System.out.print(model.getEmail());
}


可以得到我们想要的结果 Ok ,做完了这些,我们是不是应该处理下界面的问题了,下一章主要说明下thymeleaf模版的使用
Java Spring Boot VS .NetCore (五)MyBatis vs EFCore的更多相关文章
- Java Spring Boot VS .NetCore (一)来一个简单的 Hello World
系列文章 Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filte ...
- Java Spring Boot VS .NetCore (二)实现一个过滤器Filter
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (三)Ioc容器处理
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (七) 配置文件
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
随机推荐
- Java多线程9:中断机制
一.概述 之前讲解Thread类中方法的时候,interrupt().interrupted().isInterrupted()三个方法没有讲得很清楚,只是提了一下.现在把这三个方法同一放到这里来讲, ...
- Python——Flash框架——用户认证
一.认证扩展 1.Flask-Login:管理已登录用户的用户会话 2.Werkzeug:计算几码散列值并进行核对 3.itsdangerous:生成并核对加密安全令牌 二.Werkzeug gene ...
- Djangon的坑
<a href="/del_student/?pk={{ students.pk }}"></a> 在django中当你写入这样的语句是,pk={{ stu ...
- 【NLP】Conditional Language Models
Language Model estimates the probs that the sequences of words can be a sentence said by a human. Tr ...
- sql中的 IF 条件语句的用法
IF 表达式 IF( expr1 , expr2 , expr3 ) expr1 的值为 TRUE,则返回值为 expr2 expr1 的值为FALSE,则返回值为 expr3 如下: SELECT ...
- 10.3 Vue 路由系统
Vue 路由系统 简单示例 main.js import Vue from 'vue' import App from './App.vue' //https://router.vuejs.or ...
- mongoDB 集合(表)操作
mongoDB 集合(表)操作 集合命名规则 使用 utf8 字符(通常不会起中文名字) 不能含有 "\0" 字符 不要以 system. 开头(否咋会覆盖系统集合开头) 不要和关 ...
- python xpath学习
一.选取节点: 二.谓词: 注意:在scrapy中用xpath进行搜索时,如果使用相对路径,要加上.,如,不然搜索的是整个文档.
- Linux设备树(三 属性)
三 属性(property) device_type = "memory"就是一个属性,等号前边是属性,后边是值.节点是一个逻辑上相对独立的实体,属性是用来描述节点特性的,根据需要 ...
- IrisSkin 单独控件样式设置 不使用皮肤样式
可以设置控件的Tag为this.skinEngine1.DisableTag [DefaultValue()] [Description("If you do not want skin t ...