泡椒凤爪的背后黑幕,这种玩意吃不得!!

想了很久,还是决定把自己知道的一些事情说出来,由于本人在几家食品公司都做过质检员,所以我现在说出来的情况,请大家还是多琢磨一下。大家看看就是了,至于还会不会去购买,就不是我能管的事情了。很可能会有人说我是某某利益集团的人派来抹黑谁的,对不起,我只是凭良心说话!

首先一个,大家最不应该去购买的就是野山椒泡椒凤爪!重庆现有的生产凤爪的还能上眼的厂家有优友(这个是大品牌,但往往外表越光鲜,里面就越烂)、巧媳妇(位于重庆歌乐山,近年来越做越大,有争龙头老大的架势,但还是只有当受气媳妇,被前面那个庞然大物压制)、黄巢(就是一个农民企业生产作坊)。
泡脚凤爪的原材料是鸡爪,这个谁都知道,可是有多少人见过还没有变成凤爪的鸡爪(既原料),相信你们看了之后就会决定不买那东西吃了,重庆所有的泡脚凤爪的主材鸡爪都是从外地运来的,全部是饲料鸡。而且大部分是非正常死亡的鸡的爪子!可能会有人问为什么我说的这样肯定,因为所有的鸡爪都是冰冻运来的,而且鸡爪里面还有血水,也就是说,这个爪子不是鸡在被放了血之后宰下来的,我这样说,大家懂了吧,而且大部分鸡爪还伴随得有鸡毛、老皮和鸡粪!没有做过任何的处理就这样宰下来,说到这里了,大家还会觉得那个爪子不是死鸡瘟鸡病鸡的爪子嘛?

http://club.life.sina.com.cn/slide.php?tid=582391#p=1

2011-6-12 11:17

http://club.life.sina.com.cn/slide.php?tid=582391#p=2

2011-6-12 11:18

鸡爪运来了,接下来就是解冻和宰割,这个很正常,可能大家都觉得没什么,如果你是凤爪厂的工人,又恰巧被分在宰割车间的话,你就是叫天天不应叫地地不灵了,为什么?冬天还好,就是一个冷,夏天就可怜了,还要忍受鸡爪解冻之后的腐臭!
在机器的运送下,那些被分割好的鸡爪被送到机器里煮制,在高温消毒下,应该没问题了吧?错!到了这个阶段的鸡爪,你是绝对不会吃的,因为没有味道,也根本不能吃,被熬出来的鸡油就巴在上面,黄黄的,像大便一样,你会吃?然后就是双氧水冷却消毒(说消毒牵强了点,也就是把爪子上面的污垢冲掉),被送到浸泡车间里浸泡!大家注意了,泡椒凤爪最关键的一步就在这里,浸泡!
为什么大家吃的凤爪会有那种又辣又香又脆的感觉,秘密就在这里,在浸泡车间里,工人用双氧水,烧碱和丁酮等加上野山椒浸泡凤爪48个小时之后,就是大家都爱吃的泡脚凤爪了,那个浸泡药水有多厉害,我这样给你说吧,用来装浸泡液的大的白的塑料桶,都被侵蚀成了屎黄色,走进浸泡车间,那种刺鼻的气味会让你睁不开眼睛!
接下来就是包装,不要以为你吃的凤爪上表明的是四月二十四号生产的凤爪,那这个东西就真的是那天生产的,一般来说,按照管理,你吃的可能是四月二十号或者四月十号的产品,至于为什么,我不想解释太多,因为这是食品行业的惯例。
现在来说说我的工作,质检,在凤爪厂工作的时候,凤爪制作的每个阶段我都有抽样检查微生物也就是细菌含量的问题,结果如下,
凤爪才被解冻,切碎时,细菌多不可计数;凤爪被煮熟时,细菌超标;凤爪在双氧水冷琳消毒时,合格(因为我抽检的是双氧水,如果双氧水细菌都超标的话,就没意义了);凤爪在桶里浸泡时,细菌超标(在那种极强的酸性条件下,还超标。);制成品凤爪细菌含量,基本超标!

