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

做爰全过程免费的教网站如何把代码放在网站首页教程

做爰全过程免费的教网站,如何把代码放在网站首页教程,专业做网站的,温州网站开发服务商之前在LIS.Core定义了实体特性,在LIS.Model给实体类加了表特性,属性特性,外键特性等。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, List<ParamDto> para,List<String> operList,List<String> linkList, String orderBySql,Boolean IsFk){StringBuilder sb=new StringBuilder();sb.append("select ");//是否含有序号列boolean HasSequence=false;boolean HasSeqNum=false;//组装查询列for(int i=0;i<tableInfo.ColList.size();i++){//存列名String columnName = tableInfo.ColList.get(i).Name;if(columnName=="Sequence"){HasSequence=true;}else if(columnName=="SeqNum"){HasSeqNum=true;}//组装查询列if(i==0){sb.append(factory.DealPropertyName(columnName));}else{sb.append(","+factory.DealPropertyName(columnName));}//组装外键查询信息if(IsFk==true&&tableInfo.ColList.get(i).FkInfo!=null) {FrekeyAttribute fkAttr=tableInfo.ColList.get(i).FkInfo;String refTableName=factory.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!=null&&para.size()>0){sb.append(" where ");for(int i=0;i<para.size();i++){String oper="=";if(operList!=null&&operList.size()>i){oper=operList.get(i);}String link="and";if(operList!=null&&operList.size()>i-1){link=operList.get(i-1);}if(i==0) {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];strTableName=tableInfo.Name();break;}}}return strTableName;}
}

定义的表信息实体
解析的列信息

package LIS.DAL.ORM.Common;
import LIS.Core.CustomAttributes.FrekeyAttribute;
import java.lang.reflect.Type;//列信息
public class ColumnInfo {//存外键信息public FrekeyAttribute FkInfo=null;//存列名public String Name;//存列结果public Object Value;//存列的类型public Type ColType;
}

解析的id信息

package LIS.DAL.ORM.Common;//存主键信息
public class IdInfo {/// <summary>/// 键值ID/// </summary>public String Key;/// <summary>/// 键值数据/// </summary>public Object Value;
}

解析的表信息

package LIS.DAL.ORM.Common;
import LIS.Core.CustomAttributes.*;
import java.util.*;
import LIS.DAL.ORM.Common.ColumnInfo;//存解析的表新
public class TableInfo {//存唯一的特性public List<UniqueAttribute> UniqueList=new ArrayList<UniqueAttribute>();//表特性public TableAttribute TableInfo=null;//主键信息public LIS.DAL.ORM.Common.IdInfo ID=null;//存列信息public List<ColumnInfo> ColList=new ArrayList<ColumnInfo>();
}

测试

在这里插入图片描述

控制台测试

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 orm=new 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."SystemSubDR"=dbo.SYS_SystemSub."RowID") as "SystemSubDR_SYSSystemSub_RowID",(select "" from dbo.SYS_SystemSub where ti."SystemSubDR"=dbo.SYS_SystemSub."RowID") as "SystemSubDR_SYSSystemSub_",(select "" from dbo.SYS_SystemSub where ti."SystemSubDR"=dbo.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."HospitalDR"=dbo.BT_Hospital."RowID") as "HospitalDR_BTHospital_CName",(select "" from dbo.BT_Hospital where ti."HospitalDR"=dbo.BT_Hospital."RowID") as "HospitalDR_BTHospital_",(select "" from dbo.BT_Hospital where ti."HospitalDR"=dbo.BT_Hospital."RowID") as "HospitalDR_BTHospital_","LanguageDR",(select "CName" from dbo.SYS_Language where ti."LanguageDR"=dbo.SYS_Language."RowID") as "LanguageDR_SYSLanguage_CName",(select "" from dbo.SYS_Language where ti."LanguageDR"=dbo.SYS_Language."RowID") as "LanguageDR_SYSLanguage_",(select "" from dbo.SYS_Language where ti."LanguageDR"=dbo.SYS_Language."RowID") as "LanguageDR_SYSLanguage_","SecurityType","PIN","Remark","Sequence","Active","PositionTitleDR",(select "CName" from dbo.BT_PositionTitle where ti."PositionTitleDR"=dbo.BT_PositionTitle."RowID") as "PositionTitleDR_BTPositionTitle_CName",(select "" from dbo.BT_PositionTitle where ti."PositionTitleDR"=dbo.BT_PositionTitle."RowID") as "PositionTitleDR_BTPositionTitle_",(select "" from dbo.BT_PositionTitle where ti."PositionTitleDR"=dbo.BT_PositionTitle."RowID") as "PositionTitleDR_BTPositionTitle_","UserType","UKeyNo","SignImage","Theme","MenuModel","PermissionDR",(select "CName" from dbo.SYS_Permission where ti."PermissionDR"=dbo.SYS_Permission."RowID") as "PermissionDR_SYSPermission_CName",(select "" from dbo.SYS_Permission where ti."PermissionDR"=dbo.SYS_Permission."RowID") as "PermissionDR_SYSPermission_",(select "" from dbo.SYS_Permission where ti."PermissionDR"=dbo.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.yayakq.cn/news/64062/

相关文章:

  • 如何建立公司网站链接手机管家一键优化
  • 个人网站主办者名称上海知名装修公司排行
  • 楚雄 公司 网站国内前十网站建设公司
  • 上海南站网站建设公司html代码自动生成
  • 围场网站建设设计网站公司 露 联湖南岚鸿
  • 做印刷的网站有没有专门做家纺的网站
  • 十大纯净系统网站室内装修设计学习
  • 自己有域名怎么做网站四川省住房与城乡建设厅网站管网
  • 德庆网站建设公司做网站常州
  • 东莞专业网站制作设计网络培训学习心得
  • 长春微网站网页设计代码模板素材
  • 给期货交易类做网站违法吗服装网站怎么做
  • 网站建设心得.doc团购产品 网站建设
  • 同安建设局网站做贺卡网站
  • 湖州站内优化seo公司网站排名的重要性
  • 注册公司哪个网站17一起做网站包包
  • 咨询网站设计跨专业的简历怎么制作
  • 衡水城乡建设局网站wordpress动漫网站模板
  • 怎样申请网站郑州全员核酸
  • 建设部监理工程师报考网站佛山网站优化什么价格
  • 合肥高新区建设发展局网站制作灯笼的材料
  • 怎么建设网站视频教程网站做细分领域
  • 南阳卧龙区2015网站建设价格linux网页制作软件
  • 做房地产一级市场的看什么网站爱论网
  • 新万网站建设wordpress创建目录
  • 官方网站建设成果网页设计相关的网站
  • 网站做百度推广怎么推广网站小学生做网站软件
  • 摄影网站首页设计天津做网站
  • 网站视频打不开什么原因网站建设 营销
  • 合肥网站开发公司电话装修网站排名前十