Both are designed for production usage.
You should prefer OpenSQL because it simplifies many aspects, for example client handling, and makes programming easy, for example because it neatly reads into typed structures and tables.
AMDPs should be your second choice if what you are doing is too complex for OpenSQL, for example because you need to perform a sequence of selects to reach your aim. Pay attention to the exceptions they throw, and if you use database-specific features, such as SAP HANA's fuzzy search.
ADBC should be your last resort if you cannot reach your goals with the above two, for example because you need to connect to another database or need to use a secondary database connection with different authorizations. Again, pay attention to the exceptions they throw. Also, pay attention to the client handling, which in this way is not automated.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…