study__chengxuyuan 2018-09-12 03:25 采纳率: 0%
浏览 679
已采纳

jpa接口重定义写入数据库方法

目前想实现一个按月份写入数据库的功能,比如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();
            }
    

    回答完毕!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 9月29日

悬赏问题

  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式
  • ¥15 关于#python#的问题:功能监听网页
  • ¥15 怎么让wx群机器人发送音乐