Nfine框架基本使用--初学者的总结

最近要上手的Nfine框架,以前学习Java,上手这个感觉和ssm框架基本类似,基于MVC思想。借鉴了其他博主的帖子终于把这个框架增删改查等一套基本逻辑理清楚了,下面是我的总结内容,附带步骤图片.

1.建立Entity,扩展接口 — 这里是建立一个 Camera_InfoEntity 的Entity,也就是表的实体bean.

namespace NFine.Domain.Entity.SystemManage
{
public class Camera_InfoEntity : IEntity<Camera_InfoEntity>, ICreationAudited, IDeleteAudited, IModificationAudited
{
public string F_Id { get; set; }
public string CameraName{ get; set; }
public double Longitude { get; set; }
public double Latitude { get; set; }
public string Position { get; set; }
public int? VLAN { get; set; }
public string IP { get; set; }
public string Mask { get; set; }
public string Gateway { get; set; }
public int? Port { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Remark { get; set; }
public string F_ParentId { get; set; }
public int? F_Layers { get; set; }
public string F_EnCode { get; set; }
public string F_FullName { get; set; }
public string F_CategoryId { get; set; }
public int? F_SortCode { get; set; }
public bool? F_DeleteMark { get; set; }
public bool? F_EnabledMark { get; set; }
public string F_Description { get; set; }
public DateTime? F_CreatorTime { get; set; }
public string F_CreatorUserId { get; set; }
public DateTime? F_LastModifyTime { get; set; }
public string F_LastModifyUserId { get; set; }
public DateTime? F_DeleteTime { get; set; }
public string F_DeleteUserId { get; set; }
public double F_px_X { get; set; }
public double F_px_Y { get; set; }
}
}

2.在同项目下的04 IRepository,建立仓库接口。----这里是声明了名字 ICamera_InfoRepository 的仓库接口,其绑定的IRepositoryBase就是
第一步声明的Camera_InfoEntity.
相当于service层的接口声明,绑定了返回的实体类.

namespace NFine.Domain.IRepository.SystemManage
{
public interface ICamera_InfoRepository : IRepositoryBase<Camera_InfoEntity>
{
}
}

3、在maping中添加映射,其实就是在context中声明你的表名称。 ----这里就是声明了Camera_InfoEntity这个实体类对应的表的和表的主键.
相当于在mybatis中添加表的映射,用反向工程自动生成一套增删改查.

namespace NFine.Mapping.SystemManage
{
public class Camera_InfoMap : EntityTypeConfiguration<Camera_InfoEntity>
{
public Camera_InfoMap()
{
this.ToTable(“ZDYJ_Camera_Info”);
this.HasKey(t => t.F_Id);
}
}
}

4.在NFine.Repository项目中继承接口. ----这里是创建一个类Camera_InfoRepository 继承了 ICamera_InfoRepository 仓库接口。
相当于service层的serviceImpl,serviceImpl实现了接口service.

namespace NFine.Repository.SystemManage
{
public class Camera_InfoRepository : RepositoryBase<Camera_InfoEntity>, ICamera_InfoRepository
{
}
}

5.在NFine.Application中实现应用服务。—用仓库接口 ICamera_InfoRepository 多态实现创建一个 service,
private ICamera_InfoRepository service = new Camera_InfoRepository();
service 调底层框架已经封装好的几个方法操作数据库增删改查。
相当于在Dao层serviceImpl 调 某个表的mapping中已经写好的方法.

namespace NFine.Application.SystemManage
{
public class Camera_InfoApp
{
private ICamera_InfoRepository service = new Camera_InfoRepository();

