Java向MySQL写入数据的有关问题

Java向MySQL写入数据的问题
代码1:
String sql1="insert into  maillist values('001','a','b','c','d','2015-11-11','e','f','g')";
statement.execute(sql1);

代码2:
String[] str={"001","abc","bcd","cde","def","2015-11-11",efg","fgh","ghi"};
String sql2="insert into  maillist values('001',str[0],str[1],str[2],str[3],str[4],str[5],str[6],str[7])";
statement.execute(sql2);

为什么代码1可以,代码2不可以?
如果情况是
------解决思路----------------------
你语法错了,str[0]之类的值也要用单引号包围起来

------解决思路----------------------
把sql1和sql2输出比较一下,就知道为什么不可以了。
------解决思路----------------------
sql2本身就是一个字符串,你的写法导致“str[0],str[1],str[2],str[3],str[4],str[5],str[6],str[7]”被当成毫无意义的字符串,如果想取数组中的值务必用双引号分隔,例如:
String sql2="insert into  maillist values('001',“+str[0]+”,“+str[1]+”,“+str[2]+”)";
部分省略。