I would probably pass the connection pool into the DAO factory. The factory then would pass it on to the DAO when it gets created. When the DAO needs a connection, i.e. in one of the insert or update methods, it gets a connection from the pool, uses it, and releases it back to the pool.
Does that make sense?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Have the main MySQLDAOFactory class create the connection object since it knows that it wants to connect to MySQL. Then if you had to create a connection to another type of db you would have that factory implementation create the connection as well.
So, if you have a delegate calling the DAO's you could do something like this: