轻量级orm框架-easy4net
来源:互联网 发布:丰城市网络问政 编辑:程序博客网 时间:2024/06/06 09:23
easy4net
easy4net是一个轻量级orm框架,灵活在于可以自己编写复杂的SQL语句查询,简单在于几分钟内便能上手使用,并支持mysql, mssql, oracle, access数据库. easy4net技术QQ 群:162695864
分页查询:
- 1. 命名参数, ParamMap传参方式:
- 2. 支持多层嵌套查询自动分页功能。
int pageIndex = 1;int pageSize = 3;string strSql = "SELECT e.*, c.company_name FROM employee e INNER JOIN company c ON e.company_id = c.id WHERE e.name = @name";ParamMap param = ParamMap.newMap();param.setPageParamters(page, limit);//分页时使用的排序字段,必填,请带上SQL表名的别名,如employee的为: eparam.setOrderFields("e.id", true);param.setParameter("name", "LiYang");DBHelper dbHelper = DBHelper.getInstance();List<Employee> emList = dbHelper.Find<Employee>(strSql, param);
分页查询:
- 1. 命名参数, ParamMap传参方式:
- 2. 返回总条数和数据集合的对象PageResult
public PageResult<Store> findByPage(int page, int limit){ DBHelper db = DBHelper.getInstance(); String sql = "select * from store"; ParamMap param = ParamMap.newMap(); param.setPageParamters(page, limit); param.setOrderFields("id", true); PageResult<Store> pageResult = db.FindPage<Store>(sql, param); return pageResult;}public class PageResult<T>{ /// <summary> /// 分页查询中总记录数 /// </summary> public int Total {get; set;} /// <summary> /// 分页查询中结果集合 /// </summary> public List<T> DataList {get; set;}}
查询单条记录:
string strSql = "SELECT e.*, c.company_name FROM employee e INNER JOIN company c ON e.company_id = c.id WHERE e.name = @name";ParamMap param = ParamMap.newMap();param.setParameter("name", "LiYang");Employee em = dbHelper.FindOne<Employee>(strSql, param);
普通查询:
string strSql = "SELECT e.*, c.company_name FROM employee e INNER JOIN company c ON e.company_id = c.id";List<Employee> emList = dbHelper.Find<Employee>(strSql);
新增:
- 1. 新增后返回新增记录的主键id值
- 2. 主键id值已经自动填充到新增的对象entity中
//创建公司Company company = new Company();company.CompanyName = txtName.Text.Trim();company.Industry = txtIndustry.Text.Trim();company.Address = txtAddress.Text.Trim();DBHelper dbHelper = DBHelper.getInstance();dbHelper.Insert<Company>(company);if (company.Id > 0) { MessageBox.Show("创建公司成功!");}//新增员工Company company = m_CompanyList[cbCompany.SelectedIndex]; Employee employee = new Employee();employee.Name = txtName.Text.Trim();mployee.Age = Convert.ToInt32(txtAge.Text.Trim());employee.Address = txtAddress.Text.Trim();employee.Created = DateTime.Now;employee.CompanyId = company.Id;DBHelper dbHelper = DBHelper.getInstance();dbHelper.Insert<Employee>(employee);if (employee.Id > 0){ MessageBox.Show("新增员工成功!");}
批量新增:
- 1. 主键id值已经自动填充到新增的对象entity中
- 2. 批量新增方法比手动循环多个对象然后调用新增性能高。
List<Company> companyList = ...;dbHelper.Insert(companyList);
修改:
Company entity = new Company();entity.Id = 1;entity.Name = "百度";dbHelper.Update(entity);
批量修改:
- 1. 批量修改方法比手动循环多个对象然后调用修改性能高。
DBHelper db = DBHelper.getInstance();List<Company> companyList = ...;dbHelper.Update(companyList);
删除:
- 1. 按对象方式删除数据
- 2. 按主键id方式删除数据
Company company = m_companyList[i];//remove a objectdbHelper.Delete(company);//remove by iddbHelper.Delete(company.Id);
批量删除:
- 1. 按对象方式删除数据
- 2. 按主键id方式删除数据
- 3. 批量删除比手动循环调用删除性能要高
//remove by objectList<Company> companyList = ...;dbHelper.Delete(companyList);//remove by idobject[] ids = new object[]{1,2,3,4,5};dbHelper.Delete(ids);
数据库与C#对象映射关系配置:
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Easy4net.Entity { [Table(Name = "company")] public class Company { [Id(Name = "id", Strategy = GenerationType.INDENTITY)] public int? Id{ get; set; } [Column(Name = "company_name")] public String CompanyName{ get; set; } [Column(Name = "industry")] public String Industry { get; set; } [Column(Name = "address")] public String Address { get; set; } } } using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text; namespace Easy4net.Entity { [Table(Name = "employee")] public class Employee { [Id(Name = "id", Strategy = GenerationType.INDENTITY)] public int? Id{ get; set; } [Column(Name = "name")] public String Name{ get; set; } [Column(Name = "age")] public int? Age{ get; set; } [Column(Name = "address")] public String Address{ get; set; } [Column(Name = "created")] public DateTime? Created{ get; set; } [Column(Name = "company_id")] public int? CompanyId{ get; set; } [Column(Name = "company_name", IsInsert = false, IsUpdate = false)] public String CompanyName { get; set; } } }
*数据库连接配置 web.config中: *
- dbType中配置sqlserver, mysql, oracle来支持不同的数据库
<?xml version="1.0"?><configuration> <appSettings> <!--<add key="DbType" value="sqlserver"/> <add key="connectionString" value="Data Source=121.199.9.217;Initial Catalog=test;User ID=test;Password=test123;Trusted_Connection=no;Min Pool Size=10;Max Pool Size=100;"/>--> <!--<add key="DbType" value="mysql"/> <add key="connectionString" value="Data Source=121.199.34.41;port=8001;User ID=test;Password=123456;DataBase=test;Min Pool Size=10;Max Pool Size=100;"/>--> <!--<add key="DbType" value="access"/> <add key="connectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\tj.mdb"/>--> <!--<add key="DbType" value="sqlserver"/> <add key="DbHost" value="8QHMQCAJBCOOHW2\SQLEXPRESS" /> <add key="DbName" value="test"/> <add key="DbUser" value="sa"/> <add key="DbPassword" value="111111"/> <add key="DbMinPoolSize" value="10"/> <add key="DbMaxPoolSize" value="100"/>--> <add key="DbType" value="mysql"/> <add key="DbHost" value="localhost" /> <add key="DbName" value="test_db"/> <add key="DbUser" value="user_test"/> <add key="DbPassword" value="111111"/> <add key="DbPort" value="3306"/> <add key="DbMinPoolSize" value="10"/> <add key="DbMaxPoolSize" value="100"/> </appSettings><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
0 0
- 轻量级orm框架-easy4net
- Obj2db 轻量级ORM框架
- 轻量级ORM框架Jorm
- ORM轻量级框架---ActiveAndroid
- ORM轻量级框架---ActiveAndroid
- Dapper-轻量级ORM框架
- ActiveAndroid--Android轻量级ORM框架
- ActiveAndroid--Android轻量级ORM框架
- Android 轻量级sqlite orm 框架
- ActiveAndroid--Android轻量级ORM框架
- OrmLite 轻量级ORM框架工具
- Android轻量级orm框架——KKORM
- Android:轻量级ORM框架ActiveAndroid入门教程(转)
- android 超轻量级的ORM框架
- Android轻量级ORM框架ActiveAndroid入门教程
- Android轻量级ORM框架ActiveAndroid入门教程
- Android中ORM数据库轻量级框架---ActiveAndroid
- Android轻量级ORM框架ActiveAndroid入门教程(转)
- Mysql下载与安装 (出错install/remove of the service denied)
- C语言实验——分割整数
- Oct week3
- 自己实现一个SQL解析引擎
- C语言实验——数组逆序
- 轻量级orm框架-easy4net
- Java中事务的处理
- Android strings.xml中的一些小知识
- 判断出栈顺序是否合法
- poj 3352 Road Construction(边双连通分量)
- java基础知识总结
- 排序
- 杀手锏,这个调用c++代码性能更高
- 炫酷:一句代码实现标题栏、导航栏滑动隐藏。ByeBurger库的使用和实现