jpa & hibernate & mybatis
petercnmei
这个作者很懒,什么都没留下…
展开
-
分页显示列表实例
server--------------------------------------- public void testJpaSpeciationExecutor(){ int pageNo=0; int pageSize=5; PageRequest pageRequest=new PageRequest(pageNo, pag原创 2017-02-17 16:12:51 · 1271 阅读 · 0 评论 -
jdbc访问的基础实例
package javaTest;import java.io.BufferedReader;import java.io.InputStreamReader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Resul原创 2014-04-28 16:15:03 · 382 阅读 · 0 评论 -
hibernate访问数据库的几种方式
package com.carInsur.model.dao;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import org.apache.commons.logging.Log;import org.a原创 2014-04-29 15:33:07 · 1546 阅读 · 0 评论 -
oracle hibnate 分页取数
SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM T33_CARINSURANCE_ORDER) A WHERE ROWNUM )WHERE RN >= 5;SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM T33_CARINSURA原创 2014-06-11 15:16:54 · 614 阅读 · 0 评论 -
hibernate取记录总数
public int getMaxRow(String brchNo,String sDate, String eDate, String carID, String statusInput,String companyNo, String codeNo) {try {Session session = getHibernateTemplate().getSessionFactor原创 2014-06-13 16:28:56 · 1039 阅读 · 0 评论 -
jdbcTemplate的queryForList
jdbcTemplate的queryForList的使用方法如下,它不一样的地方是,它获得的结果,会再放到一个map里去:List rows = jdbcTemplate.queryForList("SELECT * FROM USER"); Iterator it = rows.iterator(); while(it.hasNext()) { Map u转载 2014-06-27 14:54:36 · 1319 阅读 · 0 评论 -
hibernate重要查询语句
public List getRenewInsurByCarNo(String carNo) {System.out.println("getRenewInsurByCarNo *********************** " + carNo); //carNo = carNo + " ";List list = new ArrayList();Detac原创 2015-04-24 20:38:37 · 458 阅读 · 0 评论 -
spring-data-jpa+hibernate 各种缓存的配置演示
本文所有测试用代码在https://github.com/wwlleo0730/restjplat 的分支addDB上 目前在使用spring-data-jpa和hibernate4的时候,对于缓存关系不是很清楚,以及二级缓存和查询缓存的各种配置等等,于是就有了这篇初级的jpa+hibernate缓存配置使用的文章。 JPA和hibernate的缓存关系,以及系统demo环境说转载 2017-02-09 10:47:26 · 444 阅读 · 0 评论 -
Hibernate SQL查询 addScalar()或addEntity()
Hibernate除了支持HQL查询外,还支持原生SQL查询。 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。该接口是Query接口的子接口。 执行SQL查询步骤如下: 1、获取Hibernate Session对象 2、编写S转载 2015-04-15 14:57:10 · 364 阅读 · 0 评论 -
xml映射文件中使用sequence生成器时要加上用户名
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">schema="FAPDB"> FAPDB.SEQ_T33_carInsurance_orderLog原创 2014-04-25 10:03:35 · 733 阅读 · 0 评论 -
hibernate映射关系
XML是和类的对象一一应对映射的。里面一个有id原创 2014-04-09 10:31:56 · 392 阅读 · 0 评论 -
利用log4j显示hibernate打印sql中的参数
利用log4j显示hibernate打印sql中的参数大家都知道在 hibernate.cfg.xml 配置文件中添加以下三条配置,就可以在控制台显示执行的sql:[html] view plain copy property name="show_sql">trueproperty> property name转载 2017-02-08 15:27:19 · 6640 阅读 · 0 评论 -
不能不用jpa的理由
jpa虽然在处理复杂查询的时候,非常需要学习和探索。但是,如果只用其中一部分功能,另一部分功能想办法取代它,会更累。比如,在处理级联时,我们需要用到page自动分页处理,如果想通过原生处理SQL,那在处理SQL时,就要在SQL里面做分页处理,从多少记录开始,到多少记录结束。现在重要的是,能保证在眼前的问题,能用jpa解决就可以了,其它的事,以后碰到再说原创 2017-02-24 11:11:29 · 1371 阅读 · 0 评论 -
spring jpa使用联合主键
@Testpublic void testAirlineRepository(){System.out.println(airlineRepository);Airline al = new Airline();al.setId(new AirlinePK("aa", "bb"));al.setName("l2");airlineRepository.sav原创 2017-01-24 16:40:39 · 4511 阅读 · 0 评论 -
hibernate annotation 之mappedBy 与 @JoinColumn区别
1.一对多的映射(one-to-many)[java] view plain copy @Entity @Table(name="t_classroom") public class ClassRoom { private int id; private String className;原创 2017-02-06 16:09:59 · 555 阅读 · 0 评论 -
jpa使用原生SQL update和insert
@Testpublic void testExecuteUpdate(){String jpql = "UPDATE Customer c SET c.lastName = ? WHERE c.id = ?";Query query = entityManager.createQuery(jpql).setParameter(1, "YYY").setParameter(2, 12);原创 2017-02-10 17:53:24 · 24809 阅读 · 0 评论 -
jpa specification条件查询
spring data jpa 通过创建方法名来做查询,只能做简单的查询,那如果我们要做复杂一些的查询呢,多条件分页怎么办,这里,spring data jpa为我们提供了JpaSpecificationExecutor接口,只要简单实现toPredicate方法就可以实现复杂的查询1.首先让我们的接口继承于JpaSpecificationExecutor /*原创 2017-02-15 09:55:44 · 9131 阅读 · 0 评论 -
关于一对多的实体映射
比如 用户 对 订单(one to many)@Entitypublic class Customer {private Set orders = new HashSet @JoinColumn(name="CUSTOMER_ID") //, mappedBy="customer"@OneToMany(fetch=FetchType.EAGER, cascade={原创 2017-02-06 16:26:50 · 501 阅读 · 0 评论 -
数据库乱码
CREATE TABLE `tb_diary` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(60) NOT NULL, `address` varchar(50) NOT NULL COMMENT '日记保存的地址', `writeTime` timestamp NOT NULL DEFA原创 2013-11-27 14:58:15 · 535 阅读 · 0 评论 -
jdbcTemplate的取值方法和注意事件
注意事件:如果SQL里面写的是trim(t.name), 那在取出来的时候也要memberInfo.setMemberName(map.get("trim(t.name)")String sql = "select trim(t.name), trim(t.idnumber), trim(t.mobile), " +"trim(t.email), trim(t.insureae原创 2015-02-02 16:06:20 · 978 阅读 · 0 评论 -
mybatis list数据XML写法
SELECT FROM it_t_bid_project aa.project_id in #{projectIDList[${index}]} 说明,程序中JAVA有一个ItTBidProject对象,对象里面有一个List projectIDList;现在需要in proje原创 2016-07-13 15:56:42 · 2195 阅读 · 0 评论 -
jpa的一级和二级缓存
jpa的一级和二级缓存一级缓存:比如:Customer customer1 = entityManager.find(Customer.class, 1);Customer customer2 = entityManager.find(Customer.class, 1);那么,在查询中,其实只查询了,一次,因为第二次其实已经在一级缓存中了但是,Customer cus原创 2017-02-09 09:29:27 · 3222 阅读 · 0 评论 -
jpa hibernate的三种缓存机制
缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓转载 2017-02-09 10:59:58 · 3347 阅读 · 0 评论 -
sql之left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------------------------表A记录如下:aID aNum1转载 2017-02-09 15:18:56 · 260 阅读 · 0 评论 -
JAVA写入Mysql中文乱码解决方法
页面传值中有中文的时候,可以使用filter来搞掂,可是好容易System.out.println可以出中文了,插入到Mysql里,还是乱码。(超,你的免费空间可能也是这个问题)怎么办呢,做到以下几点:1。创建数据库的时候: CREATE DATABASE `Db`转载 2017-02-20 15:41:44 · 2668 阅读 · 1 评论 -
jpql多表级联子查询
JPQL 多表查询String jpqlString = "from Customer c join c.orders l where l.id = 1)";Query qu = (Query) entityManager.createQuery(jpqlString);List list = qu.getResultList();System.out.printl原创 2017-02-09 15:19:44 · 4126 阅读 · 0 评论 -
使用createNativeQuery做原始的字段映射处理
public void testNativeQuery(){ Query query = entityManager.createNativeQuery("select id, name, age from t_user"); query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_原创 2017-02-09 17:21:43 · 5242 阅读 · 0 评论 -
jpa多表联查和无表映射JPQL处理
特别要注意,em.createQuery("select new com.atguigu.jpa.noTable.Abc(b.imsi, b.imsig, a.sipss, b.mdn, c.ki) " + "from A a, B b, C c where a.imsi=b.imsi and b.imsig=c.imsig").getResultList();转载 2017-02-10 09:12:08 · 2886 阅读 · 1 评论 -
Eclipse 通过JPA自动生成注解实体
摘要: Hibernate管理数据库能够很好的屏蔽数据库的差异性并能很好的将对象和数据库操作对应,最初使用hibernate生成大量的xml文件描述实体略显臃肿,注解形式编程成为我倾向的选择,下面使用JPA+Oracle生成注解实体bean。 hibernate是JPA最常用的实现之一,而且hiberante自身也对注释语法进行了支持。现在再不用去看那一堆堆的XML映射了。而且e转载 2017-02-10 16:43:43 · 2451 阅读 · 0 评论 -
spring jpa关于detached状态的对象的更新与保存
不管一个对象是不是有人工ID值,只要在保存前,这个对象有ID值entityManger.merge(entity);就会自动更新,如果数据库没有这个记录,也会自动保存原创 2017-02-02 12:04:12 · 2341 阅读 · 0 评论 -
spring jpa 联合主键更好用的办法
当表中一个主键不能唯一标识一条记录的时候,就需要使用联合主键了,下面是使用JPA注解实现联合主键的代码1 首先需要建立一个复合主键类,用来存放需要生产联合主键的属性,该类需要实现序列化。package com.ericsson.adp.entity.cons;import java.io.Serializable;public class ConsumerGroup转载 2017-02-02 12:45:14 · 8699 阅读 · 1 评论 -
jpa对象的保存和更新
jpa保存和更新有几个方法 1 使用JpaRepository中的save方法这个方法是对persist方法的封装,如下@Transactionalpublic S save(S entity) {if (entityInformation.isNew(entity)) {em.persist(entity);return entity;} else {原创 2017-02-08 16:45:48 · 40461 阅读 · 0 评论 -
JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
save返回的对象和save前是一样的,里面调用的是persistentmerge不一样,返回的对象是新的对象,和原来的不一样 public void persist(Object entity)persist 方法可以将实例转换为 managed( 托管 ) 状态。在调用 flush() 方法或提交事物后,实例将会被插入到数据库中。 对转载 2017-02-06 16:56:41 · 746 阅读 · 0 评论 -
JPA Entity的生命周期
JPA即Java Persistence API,是Java EE中针对持久化数据提供的规范。在使用JPA中,我们经常会提到Entity,Entity就是在内存中短暂存活,在数据库中被持久化了的对象。Entity和数据库中的表映射,也就是我们常说的ORM。我们可以持久化一个Entity,删除一个Entity或者通过Java Persistence Query Language(JPQL)来查询转载 2017-02-02 11:31:26 · 2051 阅读 · 0 评论 -
对Jpa中Entity关系映射中mappedBy的理解
一。mappedBy 单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段 数据库中1对多的关系,关联关系总是被多方维护的即外键建在多方,我们在单方对象的@OneToMany(mappedby=” “) 把关系的维护交给多方对象的属性去维护关系 对于mappedBy复习下: a) 只有OneToOne,OneToMany,ManyToMany上转载 2017-02-06 15:40:59 · 14888 阅读 · 2 评论 -
spring jpa 级联的属性操作
下面是@ManyToOne=============================================================== CascadeType.PRESIST 级联持久化(保存)操作(持久保存拥有方实体时,也会持久保存该实体的所有相关数据。) CascadeType.REMOVE 级联删除操作(删除一个实体时,也会删除该实体的所原创 2017-02-02 14:57:26 · 5267 阅读 · 0 评论 -
通过native sql来获取多个表的杂交类
先讲需求,比如出一张报表,从多个数据库表中取数据,合成一个表,这里就需要一个表对应的实体类,然后用native sql来查询,同时,对类元素和SQL列进行映射-----------------------------------------------------方法就是自定义Repository比如一个PersonReport(人的报表)先写一个PersonReportDao接口原创 2017-01-25 19:11:26 · 488 阅读 · 0 评论 -
spring jpa 延迟加载
最关键一句 prop key="hibernate.enable_lazy_load_no_trans">trueprop>但是,另一个没有测试过,就是网页对 对象的延迟加载,下面第二种配置以后可以试试bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContai转载 2017-02-01 16:11:09 · 4557 阅读 · 0 评论 -
hibernate.hbm2ddl.auto的值的解释和配置
create:表示启动的时候先drop,再createcreate-drop: 也表示创建,只不过再系统关闭前执行一下dropupdate: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新 在本机开发调试初始化数据的时候可以选择create、up转载 2017-01-24 10:19:31 · 473 阅读 · 0 评论 -
spring jpa当中N对M级联关系整理
----------------------------------------------------------------------------------------------------多对一,比如:多个订单对应一个用户,order对应 customermanyToOne,在order类中,定义customer元素,在这里,需要@JoinColumn(name="CUST原创 2017-02-02 15:07:38 · 1159 阅读 · 0 评论