问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jpa执行mysql报空指针

发布网友 发布时间:2022-04-26 00:18

我来回答

3个回答

懂视网 时间:2022-05-07 17:14

bitsCN.com

  JPA,一套相当优秀的持久化规范,开始体验。


  1、我使用Hibernate对JPA提供的实现,下载hibernate-release-4.1.1.Final.zip。解压。

  在hibernate-release-4.1.1.Final/lib目录下有四个存放jar包的目录,其中

   hibernate-release-4.1.1.Final/lib/jpa 存放hibernate对JPA提供实现的jar

   hibernate-release-4.1.1.Final/lib/required 存放hibernate开发所需jar

  这两个目录下的所有jar是我们体验JPA所必需的。


  2、新建一个Java Project。

  2.1 导入hibernate-release-4.1.1.Final/lib/jpa目录和hibernate-release-4.1.1.Final/lib/required目录下得所有jar

  2.2 在项目的classpath路径下建立META-INF目录

   在META-INF目录下建立persistence.xml文件

    

 1  2  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  
输出schema创建DDL语句 -->23 24 25 26 27

  用的是mysql,请建立一个名叫jpa的数据库。无需手动建表,执行测试的时候会自动建表。


  3、项目视图如下:

  

 


  4、编写实体类。

  

 1 package com.cndatacom.jpa.entity; 2 3 import javax.persistence.Column; 4 import javax.persistence.Entity; 5 import javax.persistence.GeneratedValue; 6 import javax.persistence.Id; 7 import javax.persistence.Table; 8 9 @Entity10 @Table(name="t_user")11 public class User {12 13 /**14 * 主键15 */16 @Id17 @GeneratedValue18 private Long id;19 20 /**21 * 名字22 */23 @Column(name="name")24 private String name;25 26 /**27 * 密码28 */29 @Column(name="password")30 private String password;31 32 public Long getId() {33  return id;34 }35 36 public void setId(Long id) {37  this.id = id;38 }39 40 public String getName() {41  return name;42 }43 44 public void setName(String name) {45  this.name = name;46 }47 48 public String getPassword() {49  return password;50 }51 52 public void setPassword(String password) {53  this.password = password;54 }55 56 }