    public List<Camera_InfoEntity> GetList1(Pagination pagination, string keyword){var expression = ExtLinq.True<Camera_InfoEntity>();if (!string.IsNullOrEmpty(keyword)){expression = expression.And(t => t.CameraName.Contains(keyword));}return service.FindList(expression, pagination);}public List<Camera_InfoEntity> GetList(){return service.IQueryable().ToList();}public Camera_InfoEntity GetForm(string keyValue){return service.FindEntity(keyValue);}public void DeleteForm(string keyValue){if (service.IQueryable().Count(t => t.F_ParentId.Equals(keyValue)) > 0){throw new Exception("删除失败!操作的对象包含了下级数据。");}else{service.Delete(t => t.F_Id == keyValue);}}public void SubmitForm(Camera_InfoEntity Camera_InfoEntity, string keyValue){if (!string.IsNullOrEmpty(keyValue)){Camera_InfoEntity.Modify(keyValue);service.Update(Camera_InfoEntity);}else{Camera_InfoEntity.Create();service.Insert(Camera_InfoEntity);}}
}

}

5.1. service可以调用的方法就是在IRepositoryBase中定义的通用方法.返回的TEntity也就是调用绑定的实体bean.

namespace NFine.Data
{
///
/// 仓储接口
///
/// 实体类型

public interface IRepositoryBase<TEntity> where TEntity : class,new()
{int Insert(TEntity entity);int Insert(List<TEntity> entitys);int Update(TEntity entity);int Delete(TEntity entity);int Delete(Expression<Func<TEntity, bool>> predicate);TEntity FindEntity(object keyValue);TEntity FindEntity(Expression<Func<TEntity, bool>> predicate);IQueryable<TEntity> IQueryable();IQueryable<TEntity> IQueryable(Expression<Func<TEntity, bool>> predicate);List<TEntity> FindList(string strSql);List<TEntity> FindList(string strSql, DbParameter[] dbParameter);List<TEntity> FindList(Pagination pagination);List<TEntity> FindList(Expression<Func<TEntity, bool>> predicate, Pagination pagination);
}

}

6.在views文件夹先建立各个图层页面,直接ajax的 url: “/SystemManage/Camera_Info/GetGridJson”,
会转到对应controller下面去处理,先new出对应的Camera_InfoApp,Camera_InfoApp去调用第五步中的方法并返回值.

namespace NFine.Web.Areas.SystemManage.Controllers
{
public class Camera_InfoController : ControllerBase
{
private Camera_InfoApp Camera_InfoApp = new Camera_InfoApp();

    [HttpGet][HandlerAjaxOnly]public ActionResult GetGridJson(Pagination pagination, string keyword){var data = new{rows = Camera_InfoApp.GetList1(pagination, keyword),total = pagination.total,page = pagination.page,records = pagination.records};return Content(data.ToJson());}

发现好像上传文件下载竟然需要C币,只能把图片一张张发出来,感觉比较乱可以把图片拷贝到一个文件夹,看截图感觉对第一次接触这个框架的上手比较有帮助。
1、建立Entity
2、建立仓库接口
3、在maping中添加映射
4、在项目中继承接口
5、在Application中实现应用服务
5.1、service可以调用的方法
6、建立views调用方法
7、controller接收调用

Nfine框架基本使用--初学者的总结相关推荐

  1. main java game,playgame 一个JAVA编写的飞行小游戏,有基本完整的 框架,适合初学者参照学习 Other s 其他 238万源代码下载- www.pudn.com...

    文件名称: playgame下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 7050 KB 上传时间: 2013-06-06 下载次数: 3 提 供 者: Lyq ...

  2. python框架django书籍_有Python基础,刚接触web框架的Django初学者。

    本文面向:有Python基础,刚接触web框架的Django初学者. 环境:windows7 python3.5.1 pycharm Django 1.10版 pip3 一.Django简介 百度百科 ...

  3. nfine框架 上传文件_MVC之Struts2框架--你并不了解的高级应用

    <"爱读书"--给你讲技术>,我来看书,你来进步,让我们开始吧! 本书简介 书名为<轻量级JavaEE企业应用实战>,是本人在学习JavaEE框架的时候阅读 ...

  4. 4款深度学习框架简介,初学者该如何选择?

    导读:近几年,随着深度学习爆炸式发展,在人工智能领域除了理论方面的突破外,还有基础架构的突破,它们奠定了深度学习繁荣发展的基础.这其中涌现了几个著名的深度学习平台,本文将对这些平台进行逐一介绍. 作者 ...

  5. Keras与PyTorch全方位比较 哪一个深度学习框架更适合初学者?

