1, 在三层架构中,存储过程很少使用,除了在需要利用数据库的一些特性的时候。 static void ps() throws SQLException { Connection conn = null; CallableStatement cs = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtils.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 String sql = "{ call addUser(?,?,?,?) } "; cs = conn.prepareCall(sql); cs.registerOutParameter(4, Types.INTEGER);//第四个参数为输出参数 cs.setString(1, "ps name"); cs.setDate(2, new java.sql.Date(System.currentTimeMillis())); cs.setFloat(3, 100f); cs.executeUpdate(); int id = cs.getInt(4); System.out.println("id=" + id); } finally { JdbcUtils.free(rs, cs, conn); } } 2,DAOFactory的写法: public class DaoFactory { private static UserDao userDao = null; private static DaoFactory instance = new DaoFactory(); private DaoFactory() { try { Properties prop = new Properties(); InputStream inStream = DaoFactory.class.getClassLoader() .getResourceAsStream("daoconfig.properties"); prop.load(inStream); String userDaoClass = prop.getProperty("userDaoClass"); Class clazz = Class.forName(userDaoClass); userDao = (UserDao) clazz.newInstance(); } catch (Throwable e) { throw new ExceptionInInitializerError(e); } } public static DaoFactory getInstance() { return instance; } public UserDao getUserDao() { return userDao; } }