日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单代码生成器原理剖析(一)

發布時間:2023/12/2 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单代码生成器原理剖析(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上篇文章(深入淺出三層架構)分析了簡單三層架構的實現。包括Model,DAL(數據訪問層),BLL(業務邏輯層)的實現。

實際開發中,由于重復代碼的操作,會花費大量時間,如果以代碼生成器來自動生成三層架構代碼,即節省精力,又可以節省大量的時間來做其他業務邏輯的代碼,提高開發效率。

常用的代碼生成器有:動軟,CodeSmith 等。

簡單代碼生成器的基本功能描述:

一鍵生成Model,DAL,BLL,包括對應數據庫中表的Model的自動生成,包括生成屬性、添加、修改、刪除、查詢。

界面展示:

生成器開發技術要點:

  • 查詢系統視圖:INFORMATION_SCHEMA.TABLES、?INFORMATION_SCHEMA.COLUMNS? 可以獲得數據庫中表、列的相關信息。
  • 字符串的拼接:StringBuilder的使用,其AppendLine()會自動換行。
  • 將字符串寫入文本文件:File.WriteAllText()
  • 為了降低開發難度,先假設條件多一些,如表的主鍵都為Id,且自動增長,之后再逐步完善
  • 關鍵代碼:

    ?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.IO;

    namespace CodeGenerator
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    /// <summary>
    /// 執行ExecuteDataTable(),得到DataTable
    /// </summary>
    /// <param name="cmdText"></param>
    /// <param name="parameters"></param>
    /// <returns></returns>
    public DataTable ExecuteDataTable(string cmdText,
    params SqlParameter[] parameters)
    {
    using (SqlConnection conn=new SqlConnection(txtConnStr.Text))
    {
    conn.Open();
    using(SqlCommand cmd=conn.CreateCommand())
    {
    cmd.CommandText = cmdText;
    cmd.Parameters.AddRange(parameters);
    using (SqlDataAdapter adapter=new SqlDataAdapter (cmd))
    {
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    return dt;
    }
    }
    }

    }

    private void Form1_Load(object sender, EventArgs e)
    {
    txtConnStr.Text = @"Data Source=EYES\SQLEXPRESS;Initial Catalog=SanCeng;Integrated Security=True";
    }

    private void btnConnStr_Click(object sender, EventArgs e)
    {

    //清空
    clbTables.Items.Clear();
    //查詢系統試圖
    string sql = "select * from INFORMATION_SCHEMA.TABLES";
    DataTable dt = ExecuteDataTable(sql);
    //根據系統視圖取得TABLE_NAME
    foreach (DataRow row in dt.Rows)
    {
    string tablename = Convert.ToString(row["TABLE_NAME"]);
    clbTables.Items.Add(tablename);
    }

    }

    private void btnGo_Click(object sender, EventArgs e)
    {
    //連接字符串
    //方法AppendLine()追加字符串且自動執行換行

    foreach (string tableName in clbTables.CheckedItems)
    {
    string sql = "select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME=@TABLE_NAME ";
    DataTable dt = ExecuteDataTable(sql,new SqlParameter("TABLE_NAME",tableName));

    #region 生成Model
    CreatModel(tableName, dt);
    #endregion

    #region 生成DAL


    CreatDAL(tableName, dt);
    #endregion
    #region 生成BLL
    CreatBLL(tableName, dt);
    #endregion
    }
    }

    private static void CreatDAL(string tableName, DataTable dt)
    {
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("using System;");
    sb.AppendLine("using System.Collections.Generic;");
    sb.AppendLine("using System.Linq;");
    sb.AppendLine("using System.Text;");
    sb.AppendLine("using 三層架構Demo.Model;");
    sb.AppendLine("using System.Data.SqlClient;");
    sb.AppendLine("using System.Data;");
    sb.AppendLine("namespace 三層架構Demo.DAL");
    sb.AppendLine("{");
    sb.AppendLine("class " + tableName + "DAL");
    sb.AppendLine("{");
    //去掉Id
    sb.AppendLine(" public int Addnew(" + tableName + " model)");
    sb.AppendLine("{");
    List<String> cols = new List<string>();
    List<String> parameters = new List<string>();
    foreach (DataRow row in dt.Rows)
    {
    string col = Convert.ToString(row["COLUMN_NAME"]);
    string parameter = "";
    if (col.ToLower()!="id")
    {
    parameter= "@" + Convert.ToString(row["COLUMN_NAME"]);
    cols.Add(col);
    parameters.Add(parameter);
    }
    //parameters.Add(parameter)放外面加上一個NULL,所以會多出一個逗號
    // parameters.Add(parameter);

    }

    sb.AppendLine("string sql = \"insert into " + tableName + "(" + String.Join(",", cols) + ") output inserted.Id values(" + String.Join(",", parameters) + ")\";");
    sb.AppendLine("object obj= SQLHelper.ExecuteScalar(sql");

    foreach (DataRow row in dt.Rows)
    {
    string col = Convert.ToString(row["COLUMN_NAME"]);
    if (col.ToLower() != "id")
    {
    sb.AppendLine(",new SqlParameter(\"" + col + "\",model." + col + ")");
    }

    }
    sb.AppendLine(");");
    sb.AppendLine("return Convert.ToInt32(obj);");
    sb.AppendLine("}");
    //Delete方法

    sb.AppendLine(" public int Delete(int id)");
    sb.AppendLine("{");
    sb.AppendLine(" string sql = \"delete from " + tableName + " where Id=@Id\";");
    sb.AppendLine("return SQLHelper.ExecuteNonQuery(sql,new SqlParameter(\"Id\",id));");
    sb.AppendLine("}");

    //Update方法
    sb.AppendLine("public int Update("+tableName+" model)");
    sb.AppendLine("{");
    string[] uParams1=(from col in cols select col+"=@"+col).ToArray();

    sb.AppendLine(" string sql = \"update "+tableName+" set "+String.Join(",",uParams1)+" where Id=@Id\";");

    string[] uParams2 = (from col in cols select "new SqlParameter(\"" + col + "\",model." + col + ")").ToArray();
    sb.AppendLine(" return SQLHelper.ExecuteNonQuery(sql, " + String.Join(",", uParams2) + " ,new SqlParameter(\"Id\",model.Id));");
    sb.AppendLine("}");

    //GetId方法
    sb.AppendLine(" public "+tableName+" Get(int id)");
    sb.AppendLine("{");
    sb.AppendLine("string sql=\"select * from "+tableName+" where Id=@Id\";");
    sb.AppendLine(" DataTable dt=SQLHelper.ExecuteDataTable(sql,new SqlParameter(\"Id\",id));");
    sb.AppendLine("if (dt.Rows.Count<=0)");
    sb.AppendLine("{");
    sb.AppendLine(" return null;");
    sb.AppendLine("}");
    sb.AppendLine(" else if (dt.Rows.Count==1)");
    sb.AppendLine("{");
    sb.AppendLine(""+tableName+" model1 = new "+tableName+"();");
    foreach (DataRow row in dt.Rows)
    {
    string col = Convert.ToString(row["COLUMN_NAME"]);
    string dataType = Convert.ToString(row["data_TYPe"]);
    sb.AppendLine("model1." + col + " = Convert." + Get(GetType(dataType).ToString()) + "(dt.Rows[0][\"" + col + "\"]);");

    }
    sb.AppendLine("return model1;");
    sb.AppendLine("}");
    sb.AppendLine("else");
    sb.AppendLine("{");
    sb.AppendLine(" throw new Exception(\"數據庫中有兩條及以上重復數據\");");
    sb.AppendLine("}");
    sb.AppendLine("}");

    //IEnumerable()方法
    sb.AppendLine(" public IEnumerable<"+tableName+"> GetAll()");
    sb.AppendLine("{");
    sb.AppendLine(" string sql = \"select * from "+tableName+"\";");
    sb.AppendLine("DataTable dt = SQLHelper.ExecuteDataTable(sql);");
    sb.AppendLine(" List<"+tableName+"> list = new List<"+tableName+">();");
    sb.AppendLine(" foreach (DataRow row in dt.Rows)");
    sb.AppendLine("{");
    sb.AppendLine("" + tableName + " model = new " + tableName + "();");
    foreach (DataRow row in dt.Rows)
    {
    string col = Convert.ToString(row["COLUMN_NAME"]);
    string dataType = Convert.ToString(row["data_TYPE"]);
    sb.AppendLine("model." + col + " = Convert." + Get(GetType(dataType).ToString()) + "(row[\"" + col + "\"]);");

    }
    sb.AppendLine(" list.Add(model);");
    sb.AppendLine("}");
    sb.AppendLine("return list;");
    sb.AppendLine("}");
    sb.AppendLine("}");
    sb.AppendLine("}");
    File.WriteAllText(@"d:\"+tableName+"DAL.cs",sb.ToString());


    }
    /// <summary>
    /// 數據庫類型轉換為C#類型
    /// </summary>
    /// <param name="dataType"></param>
    /// <returns></returns>
    private static Type GetType(string dataType)
    {
    switch (dataType.ToLower())
    {
    case "nvarchar":
    case "varchar":
    case "nchar":
    case "char":
    return typeof(string);
    case "int" :
    return typeof(int);
    case "bigint":
    return typeof(long);
    case "bit":
    return typeof(bool);
    case "datetime":
    return typeof(DateTime);
    default:
    return typeof(object);
    }

    }

    private static string Get(string dataType)
    {

    switch (dataType.ToLower())
    {
    case "system.string":
    return "ToString";
    case "system.int32":
    return "ToInt32";
    case "system.int64":
    return "ToInt64";
    case "system.datetime":
    return "ToDateTime";
    case "system.boolean":
    return "ToBoolean";

    default:
    throw new Exception("找不到匹配的數據類型");

    }
    }
    private static void CreatModel(string tableName, DataTable dt)
    {
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("using System;");
    sb.AppendLine("using System.Collections.Generic;");
    sb.AppendLine("using System.Linq;");
    sb.AppendLine("using System.Text;");
    sb.AppendLine("namespace 三層架構Demo.Model");
    sb.AppendLine("{");
    sb.AppendLine("");
    sb.AppendLine("class " + tableName);
    sb.AppendLine("{");

    foreach (DataRow row in dt.Rows)
    {
    string dataType = Convert.ToString(row["DATA_TYPE"]);

    string columnName = Convert.ToString(row["COLUMN_NAME"]);

    sb.AppendLine("public " + GetType(dataType) + " " + columnName + " { get;set;}");
    }
    sb.AppendLine("}");
    sb.AppendLine("}");
    File.WriteAllText(@"d:\" + tableName + ".cs", sb.ToString());
    //MessageBox.Show(sb.ToString());

    }

    private static void CreatBLL(string tableName, DataTable dt)
    {
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("using System;");
    sb.AppendLine("using System.Collections.Generic;");
    sb.AppendLine("using System.Linq;");
    sb.AppendLine("using System.Text;");
    sb.AppendLine("using 三層架構Demo.Model;");
    sb.AppendLine("using 三層架構Demo.DAL;");
    sb.AppendLine("using System.Data.SqlClient;");
    sb.AppendLine("using System.Data;");
    sb.AppendLine("namespace 三層架構Demo.BLL");
    sb.AppendLine("{");
    sb.AppendLine("class " + tableName+"BLL");
    sb.AppendLine("{");
    sb.AppendLine("public int Addnew("+tableName+" model)");
    sb.AppendLine("{");
    sb.AppendLine(" return new "+tableName+"DAL().Addnew(model);");
    sb.AppendLine("}");
    sb.AppendLine(" public int Delete(int id)");
    sb.AppendLine("{");
    sb.AppendLine(" return new "+tableName+"DAL().Delete(id);");
    sb.AppendLine("}");
    sb.AppendLine(" public int Update("+tableName+" model)");
    sb.AppendLine("{");
    sb.AppendLine(" return new " + tableName + "DAL().Update(model);");
    sb.AppendLine("}");
    sb.AppendLine(" public "+tableName+" Get(int id)");
    sb.AppendLine("{");
    sb.AppendLine(" return new "+tableName+"DAL().Get(id);");
    sb.AppendLine("}");
    sb.AppendLine(" public IEnumerable<"+tableName+"> GetAll()");
    sb.AppendLine("{");
    sb.AppendLine(" return new "+tableName+"DAL().GetAll();");
    sb.AppendLine("}");
    sb.AppendLine("}");
    sb.AppendLine("}");
    File.WriteAllText(@"d:\" + tableName + "BLL.cs", sb.ToString());
    }
    }
    }



    總結:
    忽略了很多限制因素,所以代碼生成器功能不是很完善。隨著要考慮的條件增多,代碼生成器越加復雜。但萬變不離其中,只要有耐心,繼續AppendLine()添加新語句,相信功能會愈加完善。“
    工欲善其事必先利其器“,程序員不僅會用代碼生成器,而且知道其原理才是優秀的程序員。切勿”知其然而不知其所以然“。


    ?

    ?

    ?

    ?

    ?

    ?

    轉載于:https://www.cnblogs.com/OceanEyes/archive/2012/02/16/CodeGenerator.html

    總結

    以上是生活随笔為你收集整理的简单代码生成器原理剖析(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    99操视频| 日本成址在线观看 | 日本久久久久久久久久久 | 黄色精品一区 | 亚州天堂 | 96精品在线 | 欧美最新大片在线看 | 国产原创av在线 | 国内久久久久 | 91视频xxxx| 国产91免费在线 | 国产96在线 | 亚洲成人精品国产 | 91九色视频在线播放 | 久久久久久久毛片 | 国产一区二区三区在线 | 美女国产 | 久草精品电影 | 欧美日韩精品免费观看视频 | 91精品对白一区国产伦 | 亚洲电影黄色 | 色av男人的天堂免费在线 | 亚洲精品大片www | 久久精品视频免费 | 久久日韩精品 | 福利一区二区三区四区 | a久久免费视频 | 亚洲少妇天堂 | www.久久视频 | 正在播放国产一区二区 | 在线观看免费中文字幕 | 麻豆传媒一区二区 | 婷婷亚洲五月色综合 | 色综合久久99 | 成人小视频在线观看免费 | 97夜夜澡人人双人人人喊 | 免费看成人| 免费黄色激情视频 | 亚洲国产电影在线观看 | 91av在线看| 日韩三级视频在线看 | 在线导航福利 | 免费看黄的视频 | 成人在线播放免费观看 | 国产精品av在线 | 午夜一级免费电影 | 激情五月婷婷综合网 | 免费日韩| 色婷婷激情综合 | 中文字幕av在线电影 | 在线欧美中文字幕 | 色综合天天狠狠 | 人人草人人草 | 日韩在线视频免费观看 | av电影免费观看 | 日韩精品在线免费观看 | av网站在线观看免费 | 欧美日韩不卡一区 | 欧美日韩国产精品爽爽 | 深爱激情五月网 | 日韩美女黄色片 | 久久久电影 | 在线免费观看视频一区二区三区 | 激情丁香综合 | 97视频资源 | 日本激情动作片免费看 | 最新av中文字幕 | 亚洲女人天堂成人av在线 | 波多野结衣在线观看一区二区三区 | 奇人奇案qvod | 国产精品av久久久久久无 | 九九综合久久 | 国产vs久久 | 97品白浆高清久久久久久 | 国产精品久久久久久久久久久久午夜 | 天天弄天天操 | 婷婷久久精品 | a成人v在线 | 91精品久久久久久综合五月天 | 视频91在线 | www.69xx | 亚洲日本成人网 | 亚洲免费在线观看视频 | 久久不卡电影 | 国产小视频在线观看免费 | 日韩com| 91大神精品视频在线观看 | 午夜精品一区二区三区免费 | 99精品久久只有精品 | 欧美激情精品久久久久久免费印度 | 国产免费又黄又爽 | 91传媒视频在线观看 | av电影不卡在线 | 91免费观看| 色在线视频 | 九九热精品视频在线观看 | 日韩精品久久中文字幕 | 国产精品久久久久久久久久了 | 久久r精品 | 激情影院在线 | 午夜精品久久久久久久99 | 日韩欧美高清在线观看 | 亚洲视频 在线观看 | 久久夜色网 | 狠狠的日日 | 日韩一区二区三区在线看 | 亚洲精品在线观看视频 | 日韩在线观看 | www黄免费| 成人免费电影 | 日韩精品一区二区免费 | 2020天天干夜夜爽 | 成人性生交大片免费观看网站 | 欧美精品色 | 国产精品二区三区 | 欧美日韩电影在线播放 | 99热播精品| 亚洲v欧美v国产v在线观看 | 中文字幕亚洲情99在线 | 2024av在线播放 | 操操操夜夜操 | 国产黄色免费看 | 成年人视频在线观看免费 | 亚洲精品国产精品99久久 | 精品久久综合 | 伊人激情网 | 天天干中文字幕 | 欧美性生活一级片 | 国产精品久久久久久久久毛片 | 在线精品视频在线观看高清 | 日韩欧美黄色网址 | 国产18精品乱码免费看 | 日韩在线视频播放 | 欧美精品一区在线 | 久久综合九九 | 96久久欧美麻豆网站 | 欧洲性视频 | 欧美欧美 | 日本护士撒尿xxxx18 | 国产精品3区 | 美女网站视频一区 | 婷婷免费在线视频 | 久久99精品久久久久久 | 欧美日韩国产精品一区二区三区 | 波多野结衣视频一区二区 | 国产视频九色蝌蚪 | 热热热热热色 | www.97视频| av免费在线观 | 日本夜夜草视频网站 | 亚洲国产成人在线播放 | 日韩欧美在线观看 | 日韩欧美在线中文字幕 | 亚洲国产偷 | 成人h动漫在线看 | 午夜久久影院 | 日韩在线中文字幕 | 久久av一区二区三区亚洲 | 国产中文字幕视频在线 | 欧美中文字幕久久 | 激情视频在线高清看 | 日本乱视频 | 99国内精品 | 久久综合久色欧美综合狠狠 | 国产一区二区三区四区在线 | 日韩免费视频观看 | 久久 国产一区 | 日韩欧美高清视频在线观看 | 国产网站在线免费观看 | 日韩网站在线免费观看 | 91尤物在线播放 | 综合天天色 | 精品99久久 | 欧美 亚洲 另类 激情 另类 | 麻豆传媒视频在线播放 | 国产主播大尺度精品福利免费 | 麻豆视频www | 啪啪小视频网站 | 伊人久久国产 | 91看片麻豆 | 欧美日韩国产区 | 91女神的呻吟细腰翘臀美女 | 国产最新福利 | av福利在线看 | 国产免费人人看 | 精品国产精品久久 | 色网站免费在线看 | 成人av高清在线 | 在线小视频国产 | 九九免费在线看完整版 | 欧美二区视频 | 97国产大学生情侣白嫩酒店 | 狠狠操电影网 | av中文字幕在线免费观看 | 成人精品国产免费网站 | 丁香激情视频 | 成人91在线观看 | 亚洲成人精品国产 | 免费国产在线视频 | 亚洲成人资源网 | 成人va在线观看 | 色婷婷在线播放 | 深爱五月激情网 | 玖玖精品在线 | 国产精品99久久免费黑人 | 国产一级片免费视频 | 久久久久久高清 | 国产区免费在线 | 国产精品久久久久久久久毛片 | 国产一区二区在线播放 | 国内一区二区视频 | 99视频在线免费 | 日韩欧美69| 综合色中文 | 在线观看黄色免费视频 | 国产乱码精品一区二区蜜臀 | 国产视频欧美视频 | 狠狠狠狠狠狠天天爱 | av资源免费观看 | 六月婷色 | 免费在线观看亚洲视频 | 天天操天天色天天射 | www.天天干 | 国产99久久久久久免费看 | 成人99免费视频 | 国产亚洲精品久久久久久大师 | 人人天天夜夜 | 久久一区二区三区国产精品 | 不卡的av在线| 国产最新视频在线观看 | 久久天天躁| 91人人视频在线观看 | av导航福利 | 久久久国产精品视频 | 日韩在线观看中文字幕 | 一区二区不卡视频在线观看 | 97电影网手机版 | 人人看人人做人人澡 | 亚洲免费视频在线观看 | 丁香五月亚洲综合在线 | 久久精品国产亚洲aⅴ | 天天色天天上天天操 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 日韩在线观看一区二区 | 在线观看视频h | 日韩高清网站 | 少妇bbbb揉bbbb日本 | 在线看黄色的网站 | 色综合天天综合网国产成人网 | 国产黄色片免费 | 最近最新mv字幕免费观看 | 999国内精品永久免费视频 | 黄色片网站大全 | 99久久精品无免国产免费 | 亚洲天堂在线观看完整版 | 国产精品久久久一区二区三区网站 | 黄色一级大片免费看 | 国产精品久久精品国产 | 中文字幕在线观看视频网站 | 亚洲精品在线国产 | 久久精品老司机 | 国产精品99久久久久久久久 | 久久精品香蕉视频 | 国产婷婷 | 国产精品地址 | 久久99久久99精品中文字幕 | 免费看短| 久久综合色综合88 | 国产精品专区h在线观看 | 五月婷婷av在线 | 久久欧美综合 | 91亚洲精品在线 | 日韩中出在线 | 韩国一区二区av | www.黄色片网站 | 激情视频网页 | 国产色黄网站 | 伊人成人精品 | 国产精品成人一区二区三区吃奶 | 国产精品一级在线 | 99九九热只有国产精品 | 欧美在线视频一区二区三区 | 91视频在线观看大全 | 久久午夜色播影院免费高清 | 五月综合色 | 手机在线永久免费观看av片 | 国产黄色大全 | 免费观看91视频 | 四虎影视国产精品免费久久 | 久久久视频在线 | 免费视频a | 一级片观看 | 精品国产免费一区二区三区五区 | 美女久久久久久久久久久 | 精品久久久久久综合日本 | av日韩中文| 久久久网| 在线日韩av | 人人干人人超 | 在线视频 影院 | 在线小视频你懂得 | 日韩,中文字幕 | 一二区电影 | 又粗又长又大又爽又黄少妇毛片 | 成 人 黄 色 视频 免费观看 | 国产视频高清 | 97影视| 国产在线无 | 久久国产精品免费观看 | 麻豆久久久久久久 | 亚洲人视频在线 | 亚洲激情网站免费观看 | 日日射av| 久久久久区 | 黄色网免费 | 天天射天天干天天 | 91最新在线观看 | 国产黄色成人av | 日本韩国中文字幕 | 国产精品爽爽爽 | 日本mv大片欧洲mv大片 | 欧美在线1区 | 亚洲视频电影在线 | 波多野结衣电影久久 | 国产精品综合久久久久 | 天天操天天操天天操天天操天天操 | 五月在线视频 | 在线观看播放av | 在线观看免费黄视频 | 超碰av免费| 精品久久免费看 | 久久免费av电影 | 久久精品网址 | 欧美色操 | 国产黄色一级片在线 | 国产 日韩 欧美 中文 在线播放 | 国产伦精品一区二区三区四区视频 | 亚洲国产激情 | 国产一区二区三区黄 | 亚洲成人免费在线 | 国产亚洲永久域名 | 欧美成人在线网站 | 天天艹天天 | 99精品在线观看视频 | 日韩久久久久久久 | www五月婷婷 | 超碰在线天天 | 天天射天天艹 | 久久综合色一综合色88 | 亚洲国产精品资源 | 91大神免费在线观看 | 欧美 日韩 性 | 国产原创在线视频 | 色综合中文字幕 | 国产男女爽爽爽免费视频 | 91高清在线 | 国产午夜三级一区二区三 | 久久综合九色 | 久久嗨| 伊人热| 国产精品人人做人人爽人人添 | 亚洲在线视频播放 | 又污又黄网站 | 99精品视频免费看 | 国产成人一区二区精品非洲 | 免费v片 | 免费大片av | 99热最新地址 | 久久精品免费播放 | av不卡网站| 国内成人精品2018免费看 | 亚洲精品99久久久久中文字幕 | 久草视频在线免费 | 国产精品成人一区二区 | 国产又粗又猛又黄又爽视频 | 日韩69视频| 久久美女精品 | 国内精品久久久 | 中文字幕色综合网 | 国产精品毛片久久久久久 | 中文字幕资源网 | 精品久久久99| 免费三级在线 | 在线看一区二区 | 天天干,夜夜操 | 在线观看免费国产小视频 | 亚洲精选视频免费看 | 国产精品久久久久高潮 | 色之综合网 | 久久中文欧美 | 亚洲在线不卡 | 少妇bbw揉bbb欧美 | 黄色小视频在线观看免费 | 91麻豆精品 | 久久久国产视频 | 91精品国产福利在线观看 | 国产成人精品女人久久久 | 日韩色中色 | 日本黄色免费网站 | 国产涩图 | 日韩电影中文字幕在线观看 | 中文字幕色在线视频 | 国产成人一二片 | 九九日九九操 | 中文字幕在线观看完整版电影 | 欧美国产91 | 免费在线播放黄色 | 91精品高清| 国产精品成人在线 | 97超碰国产精品女人人人爽 | 天天操夜夜拍 | 国产精品九九久久99视频 | a久久免费视频 | 免费在线观看一区二区三区 | 看av免费网站 | av成人动漫在线观看 | 成人在线播放网站 | 亚洲国产精品成人女人久久 | www.久久婷婷| 免费久久网 | 久久在线视频在线 | 午夜精品视频一区二区三区在线看 | 久久久久一区二区三区 | 伊人五月天婷婷 | 日韩欧美一区二区三区视频 | 国产精品乱码久久 | 免费观看www7722午夜电影 | 黄在线免费观看 | 久久在线精品 | 亚洲精品乱码久久久一二三 | 1区2区3区在线观看 三级动图 | 日韩成人精品一区二区三区 | 欧美一二三视频 | 91成人网在线观看 | 日韩精品一区二区三区电影 | 中文字幕免费国产精品 | 天天干天天干天天 | 国产精品免费小视频 | 青青草视频精品 | 久久久国产精品久久久 | 午夜精品导航 | 91久久久久久久一区二区 | 亚洲黄色免费观看 | 又黄又爽的免费高潮视频 | 综合天堂av久久久久久久 | 日韩不卡高清视频 | 三级小视频在线观看 | 中文字幕国产在线 | 韩国精品在线 | 亚洲精品白浆高清久久久久久 | 久久www免费视频 | 国产成人av一区二区三区在线观看 | 久久久久久蜜桃一区二区 | 欧美成人中文字幕 | 99视频精品免费观看, | 久草青青在线观看 | 日韩欧美精品一区二区三区经典 | 最新久久久| 欧美激情精品久久久久久免费 | 高清av网站| av女优中文字幕在线观看 | 91精品久久久久久久久久久久久 | 国产精品免费不卡 | 97国产在线视频 | 成人在线你懂得 | 9在线观看免费高清完整版在线观看明 | 丁香婷婷激情啪啪 | 婷婷开心久久网 | 97超碰人人澡人人爱学生 | 日本激情视频中文字幕 | 国产精品久久一区二区三区, | 亚洲免费在线播放视频 | 日日夜夜网 | 婷婷亚洲五月 | 久久国产精品久久国产精品 | 亚洲禁18久人片 | 国产区欧美 | 黄色三级网站 | 波多野结衣电影一区 | 高清不卡毛片 | 高清久久久 | 亚洲激精日韩激精欧美精品 | 黄色高清视频在线观看 | 九九九热精品免费视频观看 | 国产美女主播精品一区二区三区 | 亚洲国产高清在线观看视频 | 欧美日韩aa | 97av视频在线| 久久视频在线 | 国产欧美日韩视频 | 国产高清精品在线观看 | 黄色影院在线观看 | 在线看片中文字幕 | 午夜体验区 | 美女久久久久 | 精品国产一区二区三区不卡 | 视频在线播放国产 | 国产成人精品久久二区二区 | 久久精品国产亚洲精品 | 色综合久久久久综合体桃花网 | 免费精品在线观看 | 精品美女在线视频 | 涩av在线| 中文字幕第 | 色噜噜日韩精品一区二区三区视频 | 精品国自产在线观看 | 亚洲美女久久 | 国产伦理久久精品久久久久_ | 91视频大全 | 六月丁香婷婷久久 | 成人黄色在线 | av免费播放 | 天天夜夜狠狠操 | av在线等| 精品一二三四在线 | 中文电影网 | 一级α片 | 92国产精品久久久久首页 | 综合视频在线 | 国产精品四虎 | 狠狠干2018 | 色大片免费看 | av中文字幕网站 | 免费看一级黄色 | 不卡视频一区二区三区 | 色.www| 久久久久成人精品亚洲国产 | 日韩免费看片 | 九九热免费观看 | 99r在线观看 | 中文字幕2021 | 亚洲精品欧美专区 | 久久在线 | 热久久国产精品 | 国产自产高清不卡 | 日日干综合 | 天堂av影院| 亚洲欧美日韩国产 | 亚洲欧美日韩精品一区二区 | 国产中文字幕一区二区三区 | 一区二区av | 91日韩在线视频 | 久久久久久高潮国产精品视 | 午夜久久视频 | 毛片一区二区 | 久久精品亚洲一区二区三区观看模式 | 国产一区在线视频 | 操夜夜操 | 国产亚洲在线观看 | 久久国产乱 | 国产一区二区三区视频在线 | 国产99在线免费 | 国产精品爽爽爽 | 国产直播av | 成年人黄色大片在线 | 日韩欧美在线高清 | 97免费在线视频 | 国产精品一区二区av日韩在线 | 东方av在线免费观看 | 狠狠色狠狠色综合系列 | 亚洲精品www久久久久久 | 日韩欧美在线国产 | 中文字幕之中文字幕 | 国产精品一区二区美女视频免费看 | 一级全黄毛片 | 在线三级播放 | 中文字幕高清在线 | 国产精品成人久久久久久久 | 狠狠插天天干 | 精品天堂av | 粉嫩av一区二区三区免费 | 国产精品wwwwww | 国产高清成人在线 | 韩国在线一区二区 | 国产高清av免费在线观看 | 黄色亚洲精品 | 四虎精品成人免费网站 | 一区二区三区免费播放 | 黄色字幕网 | 国产精品白浆视频 | 日韩有码专区 | 久久国产片 | www黄在线| 国产不卡在线观看 | 久久最新 | 久久免费一 | 日韩三级久久 | 久久99精品久久只有精品 | 懂色av一区二区在线播放 | 99国产精品久久久久久久久久 | 久久国产露脸精品国产 | 成人综合婷婷国产精品久久免费 | 人人藻人人澡人人爽 | 日韩一区二区三区观看 | h视频在线看 | 色综合久久中文字幕综合网 | 亚洲精品中文在线资源 | 欧美精品久久天天躁 | 日韩av网址在线 | 久久精品999 | 国产麻豆视频 | 伊人五月天.com | 亚洲色图 校园春色 | 亚洲精品国产拍在线 | 在线观看第一页 | 国产精品免费小视频 | 亚洲欧美日韩国产一区二区三区 | 久久久久影视 | 91精品在线观看视频 | 日韩剧 | 免费高清看电视网站 | 99久久这里有精品 | 香蕉在线视频观看 | 九九热只有这里有精品 | 国产精品99久久久久久久久久久久 | 免费观看久久久 | 欧美久久久一区二区三区 | 婷婷日韩 | 亚洲专区视频在线观看 | 久久草视频 | 99福利片 | 在线观看一区 | 免费人成在线观看网站 | 免费看国产一级片 | 国产一级精品在线观看 | 欧美日韩国产精品爽爽 | 一区二区三区四区久久 | 粉嫩aⅴ一区二区三区 | 中文字幕在线视频一区二区 | 日韩美女高潮 | 色a网| 免费日韩一区二区三区 | 久久伊人国产精品 | 精品综合久久 | 欧美国产日韩一区 | 香蕉蜜桃视频 | 99精品免费久久久久久久久日本 | 婷婷色中文 | 国产亚洲免费观看 | 中文字幕有码在线观看 | 美腿丝袜av | 免费视频一级片 | 六月激情久久 | 国产美腿白丝袜足在线av | 91热精品| 亚洲午夜久久久久 | 丁香六月天婷婷 | 欧美精品久久久久久 | 国产日韩视频在线观看 | 亚洲美女精品区人人人人 | 高清av中文在线字幕观看1 | 中文字幕在线国产精品 | 国产在线观看h | 午夜国产成人 | 91av网站在线观看 | 亚洲国产精久久久久久久 | 久久99这里只有精品 | 五月婷婷视频在线 | www四虎影院 | 99热这里只有精品8 久久综合毛片 | 黄色av电影在线观看 | 伊人久久精品久久亚洲一区 | 一级黄色片网站 | 91免费在线| 午夜av在线免费 | 国产精品18久久久久久久久久久久 | 国产免码va在线观看免费 | 一区久久久 | 欧美一级小视频 | 一二三区高清 | 911香蕉视频 | 成人黄色小说在线观看 | 久久99精品波多结衣一区 | 日韩高清精品一区二区 | 在线国产一区二区三区 | 色婷婷精品 | 大胆欧美gogo免费视频一二区 | 久久99精品视频 | 香蕉看片 | 亚洲精品乱码久久久久久蜜桃91 | 亚洲人成影院在线 | 国产精品久久久久久久免费观看 | 国产剧在线观看片 | 超碰97在线资源 | 色婷婷天天干 | 亚洲精品乱码久久久久久蜜桃不爽 | 精品视频专区 | 国产精品1024 | 天堂av在线网站 | 国产精品久久亚洲 | 国产一级视频在线免费观看 | 国产欧美精品xxxx另类 | 成人在线免费小视频 | 久久天天躁狠狠躁亚洲综合公司 | 一区二区三区精品在线 | 99久久免费看 | 久久免费视频观看 | 欧美精彩视频在线观看 | 一区av在线播放 | 国产视频在线免费 | 国产精品中文字幕在线 | 婷婷久久综合九色综合 | 一区二区av| 日韩色在线 | 91麻豆国产| 91香蕉视频| 青草视频在线免费 | 一区电影 | 欧美激情xxxx | 国产精品久久久久久一区二区 | 日本一区二区三区视频在线播放 | 91综合视频在线观看 | 天天综合成人网 | 国产精品精品国产 | 91av观看 | 亚洲 中文 在线 精品 | 精品国偷自产在线 | 欧美日韩免费观看一区=区三区 | 久久久久久在线观看 | 国产日韩高清在线 | 999久久久免费视频 午夜国产在线观看 | 中文字幕高清有码 | 日本免费久久高清视频 | 国产中文字幕在线免费观看 | 在线 高清 中文字幕 | 综合久久久久 | 狠狠地日 | 在线视频 你懂得 | 成人动漫视频在线 | 97国产情侣爱久久免费观看 | 天堂中文在线视频 | 免费视频91 | 日日爱影视 | 日日爱网址 | 男女视频国产 | 亚洲 欧美日韩 国产 中文 | 亚洲高清视频在线观看免费 | 一级欧美日韩 | 免费成人黄色av | 操老逼免费视频 | 成人精品亚洲 | 中文字幕 国产精品 | 精品国产伦一区二区三区观看体验 | 中文字幕视频观看 | 精品一区精品二区 | 在线看欧美| 久久综合给合久久狠狠色 | 日韩动漫免费观看高清完整版在线观看 | 九九久久视频 | 黄色片网站大全 | 午夜 久久 tv | 日本成人免费在线观看 | 91视视频在线直接观看在线看网页在线看 | 日韩欧美一区二区三区免费观看 | 狠狠色丁香婷综合久久 | 国产精品精品国产 | 久久综合加勒比 | 天天色官网 | 探花视频在线版播放免费观看 | 中文伊人 | 婷婷久久久久 | av福利在线 | 欧美午夜寂寞影院 | 国产拍揄自揄精品视频麻豆 | 成在人线av | 日韩精品极品视频 | 91亚洲永久精品 | 精品视频久久久 | 成人欧美日韩国产 | 日本成址在线观看 | 亚洲永久字幕 | 高清免费av在线 | 人人干干人人 | 一区二区三区视频 | 久久久精品免费观看 | 欧美精品乱码久久久久 | 九草视频在线 | 欧美日韩视频精品 | 中文字幕色播 | 中文字幕欲求不满 | 亚洲成成品网站 | 国产又黄又猛又粗 | 成片免费观看视频大全 | 欧美午夜a | 色婷婷免费 | 亚洲干视频在线观看 | 黄色片免费在线 | 国产一区二区不卡视频 | 久久精品999 | 国产很黄很色的视频 | 色婷婷在线视频 | 美女网站在线免费观看 | 欧美久久久久久久久 | 99热这里有 | 久久不卡电影 | 日韩美女黄色片 | 日本激情中文字幕 | 久久调教视频 | 99九九热只有国产精品 | 免费一区在线 | 中文字幕专区高清在线观看 | 97电院网手机版 | 99久国产| 美女视频a美女大全免费下载蜜臀 | 天天爽天天爽夜夜爽 | 中文在线中文资源 | 在线观看黄色的网站 | 国产视频网站在线观看 | www99久久| 夜夜躁狠狠躁日日躁视频黑人 | 国产视频资源在线观看 | 国产精品日韩欧美一区二区 | 久久久资源 | 久草在线免费资源站 | 午夜视频欧美 | 日韩欧美在线视频一区二区 | 国产黄影院色大全免费 | 亚洲黄色免费在线 | www久草| 91天堂影院 | 国内精品视频久久 | 国产一级性生活视频 | 久久伊人精品一区二区三区 | 久草香蕉在线 | 亚洲综合激情网 | 麻豆免费看片 | 在线免费看黄网站 | 能在线看的av | 黄色动态图xx | 午夜久久成人 | 成人精品一区二区三区中文字幕 | 日本成址在线观看 | 久99久在线 | 在线观看va | 成人91视频| 国产成人在线播放 | 亚洲一区二区精品视频 | 在线视频精品播放 | 免费看一级特黄a大片 | 国产免费人成xvideos视频 | 夜色资源站国产www在线视频 | 国产精品一区二区三区在线播放 | 丁香婷婷激情国产高清秒播 | 国产a国产 | 九九色综合 | 成人aaa毛片| 午夜久草 | 久草在线欧美 | 91久久精品一区二区三区 | 在线你懂的视频 | 啪啪肉肉污av国网站 | 91麻豆产精品久久久久久 | 久久精品国产免费 | 美女黄久久 | 久久伊人八月婷婷综合激情 | 中文字幕电影网 | 最新精品视频在线 | 青青色影院 | 狠狠色丁香久久婷婷综合_中 | 91久久国产露脸精品国产闺蜜 | 国产精品成久久久久三级 | 五月天堂网| 福利视频导航网址 | 五月亚洲综合 | 精品欧美日韩 | 久久免费激情视频 | 天天操天天干天天爱 | 中文字幕永久 | 中文字幕一区av | 91成人网在线播放 | 999热视频 | av解说在线观看 | 日日婷婷夜日日天干 | 亚洲国产日韩一区 | 久久午夜免费观看 | 免费试看一区 | 亚洲区二区 | 人人澡人人舔 | 国产精品 中文在线 | 91精品国 | 国产一级性生活 | 久草电影在线观看 | 99久久久久免费精品国产 | 成人国产精品免费观看 | 欧美黄色特级片 | 欧美日韩精品在线视频 | 一区二区三区免费播放 | 99色婷婷 | 黄色大片免费播放 | 97精产国品一二三产区在线 | 成年人在线电影 | 日韩欧美高清不卡 | 国产黄色网 | 午夜久久成人 | 视频在线观看91 | 日韩天天综合 | 久久er99热精品一区二区 | 精品国产欧美一区二区 | 免费在线播放黄色 | 亚洲三级av | 日韩欧美精品在线视频 | 国精产品999国精产品岳 | 国产二区视频在线 | 久久爱www. | 免费在线观看成人av | 日韩av一区在线观看 | av免费在线播放 | 福利视频网站 | 日韩午夜小视频 | 97电影网手机版 | 欧美污污网站 | 在线岛国av| 欧美三人交 | 九九九在线观看视频 | 日韩在线观看影院 | 久久久资源 | 国产精品中文久久久久久久 | 亚洲日本va午夜在线电影 | 免费在线黄色av | 欧美 日韩 国产 中文字幕 | 欧美a视频在线观看 | 天无日天天操天天干 | 精品一区二区三区四区在线 | 欧美精品久久久久久久久老牛影院 | 深爱婷婷 | 国产专区欧美专区 | 亚洲精品视频久久 | 日韩电影在线观看一区 | 亚洲精品久久久久中文字幕m男 | 亚洲综合在线五月 | 天堂av最新网址 | 麻豆久久精品 | 亚洲精品午夜一区人人爽 | 亚洲h色精品 | 永久免费毛片在线观看 | 91久久黄色 | 99久热在线精品视频成人一区 | 制服丝袜在线91 | 91av在线视频播放 | 亚洲一区二区三区miaa149 | 欧美日韩成人一区 | 久久色视频 | 99久久久久久久久久 | 国语久久| 天天操夜夜操国产精品 | 日韩高清 一区 | 成人在线观看影院 | www视频免费在线观看 | av一级一片 | 亚洲欧洲一级 | av在线等 | 久久av免费电影 | 免费视频一区 | 97国产小视频 | 超级av在线 | 激情综合五月婷婷 | 国产精品一区二区电影 | 国产精品麻豆欧美日韩ww | 国产又粗又猛又黄又爽视频 | 爱av在线网 | 在线看黄网站 | www国产亚洲精品久久麻豆 | 99热亚洲精品 | 伊人导航 | 在线亚洲成人 | 九九热国产 | 国产精品原创视频 | 正在播放国产一区 | 在线观看中文字幕dvd播放 | 久久激情视频 久久 | 亚洲第二色| 免费av网站在线看 | 91高清免费观看 | 久久精品视频在线看 | 欧美色图狠狠干 | 亚洲精品国产精品国自产观看浪潮 | 永久免费的啪啪网站免费观看浪潮 | 亚洲天堂网在线视频 | 国产不卡视频在线播放 | 欧美在一区 | 国产原创在线 | 精品在线免费观看 | 国产一区网址 | 亚洲精品乱码久久久久久久久久 | 国产精品成人久久久 | 精品久久精品久久 | 在线一区观看 | 欧洲亚洲精品 | 天天综合色网 | 精品伊人久久久 | 99久久毛片 | 91天堂素人约啪 | 黄色在线观看免费 | 国产糖心vlog在线观看 | 日韩啪啪小视频 | 成人动漫精品一区二区 | 97在线视 | 99精品视频在线观看视频 |