- 浏览: 73807 次
- 性别:
- 来自: 北京
最新评论
-
L504919167:
有个问题,“1.一对一主键关联 ”的时候。使用XML方式配置时 ...
hibernate和jpa注解关联总结 -
pangbuddy:
men4661273 写道一个都没看过,,,我也不是神,那就是 ...
程序员有影响的书 -
men4661273:
一个都没看过,,,我也不是神,那就是我out了
程序员有影响的书
文章列表
spring bean中注入enum类型
- 博客分类:
- java
在spring的bean中注入enum类型
1 定义枚举类型
public enum EnumType {
TRANSACTION,
EXTENDED
}
2 定义要注入枚举类型的bean
package example;
public class Client {
private EnumType persistenceContextType;
public void setPersistenceContextType(EnumType type) {
this.persistenceC ...
maven 在eclipse 中配置下载源代码
- 博客分类:
- maven
在java编程中,现在好多开源的第三方软件都使用maven管理了,比如经常使用的spring,在官网都找不到下载地址了,提供了maven的下载地址,有的时候想看看某些软件的源代码,maven也提供了下载源代码的功能,只要配置下就可以了,下面是详细步骤。
step 1
在装好了的maven的根目录,比如我的是d:/maven,打开conf/settings.xml文件,在<profiles> </profiles> 元素下加入子元素
<profile>
<id>downloadSources</id>
& ...
spring的FactoryBean
- 博客分类:
- spring
一直对spring配置的LocalSessionFactoryBean这个bean感到疑惑,下面是spring的bean配置。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx=&quo ...
js中字符串转换为日期和比较大小
- 博客分类:
- javascript
在做前端校验的时候,要做日期比较的校验,在js中把字符串转化为日期,一时之间还真不知道在js中怎么把一个字符串格式的日期转化为Date,查看了一些资料,在此分享下。
下面以调用js中Date(year,month,day)来生成一个日期对象。 ...
hibernate和jpa注解关联总结
- 博客分类:
- hibernate
用hibernate和jpa annotation 大概一年多了,今天闲来无事,对他们关联关系元数据写法做一个总结。
1.一对一主键关联
这个在实际项目中用的比较少,大部分是通过用外键做关联的,这里用用户和手机号举个例子,用户和手机号是一对一的关系,代码如下:
User实体
package com.own.model;
import java.io.Serializable;
public class Users implements Serializable{
private static final long serialVersionUID = ...
默认情况下,在hibernate启动的时候,会为每个实体类生成简单的读取,删除,更新,创建语句,它是怎么生成更新的呢,它怎么知道更新的列,生成更新所有列的sql语句,如果值没有修改,则被设置为它的旧值,如果表的列比较多,即使只更新了一个列,也会生成很长的sql语句,必须关闭启动时生成sql语句,hibernate提供了dynamic-insert和dynamic-update属性,用来关闭生成sql语句,看下面例子。
持久化类
package com.own.model;
import java.io.Serializable;
public class Goods impl ...
项目一直都用的hibernate,很少对分页查询写sql语句,这次做项目用的mybatis,mybatis的内部分页不是很好,用的是jdbc的游标移动,它是基于内存分页的,所以要自己写sql语句,就总结一下几种主流数据库的分页写法
1. mysql
mysql的分页比较简单,mysql数据库提供了分页处理的关键字 例如表的名称叫 procuct
select * from product limit 0,10
limit 后面是两个整数,第一个整数是开始的行号,第二个是要取得数据的记录数,比如上面的sql语句会查询出第一条到第十条记录,它是从开始行号的下一条开始取数据的。
2. ...
javascript正则表达式
- 博客分类:
- javascript
今天学习了正则表达式在javascript中的应用,在这里做个总结。
正则表达式的应用场景
1.用于某种格式的验证,比如验证邮箱,是否是数字等,在web应用程序中可以做前台表单验证
2.替换内容
3.查找内容
正则表达式语法
一 限 ...
由于项目需要,要定时的把文件和目录删掉,以前很少做文件删除,都是去创建文件和读取文件,就找到了java的api文档去看有没有删除的方法,找到File类,java的File没有目录与文件的区分,都用File类表示,找到了一个方法。
File.delete();
可怎么测试就是删除不了,文件加依然存在,郁闷了,没办法就硬着去读file.delete()方法的说明文档
Deletes the file or directory denoted by this abstract pathname. If this pathname denotes a directory, then the di ...
数据库事物乐观锁和悲观锁
- 博客分类:
- java ee
数据库事物单个逻辑单元工作执行的一系列操作,就是一些sql语句,也可以是多条,一个update操作就是一个事物。
事物具有四种特性
1.原子性
事物必须是原子工作单元,要么都执行成功(也就是说所有的sql语句都执行成功),要么都不执行(所有的sql语句都不执行)。
2. 一致性
事务在完成时,必须使所有的数据都保持一致状态。
3.隔离性
允许多个用户对数据进行并发访问,而不破环数据的完整行和正确性,同时,并发事物的修改必须与其他并发事物隔离,一般是通过加锁实现。
4.持久性
事物完成后,数据必须永久的保存到数据库中。
事物并发访问如果不设置事物的隔离级别,就会带来如下问 ...
代理模式是一种很常用的设计模式,spring的aop实现就使用了代理模式,它的特点是代理类与目标类实现相同的接口,代理类并不真正实现服务,而是通过调用目标对象的方法来实现服务的。
代理又分为两种。
1 静态代理:由我们手工编写并编译成字节码文件。在程序运行前,字节码文件已存在。
2 动态代理:在程序运行时,同过反射机制生成。
静态代理比较简单,这里就不说了,主要说一下动态代理
下面用jdk提供的api来实现动态代理,代码如下:
package com.util;
import java.lang.reflect.InvocationHandler;
import java.lang ...
struts2 Action 测试
- 博客分类:
- struts 2
以前从来没有测试过Action,今天在struts的doc看到struts提供了一个junit插件,可以对action进行单元测试,这个插件是从struts 2.1.1开始有的,下面是一个小例子。
首先要搭建环境,struts2的jar包就说了,还要引入测试的jar包如下图
这里引入了spring的jar包,这个插件引用了spring的MockHttpServletRequest的模拟对象
struts配置文件
<package name="testAction" extends="struts-default" > ...
jpa规范提供了EntityManager接口来操作数据库,它定义了一些操作数据库的方法,在这里介绍几个重要的方法,就是crud方法。
1.persist(Object entity)方法
这个方法把一个实体加入持久化上下文中,也就是缓存中,在事务提交或者调用flush()方法的时候,把这个实体保存到数据库中(执行insert语句),如果实体已存在,则抛出EntityExistsException异常,缓存则不存在了。
2.find(Class<T> entityClass,Object primaryObject)
根据主键从数据库中查询一个实体,这个方法首先从缓存中去查 ...
spring事务管理
- 博客分类:
- java ee
spring 提供了声明事务管理机制,在应用程序中可以让spring来统一管理事务,简化编程提高开发效率。
在这里以spring管理jpa事务为例
使用@PerstenceContext注解为应用注入实体管理器也就是EntityManager对象,简化的写一下代码,这样EntityMa ...
spring+jpa+简单泛型dao
- 博客分类:
- java ee
spring+jpa的整合
数据库文件
/*
Navicat MySQL Data Transfer
Source Server : mysql
Source Server Version : 50165
Source Host : localhost:3306
Source Database : testdb
Target Server Type : MYSQL
Target Server Version : 50165
File Encoding : 65001
Date: 2 ...