首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java-Spring-1

自动寻找合适的类型注入,byType 2、@Qualifier("userDAOImpl") 存在多个相同类型时,指定固定的一个bean,和上面1配合使用 3、@Required 检查在配置中是否给该属性赋默认,...如果否,报错 4、@Autowired(required=false) 对应的bean不是必须的,【但是】,如果不存在,在程序中,调用的时候,会报错,影响对该bean的使用 5、@Resource(name..."> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean... <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager...如果不是,可以修改之: alter table tablename type=InnoDb 如果是用hibernate自动建表,而mysql数据库默认的建表类型不是InnoDb,需要修改配置文件:

57990
您找到你想要的搜索结果了吗?
是的
没有找到

JDBC 到 ORM 的事务实现

Hibernate 需要定义实体类和 hbm 映射关系文件(IDE 一般有工具生成)。Hibernate 可以使用 HQL、Criteria、Native SQL三种方式操作数据库。...where id=?...PROPAGATION_NEVER 总是非事务地执行,如果存在一个活动事务,抛出异常 PROPAGATION_NESTED 表示如果当前方法正有一个事务在运行中,该方法应该运行在一个嵌套事务中 ,被嵌...public(private,protected)方法上,虽然不报错,但是事务不起作用 如果采用spring+springmvc,context:component-scan重复扫描问题可能会引起事务失败...如使用mysql且引擎是MyISAM,事务会不起作用,原因是MyISAM不支持事务,可以改成InnoDB引擎 @Transactional注解开启配置,必须放到listener里加载,如果放到DispatcherServlet

64810

Hibernate配置文件详解-1

如果没有创建,创建数据表,如果已经创建,直接使用创建好的数据表,实际开发中常用。...auto-import:指定我们是否可以在查询语言中使用非全限定的类名,默认为true,如果项目中有两个同名的持久化类,最好在这两个类的对应的映射文件中配置为false class标签:配置实体类与数据表的映射关系...dynamic-update:动态更新,默认false。 开启动态更新,以修改news对象为例,news对象有4个属性:id,title,author,createTime。...access:Hibernate用来访问属性的策略。 generator:设置主键的生成策略。...formula:一个SQL表达式,定义了这个计算属性的。 access:Hibernate用来访问属性的策略。 lazy:延迟加载策略。 unique:表示该字段是否唯一,默认为false

1.3K20

Hibernate 的延迟加载(懒加载)简介1

什么是延迟加载: 在使用某些Hibernate方法查询数据时,Hibernate返回的只是一个空对象(除id外属性都为null),并没有真正查询数据库。...可以降低对数据库的访问次数 ---- 采用延迟加载的方法: session.load() 查询时不进行SQL查询,在使用对象时才执行SQL查询;效率高 query.iterate() 在查询时只查询了ID...当相关联的session没有关闭时.访问这些懒加载对象(代理对象)的属性(getId和getClass除外);hibernate会初始化这些代理.或用Hibernate.initialize(proxy...当相关联的session关闭后,在访问懒加载的对象将出现异常 Lazy:指相关联的属性什么时候抓取 Fetch:通过什么方式来进行抓取 select二次select语句查询 Join连接查询,lazy属性就不起作用...采用CGLIB技术在内存中动态生成的类型,该类型是原实体类的子类,并在子类中重写了属性的get方法。

1.3K20

day29_Hibernate学习笔记_01

查询,如果没有返回null   session.load(Class clazz, Serializable); 通过id查询,如果没有抛出异常   session.createQuery("hql...的取值可以是简单类名 name="Person"         table:数据库对应的表名         dynamic-insert="false" 是否支持动态生成insert语句,默认false...        dynamic-update="false" 是否支持动态生成update语句,默认false             如果设置true,hibernate底层将判断提供的数据是否为...null,如果为null,insert或update语句将没有此项。      ...                1.increment 数据库自己生成主键,先从数据库中查询最大的ID,将ID加1作为新的主键,不建议使用,存在线程并发问题                 2.identity

1.1K20

Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例

注意:JPA是一套规范,不是一套产品,那么像Hibernate,TopLink,JDO他们是一套产品,如果说这些产品实现了这个JPA规范,那么我们就可以叫他们为JPA的实现产品。...该参数的几种配置如下: create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因...validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新。...0 : page;// 如果page为负数修改为0,防止在首页点击上一页发生错误 Sort sort = new Sort(Sort.Direction.DESC, "id");//...---- 以上,我们就快速搭建好了一个CRUD+分页的后台实例,还用了比较流行的RESTful风格,粗略的感受了一下JPA的方便,还是挺爽的..没有复杂的Mapper文件,不用自动生成实体,甚至不用管SQL

1.5K10

Hibernate总结以及在面试中的一些问题.

属性 ④PO类属性应尽量使用基本数据类型的包装类型(区分空) 例如int---Integer long---Long ⑤不要用final修饰(将无法生成代理对象进行优化) OID 指与数据表中主键对应...inverse属性的默认false,表示对集合对象的修改会被反映到数据库中;inverse=false 的为主动方,由主动方负责维护关联关系。 ...应该在一方的设置 inverse=true ,多的一方设置 inverse=false(多的一方也可以不设置inverse属性,因为默认false),这说明关联关系由多的一方来维护。...注:单向one-to-many关联关系中,不可以设置inverse="true",因为被控方的映射文件中没有主控方的信息。 多对多: 属性在独立表中。inverse属性的默认false。...update语句,如果数据没有改变,不希望生成update 在hbm文件 元素 添加 select-before-update="true" <classname="cn.itcast.domain.firstcache.Book"table

1.6K120

hystrix降级初步学习

CommandKey:配置全局唯一标识服务的名称,比如,库存系统有一个获取库存服务,那么 就可以为这个服务起一个名字来唯一识别该服务,如果不配置,默认是简单类名。...默认true Circuit Breaker相关的属性 hystrix.command.default.circuitBreaker.enabled 用来跟踪circuit的健康性,如果未达标让request...默认20 hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds 触发短路的时间,当该设为5000时,当触发circuit...默认50 hystrix.command.default.circuitBreaker.forceOpen 强制打开熔断器,如果打开这个开关,那么拒绝所有request,默认false hystrix.command.default.circuitBreaker.forceClosed...if maxQueueSize == ­1,该字段将不起作用 hystrix.threadpool.default.keepAliveTimeMinutes 如果corePoolSize和maxPoolSize

66620

旧调重弹Hibernate与Ibatis区别——深入架构设计

但是,hibernate对数据库结构提供了较为完整的封装,hibernate的o/r mapping实现了pojo 和数据库表之间的映射,以及sql 的自动生成和执行。...hibernate把数据库和你隔离了,你不需要关注数据库是mysql还是oracle,hibernate来帮你生成查询的sql。...但问题也来了,如果你就要用某种数据库特有的功能,或者你就要让查询的sql完全符合你的心意,这就难了。 因为hibernate基本上可以自动生成,偶尔会写一些hql。...同样的需求,ibatis的工作量比hibernate要大很多。类似的,如果涉及到数据库字段的修改,hibernate修改的地方很少,而ibatis要把那些sql mapping的地方一一修改。...:对持续连接时间超过设定(毫秒)的连接进行检测; Pool.PingConnectionsNotUsedFor:对空闲超过设定(毫秒)的连接进行检测; 再看看Hibernate配置文件 <!

57940

SpringBoot系列教程JPA之指定id保存

) 大胆猜测,save 的执行过程逻辑如 首先根据 id 到数据库中查询对应的数据 如果数据不存在,新增(插入 sql 不指定 id如果数据存在,判断是否有变更,以确定是否需要更新 2....指定 id 那么问题来了,如果我希望当我的 po 中指定了数据库 id 时,db 中没有这条记录时,就插入 id 为指定的记录;如果存在记录,更新 要实现上面这个功能,自定义主键 id,那么我们就需要修改一下主键的生成策略了...是由ManulInsertGenerator来生成 /** * 自定义的主键生成策略,如果填写了主键id如果数据库中没有这条记录,新增指定id的记录;否则更新记录 * * 如果不填写主键...super.generate(s, obj); } } } 具体的主键生成方式也比较简单了,首先是判断 PO 中有没有主键,如果直接使用 PO 中的主键值;如果没有,就利用...,因为没有 id,所以插入的 sql 中也没有指定 id,使用 mysql 的自增来生成主键 id

2.9K50
领券