jsp中对mysql赋值问题

rs=sql.executeQuery("select * from user where username='"+username+"'");
这句话是在mysql中查找username的值为jsp中string变量username的值的记录。为啥要加这么多引号还有加号呢 不是很明白啊。求高手解答

""这是Java中字符串的引号
''这是SQL中的引号

假设你的username是张三
你拼接的结果就是
select * from user where username='张三'

select * from user where username='"+username+"'

username是一个变量,解析结果为:select * from user where username='张三'.

双引号是拼接串,username是变量,单引号是因为是字符类型,如果是整型就不用单引号,
select * from user where id=1
string sqlstr="select * from user where username='"+username+"'";
rs=sql.executeQuery(sqlstr);
如果username是张三
则返回的sqlstr便是:select * from user where username='张三'