I've seen something to this effect in the past but I failed to find how I would do this so I will give pseudocode to demonstrate something I remember seeing this.
Table entries would be defined with a class, something to the following effect.
class Person {
@ (an annotation that specified what SQL type to use for below field)
String name;
@ ...
int age;
}
One would make SQL calls but the
Person[] persons = sqlconn.select("SELECT * FROM table_name", Person.class)
or something to this effect.
Not exactly prepare statements because these calls populate the objects.