目前想实现一个按月份写入数据库的功能,比如test_201801.sql test_201802.sql。由于jpa的save方法,会先写数据表的实体类与数据表的名字绑定,然后就可以实现。请问我想实现的功能如何在jpa的基础上修改呢
1条回答 默认 最新
- 爱码少年 00fly.online 2018-11-10 10:35关注
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(); }
回答完毕!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报