5、编写测试类。

  

 1 package com.cndatacom.jpa.test; 2 3 import javax.persistence.EntityManager; 4 import javax.persistence.EntityManagerFactory; 5 import javax.persistence.Persistence; 6 7 import org.junit.After; 8 import org.junit.Before; 9 import org.junit.Test;10 11 import com.cndatacom.jpa.entity.User;12 13 14 public class TestJPA {15 16 EntityManagerFactory emf = null;17 18 @Before19 public void before() {20  //根据在persistence.xml中配置的persistence-unit name 创建EntityManagerFactory21  emf = Persistence.createEntityManagerFactory("myJPA");22 }23 24 /**25 * 添加用户26 */27 @Test28 public void addUser() {29  30  //创建一个用户31  User user = new User();32  user.setName("叶开");33  user.setPassword("yekai");34  35  //创建实体管理器对象36  EntityManager em = emf.createEntityManager();37  //开启事务38  em.getTransaction().begin();39  //持久化对象40  em.persist(user);41  //提交事务42  em.getTransaction().commit();43  //关闭EntityManager44  em.close();45 }46 47 /**48 * 修改用户49 */50 @Test51 public void modifyUser() {52  EntityManager em = emf.createEntityManager();53  em.getTransaction().begin();54  //查找id为1的User55  User user = em.find(User.class, 1L);//User 的主键id为Long型56  user.setName("李坏");57  //进行更新58  em.merge(user);59  em.getTransaction().commit();60  em.close();61 }62 63 /**64 * 删除用户65 */66 @Test67 public void deleteUser() {68  EntityManager em = emf.createEntityManager();69  em.getTransaction().begin();70  //查找id为1的User71  User user = em.find(User.class, 1L);//User 的主键id为Long型72  //进行删除73  em.remove(user);74  em.getTransaction().commit();75  em.close();76 }77 78 /**79 * 关闭EntityManagerFactory80 */81 @After82 public void after() {83  if(null != emf) {84  emf.close();85  }86 }87 88 }

 


  6、一些说明。

  @Entity 将领域标注为一个实体,表示要保存到数据库中。

  @Table 指定在数据库中对应的表名

  @Id 对应的属性是表的主键

  @GeneratedValue 主键的产生策略,这里表示使用默认的GenerationType.AUTO

  @Column 属性对应数据库表中的列,name指定列名,不写name的话,属性名和列名一致。

  

 

  

bitsCN.com

热心网友 时间:2022-05-07 14:22

在老版本的MySQL 3.22中,MySQL的单表限大小为4GB,当时的MySQL的存储引擎还是ISAM存储引擎。但是,当出现MyISAM存储引擎之后,也就是从MySQL 3.23开始,MySQL单表最大*就已经扩大到了64PB了(官方文档显示)。也就是说,从目前的技术环境来看,MySQL数据库的MyISAM存储 引擎单表大小*已经不是有MySQL数据库本身来决定,而是由所在主机的OS上面的文件系统来决定了。

  而MySQL另外一个最流行的存储引擎之一Innodb存储数据的策略是分为两种的,一种是共享表空间存储方式,还有一种是独享表空间存储方式。
  当使用共享表空间存储方式的时候,Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成,一个表可以跨多个文件存在,所 以其大小*不再是文件大小的*,而是其自身的*。从Innodb的官方文档中可以看到,其表空间的最大*为64TB,也就是说,Innodb的单 表*基本上也在64TB左右了,当然这个大小是包括这个表的所有索引等其他相关数据。
  而当使用独享表空间来存放Innodb的表的时候,每个表的数据以一个单独的文件来存放,这个时候的单表*,又变成文件系统的大小*了。

热心网友 时间:2022-05-07 15:40

你打印 sb.toString()看看
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
低温还原粉化性检验方法 ...播放量破50亿,大胃王“浪胃仙”是如何在抖音崛起的? 网络直播间:新部落的建构及其亚文化特征 网络直播中吃播的文化输出 我用圆通快递从河南商丘发到洛阳几天能到 商丘圆通快递几点下班? 河南商丘到江苏南京圆通快递,大概要多久? 四大名著语录 “命中注定我爱你”真的好看么? 好看的偶像剧 命中注定我爱你 农村商业银行是不是农业银行 求助,jpa为含有复合主键如何建立一对多的关联 车厘子不就是大樱桃吗,为什么价格那么高? JPA枚举比较不等于失败问题,怎么解决 淘宝里面的车厘子为什么4年苗便宜? 烟台大樱桃树苗哪个品种好/烟台大樱桃树苗多少钱/烟台大樱桃苗 jpa分页查询怎么做 jpa中复合主键并且都是外键,请问怎么写注解 车厘子树苗哪里实地考察能批量选购? jpa自动截取过长字符串 一亩田车厘子树苗价格? 车厘子价格“腰斩”,国产大樱桃上市就“跳水”,到底是因为什么? 支付宝转帐手续费多少? 青椒回锅肉的做法 土豆回锅肉的做法 蚝油青椒回锅肉的做法,蚝油青椒回锅肉怎么做 青椒回锅肉的家常做法都有哪些啊?孕妇适合吃这道菜吗?大家知道吗? 家常菜青椒回锅肉,需要提前准备哪些食材呢? 青椒回锅肉片怎么做好吃 青椒回锅肉的做法二 青椒回锅肉的做法一 青椒回锅肉,回锅肉的家常做法,回锅肉怎么做好吃 jpa中怎样使用between jpa中的delete功能报错 jpa hibernate 不能映射 boolean spring data jpa orderby 可以加多个参数吗 怎样用JPA的EntityManager执行原生sql返回ResultSet-CSDN论坛 java中Spring data jpa通过Predicate查询时间段 国内最大原料药龙头股? 现在在西安加盟个旅游门市可行吗?客源怎么保证? 苏州中旅国际旅行社有限公司怎么样? 我想开家旅行社,挂靠那家比较靠谱? 中国旅行社..中国国际旅行社.还有青年旅行社...分别是哪一年成立的?华侨旅行社是最早的对外旅行社吗?? 中国有哪些国有旅行社 国旅 中旅 青旅这三家的全名叫什么呢? 港中旅和中旅是不是一个旅行社? 中国国旅国际旅行社怎么样 中旅和国旅有什么区别 小学生的自我介绍怎么写一年级 怎么才能让电脑的设置恢复初始化? 怎么让电脑回复出厂设置 怎样让电脑恢复出厂设置