Update.class,用于创建数据库表

import org.springframework.data.jpa.repository.*;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;import javax.jms.Session;
import javax.persistence.*;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List;/*** Created by ly on 2016/9/23.*/
public class Update {private EntityManagerFactory emf;@PersistenceUnit//使用这个标记来注入EntityManagerFactory public void setEntityManagerFactory(EntityManagerFactory emf) {this.emf = emf;}public Update() {
//        entityManagerFactory = Persistence.createEntityManagerFactory("entityManagerFactory");}public void begin() {createTable();}private void createTable() {EntityManager em = emf.createEntityManager();em.getTransaction().begin(); //这个不加会报错Query query = null;for (int i = 0; i < sqlList.size(); i++) {query = em.createNativeQuery(sqlList.get(i));query.executeUpdate();}em.getTransaction().commit();em.close();}private List<String> sqlList = new ArrayList<String>();{sqlList.add("CREATE TABLE if not exists t_xfw_rights (\n" +"  id INT not null  AUTO_INCREMENT,\n" +"  rightName varchar(45) DEFAULT NULL,\n" +"  iconCls varchar(45) DEFAULT NULL,\n" +"  orderIndex INT DEFAULT NULL,\n" +"  fartherId INT DEFAULT 0,\n" +"  urlPath varchar(45) DEFAULT NULL,\n" +"  rightType INT DEFAULT NULL,\n" +"  PRIMARY KEY (id) \n"+")\n");sqlList.add("create table if not exists t_xfw_operator(\n"+"  id INT not null AUTO_INCREMENT,\n" +" userName varchar(45) default null,\n"+" passWord varchar(45) default null,\n"+" userType int default null,\n"+" PRIMARY KEY (id),\n" +" UNIQUE KEY UK_username (userName)\n"+")\n");sqlList.add("Create table if not exists t_xfw_operator_rights(\n" +" user_id INT(20),\n " +" right_id INT(20),\n " +" PRIMARY KEY (user_id,right_id),\n"+" KEY FK_right_id (`right_id`),\n"+" CONSTRAINT FK_user_id foreign key(user_id) references t_xfw_operator(id),\n"+" CONSTRAINT FK_right_id foreign key(right_id) references t_xfw_rights(id)\n"+")\n");}
}

controller:

@Controller
@RequestMapping(value = "/")
public class ServerController {Logger logger=Logger.getLogger(ServerController.class);@Autowired//自动注入Update update;@RequestMapping(value = "/update")@ResponseBodypublic JsonResultObject update(){try {update.begin();return  new JsonResultObject(EnumState.Ok,"ok");}catch (Exception e){return new JsonResultObject(EnumState.Fail,e.getMessage());}}}

applicationContext.xml:

    <!-- JPA实体管理工厂的配置 --><bean id="entityManagerFactory"class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"><property name="dataSource" ref="dataSource"/><property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/><property name="packagesToScan" value="com.jiapeng.xfw.server"/><!--待扫描的实体类包,不再需要persistence.xml了 --><property name="jpaProperties"><props><prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.formate_sql">true</prop><prop key="hibernate.hbm2ddl.auto">none</prop><prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.DefaultNamingStrategy</prop>//这个设置是让列名采用自定义的名字,免得在使用jpa进行数据库操作时生成的sql的字段名都是像 user_id 这样加下划线的名字</props></property></bean><beans><bean class="com.jiapeng.xfw.server.normalClass.Update"><property name="entityManagerFactory" ref="entityManagerFactory"></property></bean></beans>

spring data jpa 执行sql相关推荐

  1. Spring Data JPA 写SQL语句也可以如此简单

    在使用 Spring Data JPA 的时候,通常我们只需要继承 JpaRepository 就能获得大部分常用的增删改查的方法.有时候我们需要自定义一些查询方法,可以写自定义 HQL 语句 像这样 ...