    Keras或PyTorch作为您的第一个深度学习框架 你想学习深度学习吗?无论您是想开始将其应用于您的业务,建立您的下一个项目,还是仅仅获得当下热门的技能 – 选择合适的深度学习框架来学习是实现目标的 ...

  6. nfine框架 上传文件_网站服务器Nginx运行环境,后台文件上传超出Nginx的最大值...

    解决方法: 1.修改Nginx的配置文件(一般是:nginx/nginx.conf),在 http{} 段中增大nginx上传文件大小限制 #设置允许发布内容为8M client_max_body_s ...

  7. nfine框架 上传文件,nfine(nfine快速开发框架)

    将数据库表中的一条记录抽象成类Row,这个类用HashMap保存关系数据库中表格中一行数据的字段名和值并提供一些相关操作.另外这个类还提供了两个静态方法用于在. one fine day 释义:美好的 ...

  8. spring基本框架搭建(初学者)(IDEA)

    1.导包 新建lib文件夹,如果存在就无需创建,导入之后一定要右键lib文件夹add as libray 2.在src文件夹下新建配置文件 右键new -选择XMLconfiguration file ...

  9. python爬虫框架排行榜-哪种Python框架适合你?简单介绍几种主流Python框架

    众所周知,Python开发框架大大减少了开发者不必要的重复劳动,提高了项目开发效率的同时,还使得创建的程序更加稳定.目前比较主流的Python框架都有哪些呢?一般大家用的比较多的是Django.Fla ...

  10. javaweb成长之路:SSM框架搭建

    学习javaweb开发,框架的学习是难以避免的,合理的使用框架进行开发,可以很大程度的提升开发效率,减少开发者的工作量.随着it行业的不断发展,各种框架也是层出不穷,目前使用最广的框架应该是属于ssm ...

最新文章

  1. php 配置文件加密工具类,SpringBoot集成Jasypt安全框架以及配置文件内容加密(代码示例)...
  2. 【Linux 内核 内存管理】RCU 机制 ④ ( RCU 模式下更新链表项 list_replace_rcu 函数 | 链表操作时使用 smp_wmb() 函数保证代码执行顺序 )
  3. Leetcode 223. 矩形面积 解题思路及C++实现
  4. 异或交换值(有趣点)
  5. NYOJ 158 省赛来了
  6. 用lua扩展你的Nginx(整理)
  7. 计算机职称考试软盘,2010年职称计算机考试:磁盘格式化
  8. Alpha 冲刺 (6/10)
  9. pytorch学习笔记(二十八):循环神经网络的从零开始实现
  10. 用vector编写一个矩阵模板
  11. unity lookat导致物体颠倒怎么解决_Unity草地交互的实现
  12. HCIE Security 2020.12.04面试战报
  13. Solr搜索引擎——中文分词器
  14. html页面显示代码插件,客户端显示web网页支持html5的第三方内核插件
  15. 管理九段,你的管理入围“几段”了?
  16. mysql 启动 配置文件,mysql启动服务配置文件编写
  17. 84.常用的返回QuerySet对象的方法使用详解:select_related, prefetch_related
  18. 微信使用技巧 - 收集整理
  19. 小蓝本 第一本《因式分解技巧》第四章 拆项与添项 笔记(第四天)
  20. Anaconda => PyCharm => CUDA => cudnn => PyTorch 环境配置

热门文章

  1. 把mdb文件导入SQL Server 软件的解决方法
  2. 计算机考研数据结构用哪本书,计算机考研数据结构该用哪本参考书?
  3. 解决Teamviewer屏保锁屏、黑屏无法进入问题
  4. hd_Lanswitch Web System
  5. CRM客户管理系统能为企业带来什么好处?
  6. Unity两物体撞击所出现Bug示例及其说明
  7. 科沃斯扫地机器人电路原理图_科沃斯扫地机器人不工作故障维修(CEN550)
  8. 伺服驱动伺服电机选型究竞有哪些问题要注意??
  9. 懒人——支付宝app支付
  10. 51单片机跑马灯c语言,51单片机——跑马灯详解(示例代码)