с помощью класса SqlParametrs можно защититься от sql иньекции?
Можно и нужно. При использовании параметров и prepared statements значения для конкретного запроса могут передаваться вообще отдельно от синтаксиса запроса. В любом случае, за корректность будет отвечать драйвер конкретной СУБД, а не вы.