博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
智销功能_基本项目搭建
阅读量:7142 次
发布时间:2019-06-28

本文共 2972 字,大约阅读时间需要 9 分钟。

 

  sssdj:SpringMVC + Spring + SpringDataJpa-> 现在比较流行的一种设计(Spring全家桶)

  

  要集成三大框架(Spring+SpringMVC+SpringDataJpa)

   什么是JPA

  • JPA:(Java Persistence API) ORM的规范
  • JPA是规范,Hibernate是它的实现(不唯一,但最好)
  • 最底层的操作还是JDBC(引入驱动包)

  

  什么是ORM

  o(对象,java面向对象) r(关系,关系型数据库) m(映射)

  基本项目搭建

1.1使用 Maven搭建项目

  

1.2导入相应的jar包

  • 导包类型(hibernate核心包,JPA支持包,驱动包,测试包)
  • JDK1.8插件配置支持

  

2.1 使用工具生成 META-INF\persistence.xml

大家也可以手动创建

  • 快捷键 ctrl+alt+shift+s
  • 进行配置

image

  • 调整结构(如下)

image

  • persistence.xml

2.4 准备domain对象

//告诉JPA:这个类是要做实体化的/** * @Entity:我是一个实体类,JPA快来管我 * @Table(name = "t_employee"):我和哪些张是有关系的 * 如果不写,他就认为你有一个表叫:Employee */ import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "t_employee") public class Employee { /** * @Id:代表我是一个主键 * @GeneratedValue:我们认为主键是自增的 */ @Id @GeneratedValue private Long id; private String name; private String password; //getter,setter省略 }

2.5 基本功能测试

  • Persistence -> EntityManagerFactory -> EntityManager -> crud
  • 注意点:增删改需要事务 EntityManager可以拿到一个事务
/** * 在JPA中,所以增删改都需要我们去提交事务 *///拿到EntityManagerFactory(传入持久化单元的名称) EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("cn.itsource.jpa"); //拿出到实体管理对象 EntityManager entityManager = entityManagerFactory.createEntityManager(); //拿出一个事务 EntityManager里面有一个事务(只能拿到一个事务) //开始事务 entityManager.getTransaction().begin(); //persist:持久化(保存一条数据) entityManager.persist(employee); //提交事务 entityManager.getTransaction().commit(); //关闭资源 entityManager.close(); entityManagerFactory.close();

三.CRUD

先完成了工具类

//帮咱们拿到一个EntityManager对象public class JpaUtil { private static EntityManagerFactory factory; //加载时运行,且只运行一次 static { try { factory = Persistence.createEntityManagerFactory("cn.itsource.jpa"); } catch (Exception e) { e.printStackTrace(); } } //直接拿到EntityManager对象 public static EntityManager getEntityManager(){ return factory.createEntityManager(); } }

增删改需要添加事务

3.1 添加

entityManager.persist(employee);

3.2 修改

entityManager.merge(employee);

3.3 删除

先查询,再判断,最后删除

Employee employee = entityManager.find(Employee.class, id);if(employee!=null) {    //这里要求咱们传一个对象进去 entityManager.remove(employee); }

3.4 查询一条数据

传类型与id

entityManager.find(Employee.class,id);

3.1 查询所有

query对象(entityManager创建) jpql:面向对象的查询语言

entityManager = JpaUtil.getEntityManager();//使用查询对象,写JPQL:像SQL,但是更加简单(面向对象) //1.准备JPQL 不要写* ,from后面是一个类 //String jpql = "select o from cn.itsource.jpa.domain.Employee o"; // String jpql = "select o from Employee o"; String jpql = "from Employee"; //2.根据JPQL拿到查询对象 Query query = entityManager.createQuery(jpql); //3.返回所有数据 return query.getResultList();

四.建表策略

4.1 create-drop

先删除-> 再创建 -> 用完(EntityManagerFactory关闭)再删(测试)

4.2 create

先删除-> 再创建(测试)

4.3 update

  • 没有表就创建,有就修改
  • 修改只增不减(不改类型)

4.4 validate

验证功能(只验证domain中写好的属性)

 

转载于:https://www.cnblogs.com/yh9264426/p/10620578.html

你可能感兴趣的文章
企业L2TP ×××
查看>>
ecmall更换域名后,密码正确但后台无法登陆解决办法
查看>>
C#网络编程(基本概念)
查看>>
洛谷——P1227 [JSOI2008]完美的对称
查看>>
控制BGP选路
查看>>
php运用readfile函数给隐藏下载文件地址增加权限判断
查看>>
VMware vSphere5.1 打开console端延迟过大问题解决
查看>>
Objective-c的@property 详解
查看>>
atof
查看>>
cobbler基础安装
查看>>
mongodb shell 脚本
查看>>
三种返回mysql 插入一条记录返回该记录id方法
查看>>
再次理解JavaScript原型链和匿名函数
查看>>
饮水机自己发微博提醒水开了,来喝我吧
查看>>
Dao 常用方法记录
查看>>
Win XP的文件加密方法
查看>>
informix onbar备份恢复实践
查看>>
Objective-C: Using NSTimer
查看>>
使用Windows下的EFS
查看>>
Python 编程中常用的 12 种基础知识总结
查看>>