- 【mybatis】基本操作:详解Spring通过注解和XML的方式来操作mybatis
嗯嗯嗯吧
面试学习路线阿里巴巴mybatisspringxml
mybatis的常用配置配置数据库连接#驱动类名称spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver#数据库连接的urlspring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_testcharacterEncoding=utf8&useSSL=false#连接数据库的名
- 一步一步学SpringBoot(三)---SpringBoot与德鲁伊(Druid)的故事
可乐止饱
SpringBootDruidSpringBootDruid配置
添加依赖com.alibabadruid-spring-boot-starter1.1.0配置连接池#JDBC配置spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&character
- MySQL排查篇:该如何定位并解决线上突发的Bug与疑难杂症?
Java佳佳
编程程序员javamysqlbug数据库
前面两章中,聊到了关于数据库性能优化的话题,而本文则再来聊一聊关于MySQL线上排查方面的话题。线上排查、性能优化等内容是面试过程中的“常客”,而对于线上遇到的“疑难杂症”,需要通过理性的思维去分析问题、排查问题、定位问题,最后再着手解决问题,同时,如果解决掉所遇到的问题或瓶颈后,也可以在能力范围之内尝试最优解以及适当考虑拓展性。性能优化也好,线上排查也罢,其实无论在哪个技术栈中,做这些工作的核心
- PostgreSQL 触发器
wjs2024
开发语言
PostgreSQL触发器引言PostgreSQL是一款功能强大的开源关系型数据库管理系统。在数据库管理中,触发器是一种重要的机制,它可以自动执行预定义的操作,以响应特定数据库事件的发生。本文将详细介绍PostgreSQL触发器的概念、类型、创建方法以及应用场景。触发器概述定义触发器是一种特殊类型的存储过程,它在数据库表中特定事件发生时自动执行。触发器通常用于保证数据的完整性和一致性,以及实现复杂
- hive-sql高频命令总结
summer_dai
hive-sqlmysqlhive
COUNTcount(*):所有行进行统计,包括NULL行count(1):所有行进行统计,包括NULL行count(column):对column中非Null进行统计ROW_NUMBER()语法形式:ROW_NUMBER()OVER(PARTITIONBYCOL1ORDERBYCOL2)解释:根据COL1分组,在分组内部根据COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的
- SQL中关于WHERE子句与HAVING短语的区别
V&神
数据库数据库开发
where子句与having短语的区别在于作用的对象不同where:作用于基本表或者是试图表示的是个体存在的条件是分组统计前对个体进行的筛选where不能使用聚集函数having:是对于分组以后对统计量进行的判断条件作用于组,从中选择满足条件的组having可以使用聚集函数用比较形象的解释来说就是,当全校的学生在操场上你需要将人聚集你的面前,当你叫全体男生来到主席台面前是你需要用的是wherese
- 酷黑简洁大气体育直播自适应模板赛事直播门户网站源码
知名站长
源码软件
源码名称:酷黑简洁大气体育直播自适应模板赛事直播门户网站源码开发环境:帝国cms7.5安装环境:php+mysql支持PC与手机端同步生成html(多端同步生成插件)带软件采集,可以挂着自动采集发布,无需人工操作!演示地址:http://demo51.52muban.cc/模板特点:1、程序伪静态版本,实时采集更新,无人值守,省心省力。2、百度权重5高权重内容展示平台详情查看源码名称:酷黑简洁大气
- 仿《Q极速体育》NBACBA体育直播吧足球直播综合体育直播源码
知名站长
源码软件
码名称:仿《Q极速体育》NBACBA体育直播吧足球直播综合体育直播源码开发环境:帝国cms7.5空间支持:php+mysql仿《Q极速体育》NBACBA体育直播吧足球直播综合体育直播源码+自动采集-我爱模板网源码名称:仿《Q极速体育》NBACBA体育直播吧足球直播综合体育直播源码开发环境:帝国cms7.5空间支持:php+mysql支持PC与手机端同步生成html(多端同步生成插件)带软件采集,可
- SQL HAVING子句
黄名富
数据库数据库sqlmysql
SQL是一种基于“面向集合”思想设计的语言。HAVING子句是一个聚合函数,用于过滤分组结果。1实践1.1缺失的编号图连续编号记录表t_seq_record需求:判断seq列编号是否有缺失。SELECT'存在缺失的编号'ASresFROMt_seq_recordHAVINGCOUNT(*)!=MAX(seq);需求:查询缺失编号的最小值。SELECTCASEWHENCOUNT(*)=0ORMIN(
- SQL中where与having
小应的每天进步史
数据分析/数据开发数据结构sqlleetcode
where和having的执行顺序where早于groupby早于havingwhere子句在聚合前先筛选记录,也就是说作用在groupby子句和having子句前,而having子句在聚合后对组记录进行筛选where不能使用聚合函数、having中可以使用聚合函数
- MySQL WHERE与HAVING子句:理解与运用的艺术
DTcode7
sql数据库相关数据库mysqlSQL数据库开发sql
MySQLWHERE与HAVING子句:理解与运用的艺术基本概念与作用WHERE子句HAVING子句代码示例示例一:基础使用使用WHERE子句使用HAVING子句示例二:组合WHERE与GROUPBY示例三:复杂的HAVING子句示例四:WHERE与HAVING的综合应用功能使用思路与实战经验数据筛选策略性能优化安全性考虑实际工作开发中的使用技巧技巧一:灵活运用子查询技巧二:性能优化技巧技巧三:利
- Postgresql无法连接问题汇总
宇宙超级无敌天下第一雷霆霹雳爆龙战士
postgresql数据库
一.数据库服务未启动❌报错信息:[postgres@k8s-node2~]$psqlpsql:couldnotconnecttoserver:NosuchfileordirectoryIstheserverrunninglocallyandacceptingconnectionsonUnixdomainsocket"/var/run/postgresql/.s.PGSQL.5432"?✅解决方案1
- SQL 中 WHERE 与 HAVING 子句的使用
leo_厉锵
数据库算法数据库
在编写SQL查询时,数据过滤是常见需求。WHERE和HAVING子句虽然都用于筛选数据,但实际用法大不相同。本文通过具体示例对比两者的核心区别,并结合实际场景演示联合使用技巧,助力快速掌握这两个关键工具的正确用法。一、数据表结构假设存在sales表,其结构如下:sale_idproduct_idsale_datesale_amount11012024-01-0110021012024-01-022
- mysql
wjm041006
mysqloracle数据库
知识介绍:基础篇SQLmysql数据库中关系型数据库:是建立在关系模型基础上的,由多张相互连接的二维表组成的数据库SQL通用语法SQL可以单行或多行书写,以分号结尾SQL可以使用空格或者缩进来增强语句的可读性MySQL数据库的SQL语句不区分大小写注释的使用:单行注释:--注释内容或者#注释内容多行注释/**/SQL分类分类说明DDL数据定义语言,用来定义数据库对象DML数据操作语言,用来对数据进
- Redis 核心架构深度解析:七大设计哲学揭秘
这个懒人
redis架构
Redis(RemoteDictionaryServer)因其独特的优势成为企业后端架构中的核心组件,尤其在处理高并发、低延迟场景时表现卓越。以下是企业广泛采用Redis的7大核心原因,结合技术原理与真实场景深度解析:一、内存存储:极致性能的根基原理:Redis所有数据常驻内存,避免传统磁盘I/O瓶颈,读写操作在微秒级完成(磁盘数据库如MySQL通常需要毫秒级)。场景对比:用户请求商品详情页:无缓
- 《网络安全自学教程》- 报错注入的5种报错方式原理分析及12个MySQL报错函数使用方式
士别三日wyx
《网络安全自学教程》web安全mysql网络安全安全
《网络安全自学教程》这篇文章为大家讲解「5种报错注入方式」实现原理和「2个MySQL报错函数」1的使用方式。平时常用的是「Xpath格式报错」的updatexml()和extractvalue()、「主键重复」报错的floor(),其他几种了解即可。MySQL报错函数1、Xpath格式报错1.1、updatexml()1.2、extractvalue()2、主键重复报错2.1、floor()3、数
- PHP 应用&留言板功能&超全局变量&数据库操作&第三方插件引用
我最厉害。,。
php数据库开发语言
服务器用来处理脚本数据库用来存储数据#开发环境:DW+PHPStorm+PhpStudy+NavicatPremiumDW:HTML&JS&CSS开发PHPStorm:专业PHP开发IDEPhpStudy:ApacheMYSQL环境NavicatPremium:全能数据库管理工具#数据导入-mysql架构&库表列1、数据库名,数据库表名,数据库列名2、数据库数据,格式类型,长度,键等#数据库操作-
- Java实习生面试题(2025.3.23 be)
suuijbd
springvuemybatis面试vuespringmybatis
一、v-if与v-show的区别`v-show`和`v-if`都是Vue中的条件渲染指令,它们的主要区别在于渲染策略:`v-if`会根据条件决定是否编译元素,而`v-show`则始终编译元素,只是通过改变CSS的`display`属性来控制显示与隐藏。二、mybatis-plus分页插件的原理拦截查询:分页插件通过拦截SQL查询,在执行前修改SQL,自动添加分页条件,例如LIMIT和OFFSET。
- 启动报错Error:io_setup() failed with EAGAIN
王二空间
adbjava开发语言
问题最近碰到一个case,一台主机上,部署了多个实例。之前使用的是MySQL8.0,启动时没有任何问题。但升级到MySQL8.4后,部分实例在启动时出现了以下错误。[Warning] [MY-012582] [InnoDB] io_setup() failed with EAGAIN. Will make 5 attempts before giving up.[Warning] [MY-0125
- MySQL 8.0.32 MGR常见操作及添加新节点
IT_木头人
MySQLmysql数据库
MySQL8.0.32MGR常见操作及添加新节点启动MGRMGR单主多主模式切换组的写入并发性添加新节点启动MGR单主模式启动第一个节点(引导):SETGLOBALgroup_replication_bootstrap_group=ON;STARTGROUP_REPLICATION;SETGLOBALgroup_replication_bootstrap_group=OFF;其他节点:STARTG
- Wamp 数据库优化之慢查询配置
咯拉咯啦
MYSQL
1、检查数据库慢查询是否开启mysql>showvariableslike'slow%';+---------------------+-------------------------------------------------------------+|Variable_name|Value|+---------------------+--------------------------
- 如何让 MGR 不从 Primary 节点克隆数据?
MySQL实战
MySQL实战mysql数据库
问题MGR中,新节点在加入时,为了与组内其它节点的数据保持一致,它会首先经历一个分布式恢复阶段。在这个阶段,新节点会随机选择组内一个节点(Donor)来同步差异数据。在MySQL8.0.17之前,同步的方式只有一种,即基于Binlog的异步复制,这种方式适用于差异数据较少或需要的Binlog都存在的场景。从MySQL8.0.17开始,新增了一种同步方式-克隆插件,克隆插件可用来进行物理备份恢复,这
- Mysql8官方分布式数据库MGR最佳实践_please check that group_replication_recovery chann
2401_85111836
作者\/分布式数据库adb
skip-name-resolvemax_connections=1000max_user_connections=800max_allowed_packet=512Mmax_connect_errors=100000datadir=/data/mysql/mysql8/data/3309socket=/data/mysql/mysql8/run/3309/mysql.sockpid_file=/
- MyBatis代理模式简析
橘子味的奶茶
mybatismybatis代理模式java
在简析代理模式开发之前,先了解一下传统DAO模式开发:在传统DAO模式下,定义接口和实现类,如interfaceEmpDaoclassEmpDaoImplimplementsEmpDao.在实现类中,用SqlSession对象调用selectinsertdeleteupdate等方法实现。目前极为少见,在传统模式下,我们需要知道SqlSession对象实现CURD和参数传递的处理例如:SqlSes
- YashanDB dump
数据库
YashanDB提供dump命令,让用户手动将系统内部结构信息转储到trace文件中,这些信息可被用于进行故障问题的跟踪和分析。dump命令dump命令通过SQL语句实现,对其详细的语法描述请参考开发手册ALTERSYSTEM的dump_clause子句。YashanDB允许将如下内部信息dump到trace文件中:privateredoinmemory内存中的私有日志数据,对应的dump命令为:
- HarmonyOS NEXT中SQLite数据库存储实践指南
harmonyos
HarmonyOSNEXT中SQLite数据库存储实践指南一、引言HarmonyOSNEXT作为华为自主研发的分布式全场景操作系统,为开发者提供了丰富的数据管理框架,其中ArkData框架支持SQLite数据库的高效创建与管理。本文旨在详细介绍如何在HarmonyOSNEXT中实现SQLite数据库存储,包括数据库创建与配置、表结构设计与数据操作、事务处理以及性能优化等关键步骤。二、数据库创建与配
- FlinkCDC实战:将 MySQL 数据同步至 ES
java15655057970
面试阿里巴巴mysqlelasticsearchandroid
??当前需要处理的业务场景:将订单表和相关联的表(比如:商品表、子订单表、物流信息表)组织成宽表,放入到ES中,加速订单数据的查询.同步数据到es.概述1.什么是CDC2.什么是FlinkCDC3.FlinkCDCConnectors和Flink的版本映射实战1.宽表查询1.1创建mysql表1.2启动Flink集群和FlinkSQLCLI1.3在FlinkSQLCLI中使用FlinkDDL创建表
- docker 安装 mysql
-张张包-
dockermysql容器
目录一、下载mysql镜像1.查看你自己的镜像下载2.运行一个mysql容器方法一、直接运行方法二、创建脚本直接使用脚本运行3.连接数据库一、下载mysql镜像dockerpullmysql:5.71.查看你自己的镜像下载dockerimages 2.运行一个mysql容器方法一、直接运行dockerrun-p3306:3306--namemysql--restart=always--privil
- Thinkphp 框架计算一个字段等于另外两个字段之和
咯拉咯啦
TPPHP
原sql写法:updatetableseta=a+bwhereid=1;TP框架写法:$where=$setData=array();$where['id']=1;$setData['a']=array('exp','a+b');M('table')->where($where)->save($setData);
- PHPnow 数据库编码 Latin1转换UTF-8
咯拉咯啦
MYSQL
以PHPnow1.5.6-1为例:打开MySQL的配置文件,位置在PHPnow/MySQL-5.0.90/my.ini,做以下修改,没有的配置请自己添加,路径请自己修改,需要修改三处就可以。一[client]#password=your_passwordport=3306socket=/tmp/mysql.sock后边添加:default-character-set=utf8二[mysqld]de
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http