Making a property static doesn't change Thread safety.
Personally, I would go back to my first recommendation of creating a StoredProcedure class for each and every stored procedure you have. Don't try to be fancy or tricky to see if you can use just one, getting that to work is too much work, much more than creating one per stored procedure.
You could create a Map where you have many SimpleJdbcCall objects in the map. One for each stored procedure, then the key is the stored procedure map. The problem with this is that it is actually less OO best practices than what I said before.
I recommend doing this.
public class MyFirstStoredProcedure extends StoredProcedure{ ….}
public class MySecondStoredProcedure extends StoredProcedure{…}
That is the best OO design that you can use to re-use the Stored Procedure class in whatever DAOs you want.
Mark
To
test Thread safety, create two different threads and make one do one thing and the other do the other thing at the same time.
Mark