质检员的工作就是——检查,然后伪造结果,做假账(会有内部的追责改进,但是不合格产品依然流向市场),记得把真实的记录下来,为什么,我也说不清楚。
大家可能又会问了,为什么质检局检查的结果是合格那?这个很好解释,也不用去猜测厂里给了人家多少钱,其实很简单,送去检查的样品是精挑细选之后的产物,其生产流程和原料根本和你手上拿的那个东西不是一个档次的!再加上人际关系这个你永远都说不清道不明的东西,自然也就合格了。
厂里检查的项目只有那几项,微生物菌群数量,大肠杆菌数量,至于什么硫砷化物的含量,重金属残留等,对不起,厂里根本就没那个设备,也不会准备有那个设备!可以负责的对大家说一句,绝对超标!
如果您确实忍不住想吃,建议您选择吃单爪,也就是一个爪子的那种,不是因为它比较干净而是因为它的原料是最上等的,其次是排爪,最下级的就是碎爪,也是最流行的那种,根本就没什么香脆的概念在里面,整个凤爪产品(包含所有的类型和品种)有的只有一样,用强酸咬出来的强烈刺激性感觉,长期食用会导致您味觉退化同时易得肿瘤。

朋友,当你看到这篇文章的时候,请一定要转载!!!为了身边朋友的健康,赶紧转载!!!

H2数据库小结

1.数据库连接的jdbc url

h2分嵌入模式和服务模式,根据不同的模式和情况。连接数据库jdbc url的写法不同
连接内嵌模式的数据库
“jdbc:h2:file:D:/test”  连接自定目录下的指定数据库
“jdbc:h2:~/test” 连接默认目录下的指定数据库
连接内存模式的数据库
jdbc:h2:mem:test
连接server模式的数据库
jdbc:h2:tcp://localhost/~/test
ssl连接数据库
jdbc:h2:ssl://localhost/~/test
连接压缩文件内的数据库
jdbc:h2:zip:D:/test.zip!/test

2.h2自带的连接池
JdbcConnectionPool cp = JdbcConnectionPool.create(url,username,password);
通过连接池获取连接
Connection conn = cp.getConnection();
note:
默认连接池是初始10个连接
3.嵌入模式数据库管理
通过代码启动数据库服务
Server server = Server.createTcpServer();
server.start();
关闭数据库服务
server.stop();
.数据库注销
server.shutdown();
4. 通过h2自带的方法跟cvs文件读写数据
1.通过代码读取csv的数据
ResultSet rs = Csv.getInstance().read(fileName, null, null);
ResultSetMetaData meta = rs.getMetaData();
while (rs.next()) {
for (int i = 0; i < meta.getColumnCount(); i++) {
System.out.println(meta.getColumnLabel(i + 1) + “:”
+ rs.getString(i + 1));
}
System.out.println();
}
rs.close();
通过代码写csv数据
SimpleResultSet rs = new SimpleResultSet();
rs.addColumn(“name”, Types.VARCHAR, 255, 0);
rs.addColumn(“email”, Types.VARCHAR, 255, 0);
rs.addRow(“陈盈”, “yingchen@midea.com.cn”);
rs.addRow(“邹嘉欣”, “zoujx@midea.com.cn”);
Csv.getInstance().write(fileName, rs, null);
2.使用h2自带cvs函数通过sql语句实现
csvread()实现读csv文件
例:SELECT * FROM CSVREAD(‘d:/test.csv’);
CSVWRITE()实现写csv文件
例:CALL CSVWRITE(‘d:/test.csv’, ‘SELECT * FROM TEST’);
5.H2数据库备份
备份文件在服务器运行目录
1.备份sql脚本
运行
java -cp h2*.jar org.h2.tools.Script -url jdbc:h2:~/test -user sa -script test.zip -options compression zip
2.备份数据库文件
方法1:进入h2 shell 命令行模式
java -cp h2*.jar org.h2.tools.Shell
方法2:在shell命令行环境下执行备份命令(也可以在web直接调用)
BACKUP TO ‘backup.zip’

