上一讲我们说到使用 H2
存储数据,那么如果我们部署到 Heroku
是否也有免费的数据库用?答案是对的。Heroku
的免费服务和数据库。极客冲顶 和 Commenthub。下面让我们把上一讲的数据脚本自动执行到 Heroku
,体验一下 Migration
的便捷性。
配置 Heroku
因为 Heroku 是 Paas 服务,它集成了很多可以插拔的组件,所以 MySQL 也是这样一个组件,我们需要添加一个 MySQL 然后才能使用。
首先我们看一下费用,Heroku 提供的免费的 MySQL,支持 5M 的存储,10个 Connections,很小,但是对于我们测试已经足够了。
我们还是先通过浏览器进入 Heroku 的控制面板
点击 Configure Add-ons,这个时候会提示如下内容,意思是在添加组件之前,你需要关联一个信用卡,不然不能添加。当然这个关联并不会扣费。直接点击图片上面的 Verify Now即可添加信用卡。
接下来继续点击刚才的添加按钮,进入如下页面。
在搜索框里面输入 MySQL,选择 ClearDB。弹出输入框选择确定即可,这样就为 Heroku 添加了 MySQL。
接下来我们需要对程序改造。
修改程序
就我们所知,application.yml 区分为 production 和 dev,我们这个时候直接修改 application-product.yml 就可以了。添加如下内容:
db: url: ${JDBC_DATABASE_URL}&useUnicode=true&characterEncoding=UTF-8 username: ${JDBC_DATABASE_USERNAME} password: ${JDBC_DATABASE_PASSWORD} driver: com.mysql.jdbc.Driver
当 Heroku 添加 MySQL 成功以后,会自动创建上面这些环境变量,所以我们直接使用即可。
<!--C3P0-->
<dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version>
</dependency>
接下来直接修改 applicationContext.xml 就可以了,其他不需要修改。
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${db.driver}"/> <property name="jdbcUrl" value="${db.url}"/> <property name="user" value="${db.username}"/> <property name="password" value="${db.password}"/> <property name="maxPoolSize" value="5"/> <property name="minPoolSize" value="1"/> <property name="maxStatements" value="20"/>
</bean>
那你也来试试吧。
源码
服务端源码地址,Tag V8