当前位置: 首页 > news >正文

浦口区网站建设经验丰富北京比较好的it公司

浦口区网站建设经验丰富,北京比较好的it公司,网站建设销售方面会遇到的问题,英国网站域名之前在LIS.Core定义了实体特性#xff0c;在LIS.Model给实体类加了表特性#xff0c;属性特性#xff0c;外键特性等。ORM要实现增删改查和查带外键的父表信息就需要解析Model的特性和实体信息组装SQL来供数据库驱动实现增删改查功能。 实现实体得到SQL的工具类#xff0c…之前在LIS.Core定义了实体特性在LIS.Model给实体类加了表特性属性特性外键特性等。ORM要实现增删改查和查带外键的父表信息就需要解析Model的特性和实体信息组装SQL来供数据库驱动实现增删改查功能。 实现实体得到SQL的工具类先实现一个得到查询SQL示例 package LIS.DAL.ORM.Common; import LIS.Core.CustomAttributes.*; import LIS.Core.Dto.*; import LIS.Core.Dto.ParamDto; import java.util.*; import java.util.List; import LIS.DAL.ORM.Common.TableInfo; import LIS.DAL.ORM.DBUtility.IDbFactory;import java.lang.annotation.Annotation; import java.lang.reflect.*; import LIS.DAL.ORM.Common.ColumnInfo; import LIS.DAL.ORM.Common.TableInfo; import LIS.Core.Util.ReflectUtil; import LIS.Core.CustomAttributes.TableAttribute;//通过实体类型得到SQL的工具类 public class ModelToSqlUtil {//通过实体对象得到表信息public static TableInfo GetTypeInfo(Object model) {if (model null) {return null;}try {//返回的对象TableInfo tableInfo new TableInfo();Class c model.getClass();System.out.println(111);//得到表特性Annotation[] annoList c.getAnnotations();if (annoList ! null annoList.length 0) {for (int i 0; i annoList.length; i) {//表特性if (annoList[i] instanceof TableAttribute) {tableInfo.TableInfo (TableAttribute) annoList[i];}//唯一特性else {tableInfo.UniqueList.add((UniqueAttribute) annoList[i]);}}}//得到列信息Field[] declaredFields c.getDeclaredFields();for (int i 0; i declaredFields.length; i) {LIS.DAL.ORM.Common.ColumnInfo col new LIS.DAL.ORM.Common.ColumnInfo();FrekeyAttribute fk declaredFields[i].getAnnotation(FrekeyAttribute.class);col.FkInfo fk;col.Name declaredFields[i].getName();col.ColType declaredFields[i].getType();col.Value declaredFields[i].get(model);tableInfo.ColList.add(col);}return tableInfo;} catch (Exception ex) {ex.printStackTrace();}return null;}//通过表信息和参数列表组装查询SQL//factory:驱动工厂//tableInfo:表信息//para:参数//operList:参数对应的操作符列表//linkList:多个参数之间连接的操作符 and or这种//orderBySql:Order By的SQL语句//IsFk:是否组装外键查询的SQLpublic static String GetSelectSqlByTableInfo(IDbFactory factory,TableInfo tableInfo, ListParamDto para,ListString operList,ListString linkList, String orderBySql,Boolean IsFk){StringBuilder sbnew StringBuilder();sb.append(select );//是否含有序号列boolean HasSequencefalse;boolean HasSeqNumfalse;//组装查询列for(int i0;itableInfo.ColList.size();i){//存列名String columnName tableInfo.ColList.get(i).Name;if(columnNameSequence){HasSequencetrue;}else if(columnNameSeqNum){HasSeqNumtrue;}//组装查询列if(i0){sb.append(factory.DealPropertyName(columnName));}else{sb.append(,factory.DealPropertyName(columnName));}//组装外键查询信息if(IsFktruetableInfo.ColList.get(i).FkInfo!null) {FrekeyAttribute fkAttrtableInfo.ColList.get(i).FkInfo;String refTableNamefactory.DealTableName(GetTableName(ReflectUtil.GetType(LIS.Model.Entity. fkAttr.Name(), LIS.Model)));sb.append(, (select factory.DealPropertyName(fkAttr.AssociaField()) from refTableName where ti. factory.DealPropertyName(columnName) refTableName . factory.DealPropertyName(fkAttr.RefColumnName()) ) as factory.DealPropertyName(columnName _ fkAttr.Name() _ fkAttr.AssociaField()));//如果有拉取字段1查询拉取字段if (fkAttr.AssociaField1() ! ){sb.append(, (select factory.DealPropertyName(fkAttr.AssociaField1()) from refTableName where ti. factory.DealPropertyName(columnName) refTableName . factory.DealPropertyName(fkAttr.RefColumnName()) ) as factory.DealPropertyName(columnName _ fkAttr.Name() _ fkAttr.AssociaField1()));}//如果有拉取字段2查询拉取字段if (fkAttr.AssociaField2() ! ){sb.append(, (select factory.DealPropertyName(fkAttr.AssociaField2()) from refTableName where ti. factory.DealPropertyName(columnName) refTableName . factory.DealPropertyName(fkAttr.RefColumnName()) ) as factory.DealPropertyName(columnName _ fkAttr.Name() _ fkAttr.AssociaField2()));}}}sb.append( from factory.DealTableName(tableInfo.TableInfo.Name()) ti );//组装查询参数if(para!nullpara.size()0){sb.append( where );for(int i0;ipara.size();i){String oper;if(operList!nulloperList.size()i){operoperList.get(i);}String linkand;if(operList!nulloperList.size()i-1){linkoperList.get(i-1);}if(i0) {sb.append(factory.DealPropertyName(para.get(i).Key.toString()) oper factory.DealSqlPara(para.get(i).Key.toString()));}else{sb.append( link factory.DealPropertyName(para.get(i).Key.toString()) oper factory.DealSqlPara(para.get(i).Key.toString()));}}}//存组装的排序sqlString strSort ;//如果传入了排序字段组装排序语句if (orderBySql ! null orderBySql.length() 0){//用来存处理的排序串String dealStr ;//先分割多个排序条件String[] strList orderBySql.split(,);for (int m 0; m strList.length; m){//分开多个排序条件if (m 0){dealStr ,;}//分开字段名称和升降序String[] strSubList strList[m].split( );//处理字段名称dealStr factory.DealPropertyName(strSubList[0]);//组装处理的串for (int n 1; n strSubList.length; n){dealStr strSubList[n];}}//组装排序串strSort Order By dealStr;}else{if (HasSequence){strSort Order By factory.DealPropertyName(Sequence) ASC;}else if (HasSeqNum){strSort Order By factory.DealPropertyName(SeqNum) ASC;}else{strSort ;}}sb.append(strSort);return sb.toString();}//通过实体类型得到实体表名称private static String GetTableName(Class c){//存表名String strTableName ;//得到表特性TableAttribute tableInfo null;//得到表特性Annotation[] annoList c.getAnnotations();if (annoList ! null annoList.length 0) {for (int i 0; i annoList.length; i) {//表特性if (annoList[i] instanceof TableAttribute) {tableInfo (TableAttribute) annoList[i];strTableNametableInfo.Name();break;}}}return strTableName;} } 定义的表信息实体 解析的列信息 package LIS.DAL.ORM.Common; import LIS.Core.CustomAttributes.FrekeyAttribute; import java.lang.reflect.Type;//列信息 public class ColumnInfo {//存外键信息public FrekeyAttribute FkInfonull;//存列名public String Name;//存列结果public Object Value;//存列的类型public Type ColType; } 解析的id信息 package LIS.DAL.ORM.Common;//存主键信息 public class IdInfo {/// summary/// 键值ID/// /summarypublic String Key;/// summary/// 键值数据/// /summarypublic Object Value; } 解析的表信息 package LIS.DAL.ORM.Common; import LIS.Core.CustomAttributes.*; import java.util.*; import LIS.DAL.ORM.Common.ColumnInfo;//存解析的表新 public class TableInfo {//存唯一的特性public ListUniqueAttribute UniqueListnew ArrayListUniqueAttribute();//表特性public TableAttribute TableInfonull;//主键信息public LIS.DAL.ORM.Common.IdInfo IDnull;//存列信息public ListColumnInfo ColListnew ArrayListColumnInfo(); } 测试 控制台测试 package com.company; //import org.apache.commons.configuration.ConfigurationException; //import org.apache.commons.configuration.PropertiesConfiguration; import LIS.Model.Entity.SYSForm; import LIS.Model.Entity.SYSUser; import org.w3c.dom.*; import javax.xml.parsers.*; import java.io.*; import java.net.URL;public class Main {public static void main(String[] args) {//用容器的配置xml初始化容器LIS.Core.Context.ObjectContainer.InitIoc();//ORM通过容器取数据库驱动工厂LIS.DAL.ORM.EntityManager.EntityManagerImpl ormnew LIS.DAL.ORM.EntityManager.EntityManagerImpl();//执行查询测试orm.DBSelectTest();//测试通过实体得到SQL语句orm.InsertSqlTest(new SYSForm());orm.InsertSqlTest(new SYSUser());} } 测试查询外键的sql select RowID,Code,CName,SysCode,Sequence,Active,Url,Path,Remark,FormHelp,HelpWidth,HelpHeight,HelpDoc,SystemSubDR,(select RowID from dbo.SYS_SystemSub where ti.SystemSubDRdbo.SYS_SystemSub.RowID) as SystemSubDR_SYSSystemSub_RowID,(select from dbo.SYS_SystemSub where ti.SystemSubDRdbo.SYS_SystemSub.RowID) as SystemSubDR_SYSSystemSub_,(select from dbo.SYS_SystemSub where ti.SystemSubDRdbo.SYS_SystemSub.RowID) as SystemSubDR_SYSSystemSub_ from dbo.SYS_Form ti Order By Sequence ASCselect RowID,Code,CName,Password,HospitalDR,(select CName from dbo.BT_Hospital where ti.HospitalDRdbo.BT_Hospital.RowID) as HospitalDR_BTHospital_CName,(select from dbo.BT_Hospital where ti.HospitalDRdbo.BT_Hospital.RowID) as HospitalDR_BTHospital_,(select from dbo.BT_Hospital where ti.HospitalDRdbo.BT_Hospital.RowID) as HospitalDR_BTHospital_,LanguageDR,(select CName from dbo.SYS_Language where ti.LanguageDRdbo.SYS_Language.RowID) as LanguageDR_SYSLanguage_CName,(select from dbo.SYS_Language where ti.LanguageDRdbo.SYS_Language.RowID) as LanguageDR_SYSLanguage_,(select from dbo.SYS_Language where ti.LanguageDRdbo.SYS_Language.RowID) as LanguageDR_SYSLanguage_,SecurityType,PIN,Remark,Sequence,Active,PositionTitleDR,(select CName from dbo.BT_PositionTitle where ti.PositionTitleDRdbo.BT_PositionTitle.RowID) as PositionTitleDR_BTPositionTitle_CName,(select from dbo.BT_PositionTitle where ti.PositionTitleDRdbo.BT_PositionTitle.RowID) as PositionTitleDR_BTPositionTitle_,(select from dbo.BT_PositionTitle where ti.PositionTitleDRdbo.BT_PositionTitle.RowID) as PositionTitleDR_BTPositionTitle_,UserType,UKeyNo,SignImage,Theme,MenuModel,PermissionDR,(select CName from dbo.SYS_Permission where ti.PermissionDRdbo.SYS_Permission.RowID) as PermissionDR_SYSPermission_CName,(select from dbo.SYS_Permission where ti.PermissionDRdbo.SYS_Permission.RowID) as PermissionDR_SYSPermission_,(select from dbo.SYS_Permission where ti.PermissionDRdbo.SYS_Permission.RowID) as PermissionDR_SYSPermission_ from dbo.SYS_User ti Order By Sequence ASC 支持SQL组装的基础雏形完成了Maven的依赖实在是太无语了一会儿IDE提示代码不行的时候Maven编译又可以。一会儿IDE提示可以的时候Maven有编译不行摸不着规律工程换Jboss工程了工程引用浪费大量时间弃用Maven工程后引用依赖稳定了
http://www.hkea.cn/news/14494821/

相关文章:

  • 常熟做网站价格手机网站怎么做沉浸式
  • 上海做公司网站多少钱做微网站的公司哪家好
  • 珠海在线网站制作公司php做网站页面在哪做
  • 中国建设人才服务信息网站哈尔滨 建网站
  • 网站排名优化seo免费素材网站下载
  • 重庆网站seo多少钱网站建设实践总结
  • 室内设计设计师网站推荐万网做网站吗
  • 长宁区网站建设网站老鹰画室网站哪家做的
  • 做搜索网站能发财吗wap文字游戏源码
  • 信用中国 网站 支持建设广州知名网站建设公司
  • 企业网站注册流程学编程哪个培训机构好
  • 网站推广中h1标签的重要性搜索引擎营销优化
  • 旅游前 做攻略有什么网站好用制作一个网站步骤排版
  • 网站建设公司 宣传册天津网站建设排名
  • 班级网站建设流程步骤cms系统推荐
  • 群团组织网站建设微信互动平台网站建设
  • 济南高端网站建设价格php带数据库的网站
  • 网站开发项目进度完成表大宗交易平台有哪些
  • 2019建一个什么网站最好网站建设规划设计
  • 快速创建网站做网站购买什么
  • 华强南网站建设网站建设打造学院
  • 专业网站有哪些平台服务信誉好的外贸管理软件
  • 建设网站应该加什么服务腾讯企业邮箱手机版
  • 做网站还赚钱吗小程序图片制作
  • wordpress 建站主题网站html有了怎么建设网站
  • 手机之家报价大全2022丰台网站关键词优化
  • 国外营销型网站设计wordpress采集主题
  • 邢台做网站公司排名怎么样做外链推广网站
  • 高端网站建设与制作福州网站建设培训
  • 跨平台网站开发你注册过的那些网站