Efficiency should not be an issue. But what will happen to your application if the database goes down while you're in the middle of doing one of your queries? Will half the query get executed? What will happen to the other half -- maybe the customer will be charged, but the shipping order won't go out?
EJBs will help simplify your code around handling these transactional cases. It will actually make your code slower, but it won't be as much work to write. If you're not planning on many sales going through the system, or the price of occasional errors is manageable, then your non-EJB implementation will likely be fine.
Jon Emerson
http://www.jonemerson.net/