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

唐山做网站公司费用湛江网站营销

唐山做网站公司费用,湛江网站营销,潍坊高新区建设局门户网站,大连软件培训介绍 Mybatis 是一款优秀的持久层框架#xff0c;用于简化 JDBC 的开发 MyBatis中文网 Mybatis 入门 快速入门 步骤 创建 SpringBoot 工程、数据库表 user、实体类 User引入 Mybatis 相关依赖#xff0c;配置 Mybatis#xff08;数据库连接信息#xff09;编写 SQL 语… 介绍 Mybatis 是一款优秀的持久层框架用于简化 JDBC 的开发 MyBatis中文网 Mybatis 入门 快速入门 步骤 创建 SpringBoot 工程、数据库表 user、实体类 User引入 Mybatis 相关依赖配置 Mybatis数据库连接信息编写 SQL 语句注解/XML 项目创建 创建的项目的 pom.xml 如下 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.1.4/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.example/groupIdartifactIddemoMybatis/artifactIdversion0.0.1-SNAPSHOT/versionnamedemoMybatis/namedescriptiondemoMybatis/descriptionpropertiesjava.version17/java.version/propertiesdependenciesdependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion3.0.2/version/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter-test/artifactIdversion3.0.2/versionscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project引入了这三个依赖 数据库表格创建 代码如下 CREATE DATABASE mybatis; USE mybatis;CREATE TABLE USER(id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT ID,NAME VARCHAR(100) COMMENT 姓名,age TINYINT UNSIGNED COMMENT 年龄,gender TINYINT UNSIGNED COMMENT 性别, 1:男, 2:女,phone VARCHAR(11) COMMENT 手机号 ) COMMENT 用户表;INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,白眉鹰王,55,1,18800000000); INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,金毛狮王,45,1,18800000001); INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,青翼蝠王,38,1,18800000002); INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,紫衫龙王,42,2,18800000003); INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,光明左使,37,1,18800000004); INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,光明右使,48,1,18800000005);创建 User 实体类 实体类 User 中的属性与数据库表格中的字段是一一对应的在实体类属性定义的时候使用相关数据类型的包装类型再创建有参无参构造、getter/setter 方法以及 toString 方法 package com.example.pojo;public class User {/*实体类 User 中的属性与数据库表格中的字段是一一对应的在实体类属性定义的时候使用相关数据类型的包装类型*/private Integer id;private String name;private Short age;private Short gender;//生成getter和setter方法和toString方法以及有参无参构造public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public Short getAge() {return age;}public void setAge(Short age) {this.age age;}public Short getGender() {return gender;}public void setGender(Short gender) {this.gender gender;}Overridepublic String toString() {return User{ id id , name name \ , age age , gender gender };}public User() {}public User(Integer id, String name, Short age, Short gender) {this.id id;this.name name;this.age age;this.gender gender;} }配置 Mybatis #驱动类名称 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver #数据库连接的url spring.datasource.urljdbc:mysql://localhost:3306/mybatis #连接数据库的用户名 spring.datasource.usernameroot #连接数据库的密码 spring.datasource.password123456数据库的名字为 mybatis数据库的密码为 123456要依据具体情况修改 编写 SQL 语句这里使用注解的方式 创建接口 代码如下 package com.example.mapper;import com.example.pojo.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;import java.util.List;Mapper //在运行时会自动生成该接口的实现类对象代理对象并将该对象交给IOC容器管理 public interface UserMapper {//查询全部用户信息//全部用户信息使用list集合Select(select * from user)public ListUser list(); }代码测试 在这个测试类中编写如下代码 package com.example;import com.example.mapper.UserMapper; import com.example.pojo.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;import java.util.List;/*** 这是SpringBoot工程自带的一个测试类*/SpringBootTest//SpringBoot整合单元测试的注解 class DemoMybatisApplicationTests {/*写一个测试方法来进行测试查询所有用户的信息来调用UserMapper接口中的list方法UserMapper是一个接口不能直接new接口但是在Usermapper接口上加了Mapper注解会自动生成代理对象*///所以直接声明一个UserMapper的对象再加上注解进行依赖注入Autowiredprivate UserMapper userMapper;Testpublic void testListUser(){//直接调用方法进行查询ListUser userList userMapper.list();//进行遍历输出userList.stream().forEach(user -{System.out.println(user);});}}结果如下则成功 在 IDE 写的 sql 语句如果表名爆红 然后右侧就会加载出相关数据库的表格信息 JDBC 介绍 JDBC 是使用 Java 语言操作关系型数据库的一套 API JDBC全称Java DataBase Connectivityjava数据库连接是一种用于执行SQL语句的Java API可以为多种关系数据库提供统一访问。它是由一组用java语言编写的类和接口组成是sun公司制定的一套接口interface接口都有调用者和实现者。JDBC为程序开发人员提供了一组用于实现对数据库访问的JDBCAPI并支持SQL语言是sun开发的一套数据库访问编程接口是一种SQL级的API。JDBC的作用在于降低了程序的耦合度提高了程序的扩展力。它通过驱动程序管理类DriverManager这个JDBC的管理类作用于用户和驱动程序之间提供了一种基准据此可以构建更高级的工具和接口使数据库开发人员能够编写数据库应用程序。利用JDBC可以将JAVA代码连接到多种数据库如oracle、DB2、SQLServer、MYSQL等从而实现对数据库中的数据操作的目的。同时JDBC具有很好的跨平台特性使用JDBC编写的数据库应用程序可以在任何支持java的平台上运行而不必在不同的平台上编写不同的应用程序。 Java、MySQL、JDBC、MyBatis和MyBatis Plus之间的关系、联系和区别如下 JavaJava是一种广泛使用的编程语言它最初是由Sun Microsystems开发现在由Oracle公司进行维护和发布。Java提供了一种平台无关的编程方式使得开发人员可以编写一次代码然后在任何支持Java的平台上运行。MySQLMySQL是一种流行的开源关系数据库管理系统RDBMS它使用SQL结构化查询语言作为其查询语言。MySQL具有高性能、可靠性和易于使用的特点被广泛用于各种应用程序和网站。JDBCJava Database ConnectivityJDBC是Java提供的一套用于和数据库对接的API。它提供了一种标准的接口使得Java应用程序可以通过JDBC连接到各种关系数据库。MyBatis框架则是在此基础上进行了进一步的封装和简化。MyBatisMyBatis是一个流行的Java持久层框架它封装了JDBC使得开发人员可以更加方便地与数据库进行交互。MyBatis通过配置文件来定义SQL语句这使得SQL语句可以与Java代码分离更易于维护和修改。MyBatis PlusMyBatis Plus是MyBatis的增强工具它在MyBatis的基础上提供了更多的功能和简化的操作。MyBatis Plus支持MyBatis的所有特性并提供了基本的CRUD创建、读取、更新、删除功能不需要开发人员自己编写SQL语句。此外MyBatis Plus还引入了条件构造器Querydsl可以方便地构造复杂的查询条件。 总结起来Java是编程语言MySQL是数据库管理系统JDBC是Java和MySQL之间的连接桥梁而MyBatis和MyBatis Plus是在JDBC基础上进一步封装和简化的持久层框架。 JDBC 的代码使用就不需要详细掌握了 数据库连接池 数据库连接池 数据库连接池是一个容器负责分配、管理数据库连接允许应用程序重复使用一个现有的数据库连接而不是再重新建立一个释放空闲时间超过最大空闲时间的连接来避免因为没有释放连接而引起的数据库连接遗漏 优势 资源重用提升系统响应速度避免数据库连接遗漏 数据库连接池是计算机技术中的一种特殊池用于存储和复用数据库连接。我们可以将其类比为现实生活中的游泳池。 在日常生活中如果我们想要游泳通常需要去游泳池。游泳池为我们提供了方便的游泳场所并节省了我们每一次都必须挖掘一个新的泳池的费用和时间。池中的水可以被不同的人共享高效地利用了水资源。 类似地当我们需要与数据库进行交互时我们通常需要创建数据库连接。创建数据库连接需要消耗计算资源和时间而且如果每个请求都创建新的数据库连接系统性能会大大降低。这时数据库连接池就发挥作用了。 数据库连接池就像一个有多个泳道的游泳池。每个泳道都像一个数据库连接而泳道中的水就像数据库连接的资源。这些资源被多个用户共享而不是每个用户都创建新的资源。这样我们就可以更高效地利用系统资源提高系统性能。 具体来说当我们需要与数据库交互时我们从数据库连接池中获取一个可用的数据库连接就像从泳道中借一个游泳圈一样。用完后我们把这个连接放回连接池中就像把游泳圈还回泳道一样。如果连接池中没有可用的连接那么将会自动创建新的连接。就像如果所有的游泳圈都被借走了那么游泳池管理员会再放入一些新的游泳圈。 同时数据库连接池还可以对连接进行管理和监控。比如当一个连接被使用时连接池可以记录这个连接的创建时间、最近一次使用时间等信息并在需要时自动关闭那些长时间未被使用的连接释放系统资源。就像游泳池管理员会根据泳道的占用情况来关闭那些没有人使用的泳道节省水资源。 因此数据库连接池通过复用数据库连接、管理和监控连接等作用提高了系统性能和资源利用率。 在数据库连接池中如果所有的连接都被占满了有以下几种解决办法 等待如果所有的连接都在被高频率地使用但是并没有空闲连接那么你可以选择等待直到有连接空出来。创建新的连接池如果你需要更多的连接你可以创建新的连接池。优化连接使用在连接池中如果连接被占满了也可以通过优化连接使用来进行解决。比如可以对连接进行分类对不同类型的连接进行管理和复用以更高效地利用系统资源。 因此当游泳池中的泳道被占满了时我们可以选择等待、提高泳姿或者寻找其他泳池。而在数据库连接池中我们可以选择等待、创建新的连接池或者优化连接使用。 不同的编程语言和数据库系统有不同的默认连接池。以下是一些常见的默认连接池 Java语言中使用JDBC连接数据库时如果没有指定连接池则默认使用的是“c3p0”或者“HikariCP”连接池。其中HikariCP在Spring Boot 2.x版本之后被选为默认的数据库连接池。MySQL的默认连接池是“c3p0”可以通过在配置文件中指定“default-pool-size”参数来设置默认的最大连接数。PostgreSQL的默认连接池是“yadcf”也可以使用第三方的连接池如“pgbouncer”来作为默认的连接池。Oracle数据库的默认连接池是“Generic”类型的可以通过在配置文件中指定“MAX_POOL_SIZE”参数来设置默认的最大连接数。 需要注意的是默认连接池可能因不同的版本和配置而有所不同如果需要使用自定义的连接池则需要在配置中进行相应的设置和指定。 切换数据库连接池 Lombok 引入 Lombok 依赖才能使用 Lombo 注解 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency这个时候在原先的实体类中注释掉 setter、getter、toString、构造方法使用 Data 注解即可运行结果依旧正确 Mybatis 基础操作 准备工作 准备数据库 emp创建一个新的 SpringBoot 工程选择引入对应的起步依赖aapplication.properties 引入数据库连接信息创建对应的实体类 Emp准备 Mapper 接口 EmpMapper 创建数据库表格 -- 部门管理 create table dept(id int unsigned primary key auto_increment comment 主键ID,name varchar(10) not null unique comment 部门名称,create_time datetime not null comment 创建时间,update_time datetime not null comment 修改时间 ) comment 部门表;insert into dept (id, name, create_time, update_time) values(1,学工部,now(),now()),(2,教研部,now(),now()),(3,咨询部,now(),now()), (4,就业部,now(),now()),(5,人事部,now(),now());-- 员工管理 create table emp (id int unsigned primary key auto_increment comment ID,username varchar(20) not null unique comment 用户名,password varchar(32) default 123456 comment 密码,name varchar(10) not null comment 姓名,gender tinyint unsigned not null comment 性别, 说明: 1 男, 2 女,image varchar(300) comment 图像,job tinyint unsigned comment 职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管, 5 咨询师,entrydate date comment 入职时间,dept_id int unsigned comment 部门ID,create_time datetime not null comment 创建时间,update_time datetime not null comment 修改时间 ) comment 员工表;INSERT INTO emp(id, username, password, name, gender, image, job, entrydate,dept_id, create_time, update_time) VALUES(1,jinyong,123456,金庸,1,1.jpg,4,2000-01-01,2,now(),now()),(2,zhangwuji,123456,张无忌,1,2.jpg,2,2015-01-01,2,now(),now()),(3,yangxiao,123456,杨逍,1,3.jpg,2,2008-05-01,2,now(),now()),(4,weiyixiao,123456,韦一笑,1,4.jpg,2,2007-01-01,2,now(),now()),(5,changyuchun,123456,常遇春,1,5.jpg,2,2012-12-05,2,now(),now()),(6,xiaozhao,123456,小昭,2,6.jpg,3,2013-09-05,1,now(),now()),(7,jixiaofu,123456,纪晓芙,2,7.jpg,1,2005-08-01,1,now(),now()),(8,zhouzhiruo,123456,周芷若,2,8.jpg,1,2014-11-09,1,now(),now()),(9,dingminjun,123456,丁敏君,2,9.jpg,1,2011-03-11,1,now(),now()),(10,zhaomin,123456,赵敏,2,10.jpg,1,2013-09-05,1,now(),now()),(11,luzhangke,123456,鹿杖客,1,11.jpg,5,2007-02-01,3,now(),now()),(12,hebiweng,123456,鹤笔翁,1,12.jpg,5,2008-08-18,3,now(),now()),(13,fangdongbai,123456,方东白,1,13.jpg,5,2012-11-01,3,now(),now()),(14,zhangsanfeng,123456,张三丰,1,14.jpg,2,2002-08-01,2,now(),now()),(15,yulianzhou,123456,俞莲舟,1,15.jpg,2,2011-05-01,2,now(),now()),(16,songyuanqiao,123456,宋远桥,1,16.jpg,2,2010-01-01,2,now(),now()),(17,chenyouliang,123456,陈友谅,1,17.jpg,NULL,2015-03-21,NULL,now(),now());创建项目、导入依赖 引入数据库链接信息 创建对应的实体类 Emp 使用驼峰命名法 准备 Mappe 接口 删除 编写 SQ 语句 在这里Delete后面写的是“delete from emp where id #{id}”而不是“delete from emp where id 7 ” 因为如果是后者就会静态的只能删除 i 为 7 的数据前者可以 在方法参数中设置传入的参数的值在 sq 语中#{id}来接收传进来的 i 值 如果将这里的 void 变为 int最后测试的时候返回的是这个 sq 语影响的行数 代码测试 Testpublic void testDeleteById(){empMapper.deleteById(17);}添加 编写 SQ 语句 Insert(insert into emp(username,name,gender,image,job,entrydate,dept_id,create_time,update_time)values(#{username},#{name},#{gender},#{image},#{job},#{entrydate}, #{deptId},#{createTime},#{updateTime}))public void insert(Emp emp);这里同样将 SQ 语设置为动态的只不过在方法的形参列表中传递的不是一个个的参数而是实体类 Emp 的对象 emp在调用方法的时候设置并传入 emp 的相应的参数 代码测试 Testpublic void testInsert(){//构造员工对象Emp emp new Emp();emp.setUsername(zhang);emp.setName(张章);emp.setImage(1.png);emp.setGender((short)1);emp.setJob((short)1);emp.setEntrydate(LocalDate.of(2000,1,1));emp.setCreateTime(LocalDateTime.now());emp.setUpdateTime(LocalDateTime.now());emp.setDeptId(1);//执行新增员工信息操作empMapper.insert(emp);}添加时返回主键 描述在数据添加成功后需要获取插入数据库数据的主键。如添加套餐数据时还需要维护套餐菜品关系表数据。 如果直接输出获取主键会发现返回的是 Null 而无法获得主键 实现 只需要在insert注解上面加上 options 注即可这里第一个属性表示主键是 id 字段第二个属性表示要获取主键 这时候再添加一次数据发现可以返回主键了 更新 编写 SQ 语句 Update(update emp set username#{username},name#{name},gender#{gender},image#{image}, job#{job},entrydate#{entrydate},dept_id#{deptId},update_time#{updateTime} where id#{id})public void update(Emp emp);代码测试 Testpublic void testUpdate(){//构造员工对象Emp emp new Emp();emp.setId(1);emp.setUsername(haenggg);emp.setName(张g11111章);emp.setImage(121.png);emp.setGender((short)1);emp.setJob((short)1);emp.setEntrydate(LocalDate.of(2000,1,1));emp.setUpdateTime(LocalDateTime.now());emp.setDeptId(1);//执行更新员工信息操作empMapper.update(emp);}查询全部 编写 SQ 语句 代码测试 根据 id 查询 编写 SQ 语句 代码测试 出现的问题以及解决 但是后面的几项查询结果都是 Null解决方案 方案一 方案二 方案三★★★ 条件查询 编写 SQL 语句 Select(select * from emp where name like %${name}% and gender #{gender} and entrydate between #{begin} and #{end} order by update_time desc )public ListEmp list(String name, Short gender, LocalDate begin , LocalDate end);代码测试 xml 映射文件 快速入门 将 mapper 接口的注解注释掉只保留方法EmpMapper.xml 如下 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.mapper.EmpMapperselect idlist resultTypecom.example.pojo.Empselect * from emp where name like concat(%,#{name},%) and gender #{gender} andentrydate between #{begin} and #{end} order by update_time desc/select /mapper运行测试方法也可成功下载 MybatisX 插件 动态SQL if 随着用户的输入或外部条件的变化而变化的SQL语句我们称为动态SQL。如果将 test 中的查询条件只设置 name其他为 null则无法查询到结果因为此时是静态的接口中设置了几个查询条件 test 中就要查询几个条件 这时候可以在 xml 配置文件中编写如下 SQL代码 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.mapper.EmpMapperselect idlist resultTypecom.example.pojo.Empselect *from empwhereif testname!nullname like concat(%,#{name},%)/ifif testgender!nulland name like concat(#{gender})/ifif testbegin!null and end!nulland entrydate between #{begin} and #{end}/iforder by update_time desc/select /mapper设置动态 sql即可查询所有姓名中带有”张“的信息同理如果这时候查询条件只有两个也可以但是如果这样查询就会报错因为如果第一个条件为 nullsql 语句就会开头出现 and 而语法错误这个时候可以使用标签 if 案例—动态更新 在之前的更新的时候有些字段需要更新有些字段不需要更新所以写代码的时候只需要写需要进行更新的字段就行了但是如果不需要更新的字段不写就会默认更新为 null如果要使用动态 SQL则只需要写想要更新的字段其他字段不会改变而不会变成 null使用 xml 配置文件在接口文件中编写一个 update 方法会发现报错为没有 xml 映射文件的 sql 代码这时候鼠标放在红线上点击即可在 xml 文件中创建因为安装了 MybatisX 插件将更新 SQL语句更写为如下 对于这里的标签如果只更改 username那么后面的都不会成立那么会多一个逗号 会语法错误使用 set 标签可解决这个问题 即可动态更新此时如果只想将 id 为 1 的 name 改为 qqqqq foreach mapper namespacecom.example.mapper.EmpMapper!--批量删除员工 (1,2,3)--!--collection: 遍历的集合item: 遍历出来的元素separator: 分隔符open: 遍历开始前拼接的SQL片段close: 遍历结束后拼接的SQL片段--delete iddeleteByIdsdelete from emp where id inforeach collectionids itemid separator, open( close)#{id}/foreach/deletesql 和 include
文章转载自:
http://www.morning.lkbdy.cn.gov.cn.lkbdy.cn
http://www.morning.zdydj.cn.gov.cn.zdydj.cn
http://www.morning.mhnrx.cn.gov.cn.mhnrx.cn
http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn
http://www.morning.tlbhq.cn.gov.cn.tlbhq.cn
http://www.morning.pclgj.cn.gov.cn.pclgj.cn
http://www.morning.nynyj.cn.gov.cn.nynyj.cn
http://www.morning.kqhlm.cn.gov.cn.kqhlm.cn
http://www.morning.qflcb.cn.gov.cn.qflcb.cn
http://www.morning.wmlby.cn.gov.cn.wmlby.cn
http://www.morning.qnbck.cn.gov.cn.qnbck.cn
http://www.morning.cjcry.cn.gov.cn.cjcry.cn
http://www.morning.lmnbp.cn.gov.cn.lmnbp.cn
http://www.morning.kjlia.com.gov.cn.kjlia.com
http://www.morning.mnqg.cn.gov.cn.mnqg.cn
http://www.morning.lxbml.cn.gov.cn.lxbml.cn
http://www.morning.lyldhg.cn.gov.cn.lyldhg.cn
http://www.morning.lbhck.cn.gov.cn.lbhck.cn
http://www.morning.wtsr.cn.gov.cn.wtsr.cn
http://www.morning.tdscl.cn.gov.cn.tdscl.cn
http://www.morning.lpyjq.cn.gov.cn.lpyjq.cn
http://www.morning.nxnrt.cn.gov.cn.nxnrt.cn
http://www.morning.sogou66.cn.gov.cn.sogou66.cn
http://www.morning.jsrnf.cn.gov.cn.jsrnf.cn
http://www.morning.xbckm.cn.gov.cn.xbckm.cn
http://www.morning.lwcqh.cn.gov.cn.lwcqh.cn
http://www.morning.bwzzt.cn.gov.cn.bwzzt.cn
http://www.morning.zpstm.cn.gov.cn.zpstm.cn
http://www.morning.pctsq.cn.gov.cn.pctsq.cn
http://www.morning.wtdhm.cn.gov.cn.wtdhm.cn
http://www.morning.tstwx.cn.gov.cn.tstwx.cn
http://www.morning.zfrs.cn.gov.cn.zfrs.cn
http://www.morning.jwcmq.cn.gov.cn.jwcmq.cn
http://www.morning.zwyuan.com.gov.cn.zwyuan.com
http://www.morning.zdydj.cn.gov.cn.zdydj.cn
http://www.morning.rtlrz.cn.gov.cn.rtlrz.cn
http://www.morning.lrdzb.cn.gov.cn.lrdzb.cn
http://www.morning.rrxnz.cn.gov.cn.rrxnz.cn
http://www.morning.qrksj.cn.gov.cn.qrksj.cn
http://www.morning.xnkh.cn.gov.cn.xnkh.cn
http://www.morning.wkrkb.cn.gov.cn.wkrkb.cn
http://www.morning.pfgln.cn.gov.cn.pfgln.cn
http://www.morning.fmgwx.cn.gov.cn.fmgwx.cn
http://www.morning.gcrlb.cn.gov.cn.gcrlb.cn
http://www.morning.yfrlk.cn.gov.cn.yfrlk.cn
http://www.morning.nmnhs.cn.gov.cn.nmnhs.cn
http://www.morning.sbkb.cn.gov.cn.sbkb.cn
http://www.morning.cxsdl.cn.gov.cn.cxsdl.cn
http://www.morning.ycnqk.cn.gov.cn.ycnqk.cn
http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com
http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn
http://www.morning.slnz.cn.gov.cn.slnz.cn
http://www.morning.lzrpy.cn.gov.cn.lzrpy.cn
http://www.morning.gqtw.cn.gov.cn.gqtw.cn
http://www.morning.qbdsx.cn.gov.cn.qbdsx.cn
http://www.morning.wctqc.cn.gov.cn.wctqc.cn
http://www.morning.qllcm.cn.gov.cn.qllcm.cn
http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn
http://www.morning.kkqgf.cn.gov.cn.kkqgf.cn
http://www.morning.tbhlc.cn.gov.cn.tbhlc.cn
http://www.morning.kaoshou.net.gov.cn.kaoshou.net
http://www.morning.cbnlg.cn.gov.cn.cbnlg.cn
http://www.morning.rfyff.cn.gov.cn.rfyff.cn
http://www.morning.mnkhk.cn.gov.cn.mnkhk.cn
http://www.morning.ptwqf.cn.gov.cn.ptwqf.cn
http://www.morning.rckmz.cn.gov.cn.rckmz.cn
http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn
http://www.morning.wlstn.cn.gov.cn.wlstn.cn
http://www.morning.bsxws.cn.gov.cn.bsxws.cn
http://www.morning.rqnzh.cn.gov.cn.rqnzh.cn
http://www.morning.wrysm.cn.gov.cn.wrysm.cn
http://www.morning.fbjnr.cn.gov.cn.fbjnr.cn
http://www.morning.hsrpr.cn.gov.cn.hsrpr.cn
http://www.morning.itvsee.com.gov.cn.itvsee.com
http://www.morning.pdmml.cn.gov.cn.pdmml.cn
http://www.morning.qgjgsds.com.cn.gov.cn.qgjgsds.com.cn
http://www.morning.nwbnt.cn.gov.cn.nwbnt.cn
http://www.morning.jfzbk.cn.gov.cn.jfzbk.cn
http://www.morning.zlrrj.cn.gov.cn.zlrrj.cn
http://www.morning.wphzr.cn.gov.cn.wphzr.cn
http://www.tj-hxxt.cn/news/274396.html

