- 如何在SpringBoot/MySQL事务中并行执行多条SQL?
springboot
在SpringBoot和MySQL事务中并行执行多条SQL语句,可以通过以下步骤实现:1、配置事务管理器在SpringBoot项目中,需要配置事务管理器来管理事务。通常,可以使用DataSourceTransactionManager作为事务管理器。在配置类中添加如下代码:importorg.springframework.context.annotation.Bean;importorg.spr
- 部署 及 使用 etl crontab 和 etl engine
**如何部署及使用etl_crontab和etl_engine**内容详细,适合新人上手1、前置条件获取到以下文件列表code.bin(授权文件,必须)code.key(授权文件,必须)conf.cron(调度配置文件,使用etl_crontab必须)sys.properties(环境配置文件,使用etl_crontab必须)etllog_mysql.sql(日志表结构文件,使用etl_cront
- 数据库数据恢复—恢复丢失的Mysql表记录数据,只需要这几步
数据恢复
Mysql数据库故障:Mysql数据库表记录丢失。Mysql数据库故障表现:1、Mysql数据库表中无任何数据或只有部分数据。2、客户端无法查询到完整的信息。Mysql数据库数据恢复流程:1、备份损坏的数据库文件。2、使用磁盘编辑器分析数据文件MYD。3、判断表记录丢失的可能原因。4、针对不同的表记录丢失原因,使用北亚企安自主开发的软件恢复数据。5、将恢复出来的数据插入原数据库,对数据库做完整性检
- InnoDB 和 MyISAM的区别
DaXiongJoker
数据库mysql搜索引擎后端
InnoDB和MyISAM是MySQL数据库中两种常用的存储引擎,它们各自具有不同的特点和适用场景。以下是两者的详细对比:InnoDB特点:事务支持:支持ACID(原子性、一致性、隔离性、持久性)事务。提供回滚、提交和崩溃恢复能力。行级锁:使用行级锁机制,允许多个用户同时对不同行进行写操作,提高并发性能。适合高并发的读写混合场景。外键约束:支持外键约束,确保数据完整性。有助于维护表与表之间的关系。
- 数据库运维实操优质文章文档分享(含Oracle、MySQL等) | 2024年9月刊
本文为大家整理了墨天轮数据社区2024年9月发布的优质技术文章/文档,主题涵盖Oracle、MySQL、PostgreSQL等主流数据库系统以及国产数据库的技术实操,从基础的安装配置到复杂的故障排查,再到性能优化的实用技巧及常用脚本等,分享给大家:Oracle优质技术文章概念梳理&安装配置Oracle授权如何购买?多少钱?如何计算?Oracle官方文档整理以及阅读指南Oracle篇:为什么SQL要
- java 防止sql xxs注入_【Java】防止SQL注入问题 解决XSS攻击 (个人梳理)
郑瑜伊
java防止sqlxxs注入
【Java】防止SQL注入问题解决XSS攻击(个人梳理)【Java】防止SQL注入问题解决XSS攻击(个人梳理)文章目录前言sql注入是什么,就是用户通过在表单中填写包含SQL关键字的数据来使数据库执行非常规代码的过程。简单来说,就是客户端插入的数据做了代码才能干的事情。这个问题的来源是,SQL数据库的操作是通过SQL语句来执行的,而无论是执行代码还是数据项都必须写在SQL语句之中,这就导致如果我
- java sql语句防注入_在 Java 中防止 SQL 注入攻击(SQL Injection)的方法
大侠要瘦要瘦
javasql语句防注入
SQL注入(SQLInjection)是最常见的数据库攻击方式,和其它开发环境一样,Java也提供了防止SQL注入攻击的方法。由于JDBC都是基于接口的设计,所以对于不同的数据库,代码基本一样,下面给出一个查询范例:...Connectionconn=DriverManager.getConnection(url,user,password);Stringquery="select*fromtab
- Vue3中使用hook实现按住Shift快速勾选el-table功能
需求描述最近产品说,某个el-table要实现按住shift键快速勾选功能大概就是仿windows系统的文件shift按住选中功能反正就是尽可能多的让用户勾选方便用户快速勾选操作github完整代码:https://github.com/shuirongshuifu/vue3-echarts5-exampleWindows系统的功能效果图比如可以向前多选或者向后多选大家可以自己尝试一下自己实现的e
- 如何在DB2中查看表所占用的物理空间大小
szial
数据库
如何在DB2中查看表所占用的物理空间大小在DB2数据库中,了解表所占用的物理空间大小对于数据库管理员和开发人员来说是一项关键任务。下面将介绍几种方法来检查表的物理空间使用情况,以帮助你更好地管理数据库空间。1.使用表大小查询通过执行以下SQL查询语句,你可以获取表的大小信息,包括表的总大小和数据大小:selecta.CARD*(sum(b.AVGCOLLEN)+10)/1024/1024asTab
- SQL SERVER(39)游标的使用
ngbshzhn
#SQLSERVER
1.什么是游标游标是指针的一种结构,它包含结果集和结果集中指向记录的游标位置两部分,游标作为指针来遍历结果集(每次指向一行),游标是一个数据缓冲区,它存放了查询结果,而用户则可以利用SQL语句从这个缓冲区中提取数据。游标可以完成以下的功能操作:允许从当前行检索一行或多行数据。允许操作当前行的数据,这也是最常用的游标使用方式。可以定位在特定的行。游标的主要作用是遍历查询的结果集,在遍历结果集的同时可
- 复杂查询优化:避免 SQL 查询中的 N+1 查询问题
檐角小猫
sql数据库
在SQL查询优化中,N+1查询问题是一个常见的性能问题,特别是在关系型数据库中。当你的查询不当时,可能会导致对数据库进行大量的额外查询,造成不必要的性能损耗。什么是N+1查询问题?N+1查询问题通常出现在一对多或多对多的关系中。例如,假设你有一个包含用户和订单的数据库模型:一个用户(User)可以有多个订单(Order),即User和Order是一对多的关系。你需要查询所有用户及其相关的订单。一个
- 数据库连接池--德鲁伊数据库连接池
!!!525
springbootmybatisjavaspringbootmybatis
介绍(为什么要有数据连接池?)1).没有数据库连接池的情况客户端执行SQL语句:要先创建一个新的连接对象,然后执行SQL语句,SQL语句执行后又需要关闭连接对象从而释放资源,每次执行SQL时都需要创建连接、销毁链接,这种频繁的重复创建销毁的过程是比较耗费计算机的性能。2).有数据库连接池的情况数据库连接池是个容器,负责分配、管理数据库连接(Connection)程序在启动时,会在数据库连接池(容器
- 【刷题】【力扣】【180】【中等】连续出现的数字
丷从心
#力扣刷题力扣
文章目录@[toc]题目描述示例输入输出解释MySQL实现方法1方法2Pandas实现题目描述表:Logs+-------------+---------+|ColumnName|Type|+-------------+---------+|id|int||num|varchar|+-------------+---------+在SQL中,id是该表的主键id是一个自增列找出所有至少连续出现三次
- MySQL 事务
画船听雨眠aa
mysql数据库
目录一、什么是事务二、事务的特性三、事务使用案例四、事务并发问题五、设置事务的隔离级别(解决读的问题)一、什么是事务MySQL事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!在MySQL中,事务是一组SQL语句的执行,它们被视为一个单独的工作单元。简
- Java使用JDBC开发 之 SQL注入攻击和解决方案
2401_85958150
javasql开发语言
一、注入攻击======在用户登录的时候,我们往往需要输入账号和密码,通过账号和密码和数据库中保存的账号密码进行匹配,匹配成功则登录成功,但是在匹配的时候会存在注入攻击的安全隐患,在输入账号和密码的时候,在末尾加上“or”再接上任何为真的语句,这样一来,有真就为真,这样也能登录成功。现有mylogon数据库,里面有users数据表,存储了账号和密码,使用Java通过JDBC操作数据库来模拟一下注入
- mysql 双主双从 + proxysql 代理
王鹏程@123
服务器运维
环境主机ipmaster1192.168.233.101master2192.168.233.102slave1192.168.233.103slave2192.168.233.104client192.168.233.105需求master1和master2互为主从,slave1是master1的从,slave2是master2的从。master主机通过proxysql代理实现负载均衡的写请求处
- Java开发防止SQL注入攻击
DaXiongJoker
javasql数据库安全后端
在Java编程过程中,防止SQL注入攻击是非常重要的安全措施。以下是常用的防注入攻击措施及其原理:1.使用预编译语句(PreparedStatement)原理:PreparedStatement是JDBC提供的一种接口,它允许SQL语句在执行前被预编译。通过使用占位符?来代替参数值,并在执行时动态设置这些参数,可以有效防止恶意输入被解释为SQL代码。Stringsql="SELECT*FROMus
- 通过mysql的*.frm和*ibd文件恢复原有数据
运维老司机
MySQLmysql数据库数据丢失
背景:MySQL数据丢失,只剩下frm和ibd结尾的文件,由于先前没有备份也没开启binlog现在只能通过这两个文件来恢复数据。如果也是MySQL数据丢失,但是有frm和ibd文件可以通过此文档来解决MySQL数据丢失的问题安装MySQLUtilities由于需要查看原有表结构,所以需要用这个软件来进行查询,有表结构的可以忽略这一步#下载部署包wgethttps://downloads.mysql
- MyBatis-增删改查操作&一些细节
!!!525
mybatisjava数据库mybatisspringboot
目录删除新增修改查询小结:删除功能需求:根据ID删除用户信息SQL:deletefromuserwhereid=5;Mapper接口方法(注意这里不是实现类):/***根据id删除*/@Delete("deletefromuserwhereid=#{id}")publicvoiddeleteById(Integerid);编写单元测试方法进行测试@TestpublicvoidtestDeleteB
- MySQL有哪些版本
骆驼整理说
数据库mysql数据库
目录MySQL1.0(1996年)MySQL3.23(1998年/2001年)MySQL4.0(1999年/2003年)MySQL4.1(2000年)MySQL5.0(2005年)MySQL5.1(2008年)MySQL5.5(2010年)MySQL5.6(2013年)MySQL5.7(2015年)MySQL8.0(2018年)MySQL8.x及更高版本(2020年及以后)MySQL9.x版本(2
- sql模糊关联匹配
南湖渔歌
PythonSQLsqlandroid数据库
需求目标:建立临时表droptablegrafana_bi.zbj_gift_2024;USEgrafana_bi;CREATETABLEzbj_gift_2024(idINTAUTO_INCREMENTPRIMARYKEY,userNameVARCHAR(255),giftNameVARCHAR(255),giftNumINT,pointsINT,teacherVARCHAR(255),send
- mysql-数据库表的设计
梦想零落成诗~
mySQL
mysql的数据类型String:char:长度固定,固定空间大小,可以有默认值varchar:长度不固定,存储效率没有char那么高,可以有默认值,存储的时候还有会单独的空间存储制定长度的大小(1-8000)text:不能有默认值,一般指量比较大的,(凡是遇到text类型的一定要与主表分离出来)char和varchar的区别:1)char长度固定,适用于存储固定的值,如MD5嘛,char比var
- 软考信安20~数据库系统安全
jnprlxc
软考~信息安全工程师数据库安全学习方法运维笔记
1、数据库安全概况1.1、数据库安全概念数据库是网络信息系统的基础性软件,承载着各种各样的数据,成为应用系统的支撑平台。国外主流的数据库系统有MSSQL、MySQL、Oracle、DB2等,国产数据库系统主要有人大金仓、达梦等。1.2、数据库安全威胁授权的误用(MisusesofAuthority)。逻辑推断和汇聚(LogicalInferenceandAggregation)伪装(Masquer
- MySQL数据库表的设计
weixin_34289744
数据库python
2019独角兽企业重金招聘Python工程师标准>>>表的约束主键约束createtablestudent(idintprimarykey,namevarchar(40));createtablestudent(idintprimarykeyauto_increment,namevarchar(20));唯一约束createtablestudent(idintprimarykeyauto_incr
- python转换视频格式为mp4
宁君
Pythonpython
1.第一种方法电脑下载安装ffmpeg方法见mac电脑安装ffmpeg两种方法然后代码如下frommoviepy.editorimportVideoFileClipimportosimportffmpegdefconvert_video_to_mp4(input_video_path,output_video_path):'''速度慢,CPU狂飙:paraminput_video_path::pa
- 【MySQL】入门篇—MySQL简介:MySQL的历史与发展
AI人H哥会Java
MySQLsqlmysql数据库
关系数据库管理系统(RDBMS)是最常用的数据库类型之一,其中MySQL是最流行的开源关系数据库之一。MySQL因其高性能、可靠性和灵活性而被广泛应用于各种场景,包括Web应用、企业级应用和数据仓库等。了解MySQL的历史与发展,不仅可以帮助我们更好地理解其功能和架构,还能为我们在实际应用中选择合适的数据库解决方案提供参考。MySQL的历史1.起源(1979年)MySQL的历史可以追溯到1979年
- 【GreatSQL优化器-11】finalize_table_conditions
数据库mysql
【GreatSQL优化器-11】finalize_table_conditions一、finalize_table_conditions介绍GreatSQL的优化器在对join做完表排序后,在make_join_query_block函数对表添加条件,添加完条件在finalize_table_conditions会对条件再次进行确认,对ref扫描的条件进行删除,对需要cache的条件进行替换,生成
- 《CPython Internals》阅读笔记:p151-p151
python
《CPythonInternals》学习第9天,p151-p1510总结,总计1页。一、技术总结无。二、英语总结(生词:1)1.marshal(1)marshalingMarshallingormarshaling(USspelling)istheprocessoftransformingthememoryrepresentationofanobjectintoadataformsuitablef
- 卓越效能,极简运维,体验云上的Serverless架构,领取转轮日历!
数据库mysql
技术解决方案【CloudUp挑战赛】」上线了!业务的持续稳定可服务,决定着企业对客户的服务质量,是企业发展的基础。应用部署的高可用架构和弹性能力对于业务的稳定与发展起着至关重要的作用,但企业同时需要考虑资源维护成本和费用成本。本方案采用云上的Serverless架构,整合了专有网络VPC、应用型负载均衡ALB、Serverless应用引擎以及PolarDBMySQL版Serverless数据库服务
- MYSQL数据库表的设计
qq_45849275
java
一、https://blog.csdn.net/jasonhui512/article/details/53134054页面原型需求分析表结构的设计数据库设计案例elasticSearchpostgresqlmongodbRedisneo4jfastDFSmemcachemavengitsvnluencemybatismybatisplusspringspringMVCspringbootspri
- 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