spring执行定时任务

定义一个任务是很简单的实现TimerTask的run方法就可以了.
如下:SayHelloTask.java

package test.timerTask;

import java.util.TimerTask;

public class Task extends TimerTask {

@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(“测试TimerTask : Hello !!”);
}

}

package test.springTimer;

import java.util.TimerTask;

public class Task2 extends TimerTask{
public void run(){

System.out.println(“task2 is running”);
}

}

然后是配置文件:

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE beans PUBLIC “-//SPRING//DTD BEAN//EN” “http://www.springframework.org/dtd/spring-beans.dtd“>

<beans>
<bean id=”sayHelloTask”></bean>
<bean id=”HelloTask”></bean>

<bean id=”scheduledTask”>
<property name=”timerTask”>
<ref bean=”sayHelloTask”/>
</property>
<!– 任务执行周期 2m 关于一些任务的参数请参考JDK doc文档和Spring相关文档–>
<property name=”period”>
<value>2000</value>
</property>
<!– 延时1m 执行任务 –>
<property name=”delay”>
<value>1000</value>
</property>
</bean>
<bean id=”scheduledTask2″>
<property name=”timerTask”>
<ref bean=”HelloTask”/>
</property>
<!– 任务执行周期 2m 关于一些任务的参数请参考JDK doc文档和Spring相关文档–>
<property name=”period”>
<value>2000</value>
</property>
<!– 延时1m 执行任务 –>
<property name=”delay”>
<value>1000</value>
</property>
</bean>
<!– 启动定时器 –>
<bean id=”timerBean”>
<property name=”scheduledTimerTasks”>
<list>
<ref bean=”scheduledTask”/>
<ref bean=”scheduledTask2″/>
</list>
</property>
</bean>
</beans>

 

测试类如下:TestApp.java

package test.timerTask;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestApp {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext context = new ClassPathXmlApplicationContext(“test/timerTask/javaTimer.xml”);
//   ApplicationContext context2 = new ClassPathXmlApplicationContext(“test/timerTask/quartzTimer.xml”);
}
// 只要加载配置文件就可以了,
}

运行结果:
task2 is running
task2 is running
haha,task is running
haha,task is running
task2 is running

使用Java中的定时器比较简单,其提供的任务也比较简单, 下面来看看使用quartz来执行一个复杂的任务.

package test.timerTask;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class SayHelloTaskUsingQuartz extends QuartzJobBean {

@Override
protected void executeInternal(JobExecutionContext context)
throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println(“使用Quartz 认为调度: Hello!!”);
}

}

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE beans PUBLIC “-//SPRING//DTD BEAN//EN” “http://www.springframework.org/dtd/spring-beans.dtd“>
<bean id=”sayHelloJob” class=”org.springframework.scheduling.quartz.JobDetailBean”>
<property name=”jobClass”>
<value>test.timerTask.SayHelloTaskUsingQuartz</value>
</property>
</bean>

<!– 关键在如下两个触发器的配置 –>

<!– 类似于Java的简单触发器 –>

<bean id=”helloTrigger” class=”org.springframework.scheduling.quartz.SimpleTriggerBean”>
<property name=”jobDetail”>
<ref bean=”sayHelloJob”/>
</property>
<property name=”startDelay”>
<value>1000</value>
</property>
<property name=”repeatInterval”>
<value>3000</value>
</property>
</bean>

<!– 复杂触发器 –>

<bean id=”helloCronTrigger” class=”org.springframework.scheduling.quartz.CronTriggerBean”>
<property name=”jobDetail”>
<ref bean=”sayHelloJob”/>
</property>
<property name=”cronExpression”>

<!– 关键在配置此表达式 –>

