目前想实现一个按月份写入数据库的功能,比如test_201801.sql test_201802.sql。由于jpa的save方法,会先写数据表的实体类与数据表的名字绑定,然后就可以实现。请问我想实现的功能如何在jpa的基础上修改呢
mysql的话,需要在jdbcurl 配置allowMultiQueries=true
然后读取test_201801.sql test_201802.sql执行。
sql文件内容包含建表,插值语句
例子
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'name_525', '48');
INSERT INTO `user` VALUES ('2', 'name_367', '33');
INSERT INTO `user` VALUES ('3', 'name_630', '23');
INSERT INTO `user` VALUES ('4', 'name_230', '34');
关键代码例子
try (InputStream inputStream = getClass().getResourceAsStream("/sql/test_201801.sql"))
{
String sqlText = IOUtils.toString(inputStream, "utf-8");
logger.info("SQL = {}", sqlText);
em.createNativeQuery(sqlText).executeUpdate();
}
回答完毕!