  2. Spring Data JPA使用必备(三):Spring Data JPA自定义SQL写法

    Spring Data JPA的前两篇已经写了通过方法名格式自动生成SQL,也简单的提到了@Query注解.但是往往真正的业务逻辑里面,这些是完全不够用的,涉及到一些稍微复杂一点的查询就会有点问题,如 ...

  3. springboot jpa sql打印_SpringBoot集成Spring Data JPA以及读写分离

    相关代码:github OSCchina JPA是什么 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,它为Java开发人员提供了一种对象/关联映射工具 来管理 ...

  4. Spring Data JPA使用必备(二):Spring Data JPA方法命名规则实现SQL自动生成

    Spring data JPA是一个好东西,但是对于很多习惯于写SQL,直接怼数据库的人来说,这个真的用不习惯,还被一致认为是一个不易于程序员发展的技术.因为JPA提供了标准的封装,在操作数据库的时候 ...

  5. Spring Boot整合Spring Data JPA操作数据

    一. Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 J ...

  6. Spring Data JPA(官方文档翻译)

    关于本书 介绍 关于这本指南 第一章 前言 第二章 新增及注意点 第三章 项目依赖 第四章 使用Spring Data Repositories 4.1 核心概念 4.2 查询方法 4.3 定义rep ...

  7. Spring Data JPA 与 MyBatis 对比,你喜欢用哪个?

    来源:jianshu.com/p/3927c2b6acc0 概述 Spring Data JPA是Spring Data的子模块.使用Spring Data,使得基于"repositorie ...

  8. Spring Data JPA例子[基于Spring Boot、Mysql]

    关于Spring Data Spring社区的一个顶级工程,主要用于简化数据(关系型&非关系型)访问,如果我们使用Spring Data来开发程序的话,那么可以省去很多低级别的数据访问操作,如 ...

  9. springdatajpa命名规则_简单了解下spring data jpa

    公司准备搭建一个通用框架,以后项目就用统一一套框架了 以前只是听过jpa,但是没有实际用过 今天就来学习下一些简单的知识 什么是JPA 全称Java Persistence API,可以通过注解或者X ...

最新文章

  1. python子进程模块subprocess
  2. Scala函数的可变参数和参数默认值及带名参数
  3. 克制linux启动盘,制作Linux启动盘的四种方法
  4. 大学生计算机课程考试试题,大学生计算机基础课程考试系统研究与实现
  5. .NET Core开发实战(第13课:配置绑定:使用强类型对象承载配置数据)--学习笔记...
  6. Ubuntu MySQL 配置 time_zone
  7. 20145234黄斐《信息安全系统设计基础》第十周
  8. 买的是ARM指令集授权,不是已设计好的CPU核?
  9. 饿了么UI框架表单验证
  10. HCI opcode
  11. Docker-设置redis容器主从模式哨兵模式
  12. 科研画图都用什么软件
  13. 一篇难得的关于傅里叶分析的好文
  14. 【大数据开发必看】可视化BI神器---FineBI
  15. 2021-02-14
  16. alwayson的同步提交和异步提交
  17. 用深度学习LSTM炒股:对冲基金案例分析
  18. hydra的基本使用
  19. 12306.cn火车票自动订票软件
  20. 最长黑白相间连续串(有规律)

热门文章

  1. 什么是MES系统,实施难度大不大?
  2. HZNU2509 曲院风荷——折半搜索
  3. 人工智能,大数据,深度学习,机器学习(百度云581G学习资料免费分享)
  4. 贼野牧台服2200+心得
  5. ubuntu20.04下载安装有道词典
  6. matlab中sign函数的使用(提取符号)
  7. 【AI世界杯15强决战】中美英日德法印等15国战略大曝光
  8. SEGGER J-FLASH V7.82 下载链接
  9. VM虚拟机去虚拟化教程(三)修改内存品牌和序列号
  10. 有源阻尼抑制LCL滤波器固有谐振