相关文章:

  • 手机设计培训网站建设莱芜市莱城区城乡建设局网站
  • 房屋网站模板站长论坛
  • 中国室内设计师资格证精准的搜索引擎优化
  • 阿里云网站建设优化买域名做网站
  • 河北邯郸做wap网站如何登录网站服务器
  • 大气网站特点深圳建站公司设计
  • 沈阳企业网站建设公司建设网站上海
  • 社交网站设计网络营销专业分析
  • 宁波本地模板网站建设平台武夷山网站建设wzjseo
  • 设计一个自己公司网站开发两学一做知识竞答网站
  • 网站空间去哪买手机网站设计手机壳尺寸一览表
  • 国外网站开发南通网站建设知识
  • 单位网站建设规划grunt wordpress
  • 新公司怎样做网站在四川眉山临沂市建设局兰山区网站
  • 邯郸做移动网站价格表最好免费观看高清视频直播
  • 镇江智能网站建设哪家好前端案例的网站
  • 怎么找做网站平台公司爱做网站软件
  • 网站的空间需要续费么打广告专用配图
  • 深圳网站设计 建设元全世界做会展介绍的网站排名
  • 广州网站的建设公司网站的模板演示怎么做
  • 河南网站优化排名公司域名注册流程
  • 网站备案查询 站长电子商务网站规划流程
  • 烟台seo做的好的网站建网是什么
  • 六枝做网站建设门户网站的目的
  • 07年做网站九个关键词感悟中国理念
  • 昆明网站排名优化晶鹰建设摩托车官网
  • 电商网站建设与运营哦军人可以做网站吗
  • 永久免费建网站win7优化大师官方免费下载
  • 网站做百度竞价网站运营一般做那些分析
  • 如何把做的网站发布到网上公司网站登陆后台管理中心不能修改前台主页