<value>0 49 15 * *  </value>
</property>
</bean>
<bean id=”scheduler” class=”org.springframework.scheduling.quartz.SchedulerFactoryBean”>
<property name=”triggers”>
<ref bean=”helloCronTrigger”/>
</property>
</bean>

</beans>


关于简单触发器和复杂触发器,查考下面的解释:

Quartz设计者做了一个设计选择来从调度分离开作业。Quartz中的触发器用来告诉调度程序作业什么时候触发。框架提供了一把触发器类型,但两个最常用的是SimpleTrigger和CronTrigger。SimpleTrigger为需要简单打火调度而设计。典型地,如果你需要在给定的时间和重复次数或者两次打火之间等待的秒数打火一个作业,那么SimpleTrigger适合你。另一方面,如果你有许多复杂的作业调度,那么或许需要CronTrigger。

CronTrigger是基于Calendar-like调度的。当你需要在除星期六和星期天外的每天上午10点半执行作业时,那么应该使用CronTrigger。正如它的名字所暗示的那样,CronTrigger是基于Unix克隆表达式的。

作为一个例子,下面的Quartz克隆表达式将在星期一到星期五的每天上午10点15分执行一个作业。
0 15 10   * MON-FRI

下面的表达式
0 15 10   * 6L 2002-2005
将在2002年到2005年的每个月的最后一个星期五上午10点15分执行作业。

你不可能用SimpleTrigger来做这些事情。你可以用两者之中的任何一个,但哪个跟合适则取决于你的调度需要。
更多详细介绍参考此处:

关于cronExpression的介绍:

字段 允许值 允许的特殊字符
0-59 , - * /
0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - *   / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - *   / L C #
年(可选) 留空, 1970-2099 , - * /

如上面的表达式所示:

“*”字符被用来指定所有的值。如:”*“在分钟的字段域里表示“每分钟”。

“-”字符被用来指定一个范围。如:“10-12”在小时域意味着“10点、11点、12点”。

“,”字符被用来指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”.

“?”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你需要通过在这两个域中的一个来指定一些东西的时候,它是有用的。看下面的例子你就会明白。

“L”字符指定在月或者星期中的某天(最后一天)。即“Last ”的缩写。但是在星期和月中“L”表示不同的意思,如:在月子段中“L”指月份的最后一天-1月31日,2月28日,如果在星期字段中则简单的表示为“7”或者“SAT”。如果在星期字段中在某个value值得后面,则表示“某月的最后一个星期value”,如“6L”表示某月的最后一个星期五。

“W”字符只能用在月份字段中,该字段指定了离指定日期最近的那个星期日。

“#”字符只能用在星期字段,该字段指定了第几个星期value在某月中

表达式 意义
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

每天早上6点

0 6 * * *

每两个小时

0 */2 * * *
晚上11点到早上8点之间每两个小时,早上八点

0 23-7/2,8 * * *

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3
1月1日早上4点

0 4 1 1 *

定时批处理作业是J2EE企业应用里很重要的一环,用来在晚间进行财务挂账,数据转存,新闻联播等等操作。

而在Spring里,已经很好的集成了Quartz,简单到像配cron一样,在xml文件里面配一下时间就可以自动执行,不需要写一行代码。Spring对Quartz大刀阔斧的简化堪称范例,Quartz项目组也许可以学习一下。

上面这段配置文件规定了在早上6点和晚上8点执行financeDAO对象的confirmOrder()方法.

 

Mybatis

今天看了看,mybatis到3.0.5版本了
,maven配置:

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
 <version>3.0.5</version>
</dependency>
<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
 <version>1.0.1</version>
</dependency>

生成工具mybatis-generator-core-1.3.1

产前运动

产前需要多做运动

1)盘腿,可以像韩国人那样盘腿坐

2)靠着墙下蹲,最好能持续几分钟

3)多走走

4)使用分娩球

5)适当的家务劳动

需要保持口腔、乳头、会阴的卫生,每天清洗

饮食合理搭配,每天需要新鲜牛奶300ml、吃谷物、杂粮、根茎类蔬菜、其他蔬菜