- 博客(33)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 JPA之联合主键[复合主键]
方法1:通过@IdClass注解指定复合主键对象//复合主键对象:public class IdClass implements Serializable{ private Integer a_id; private Integer b_id; public Integer getA_id() { return a_id; } pu...
2018-07-13 10:28:46 15828 1
原创 Spring Data JPA 之Repository相关子接口
Repository有以下三个子接口CrudRepository<实体类类名,主键ID类型>PagingAndSortingRepository<实体类类名,主键ID类型>JpaRepository<实体类类名,主键ID类型>CrudRepository接口封装了基本的增删改查相关方法。有以下几个方法: 方法名 用途 S...
2018-07-12 17:10:57 636
原创 Spring Data JPA之Query注解与Modifying注解
Spring Data支持JPQL语句。 通过@Query注解可以轻松使用JPQL语句。@Query("SELECT t FROM TestEntity t WHERE t.name LIKE %?1%")List<TestEntity> selectLikeName(@Param("name")String name);Spring Data JPA的JPQL支持占位...
2018-07-12 15:14:33 2186
原创 Spring Data JPA 之Repository 接口相关
Repository 接口是 Spring Data 的一个核心接口,它不提供任何方法,开发者需要在自己定义的接口中声明需要的方法。引自尚硅谷Spring Datappt文件。Repository接口定义如下: Repository&lt;T, ID extends Serializable&gt;Spring Data可以让我们只定义接口,只要遵循 Spring Data的规范,...
2018-07-12 13:21:55 516
原创 Redis之Java连接Jedis
Jedis jedis = new Jedis([服务地址],[监听端口]);通过jedis对象可以操作redis,api与直接在redis命令行中操作类似。JedisPool类似Jdbc,频繁的创建连接、销毁连接会消耗大量的计算机资源。所以成熟的数据库连接jar中都会带有数据库池。在Jedis提供的jar包中可以得出,Jedis也支持数据库池。redis.clients.je...
2018-07-11 16:48:02 191
原创 Redis主从复制[下篇]
命令:SALVEOF NO ONE 从原来的主从关系中脱离,将当前从库变成主库。该命令在主库挂掉时可以将指定某个从库改为主库,只影响本从库的主从关系,而不影响其他从库的主从关系。当主库重新在线时,使用过该命令的从库也不会恢复原来的主从关系。在现在的工作环境中,手动设置主从关系不现实。此时就用到了redis的哨兵模式(sentinel)新建一个sentinel.conf配置文件,文件内容...
2018-07-11 12:52:29 154
原创 Redis主从复制[上篇]
主要命令:SLAVEOF设置当前登录的redis库为从库。 - 格式: SLAVEOF [服务器地址] 端口号 - 示例: SLAVEOF 127.0.0.1 6379 设置当前登录的redis为从库,跟随127.0.0.1服务器端口6379开启的redis[127.0.0.1服务器上6379开启的为主库]。INFO REPLICATION 查看当前redis库的主从关...
2018-07-11 11:14:56 119
原创 Redis之消息订阅与接收(Redis作为消息中间件)[了解: 一般用的是ActiveMQ等其他的JMS架构]
命令: SUBSCRIBE 订阅消息。 - 格式: SUBSCRIBE [订阅频道1] [订阅频道2] .... 多个订阅频道以空格隔开 - 示例: SUBSCRIBE c1 c2 订阅了频道c1和频道c2。消息订阅命令是阻塞的,一但命令执行成功就会等待订阅的消息发布,此时如果想结束订阅可以按快捷键: ctrl + C,结束命令[不过这个命令是直接退出redis命令]命...
2018-07-11 09:33:34 2820
原创 Redis中事务
可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞(中途数据变更等突发情况)。个人理解: redis中事务类似一个队列,且redis是部分支持事务(也就是没有像关系型数据库那样强制要求原子性[即不保证原子性])。redis事务作用:一个队列中,一次性、顺序性、排他性的执行一系列命令。重点:没有隔离级别的概念:队列...
2018-07-10 17:34:38 253
原创 Redis之AOF(Append Only File)
以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。———引用自尚硅谷相关文件AOF和RDB两种持久化策略可以同时使用,Redis会先选用AOF策略,也就是启用AOF后会先加载AOF文件进行数据加...
2018-07-10 15:24:00 397
原创 Redis之RDB(Redis DataBase)
简介: 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。原理: Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完...
2018-07-10 11:32:27 263
原创 Redis设置密码[了解]
命令: config set requirepass [密码]示例: config set requirepass 123456 设置密码为123456当设置好密码后,redis会立即生效,此时需要通过如下命令进行密码验证: auth [设置的密码]通过auth命令进行密码验证。...
2018-07-09 22:49:19 146
原创 Redis五大数据类型之ZSet(Scores Set)类型-常用命令
命令: zadd 格式: zadd [key值] scores[key] value示例: zadd people 10 v1 20 v2 30 v3 40 v4 50 v5 60 v6 70 v7 创建一个zset名为people,它的key:10值为v1,key:20值为v2…以此类推注意: scores[key]值必须为数字,这样zset才可以排序进行比较。命令: zrang...
2018-07-09 15:38:35 8601
原创 Redis五大数据类型之Hash类型-常用命令
命令: hset 格式: hset [key值] key value示例: hset people id 11 name xiling 创建一个hash名为people,它的id值为11,name值为xiling[测试跟hmset貌似没啥区别…]注意: 如果设置的hash存在,则覆盖旧值,如果不存在则创建并保存。命令: hget 格式: hget [key值] key示例: ...
2018-07-09 14:43:24 1248
原创 Redis五大数据类型之Set类型-常用命令
命令: sadd 格式: sadd [key值] v1 v2 v3...示例: sadd set01 v1 v2 v3 创建一个set01,值为一个set集合,值为:”v1 v2 v3”注意: 如果key存在,且也是一个set集合,那么新设置的集合中相同的数据不会被添加,不同数据会追加到key的新值中。如果指定的key存在,但是值非set集合,则会报错。命令: smembers ...
2018-07-09 13:29:09 2222
原创 Redis五大数据类型之List类型-常用命令
命令: lpush 格式: lpush [key值] value1 value2 vlaue3...示例: lpush list01 1 2 3 4 5 6 7 添加key为list01的值为list类型: 1 2 3 4 5 6 7注意: redis的list类型为栈结构,lpush意思为左侧开始进栈,那么最后进栈则会在栈顶。命令: rpush 格式: rpush ...
2018-07-09 11:55:37 286
原创 Redis五大数据类型之String类型-常用命令
命令: incr 格式: incr [key值]示例: incr k1 自增长1注意: 要想自增长对应的key必须存在且value是数字才可以,例如”1”等。如果value是”v1”、”v2”…这类带有除数字以外的其他字符则会报错。命令: decr 格式: decr [key值]示例: decr k1 自减少1注意: 要想自减少对应的key必须存在且value是...
2018-07-09 10:40:26 161
原创 Redis相关: key操作常用命令
命令:keys [匹配符]示例: keys * 查看当前所在库的所有key值。返回: 所有key值序列。命令:exists key[某个key值]示例: exists k1 查看当前库是否存在名为k1的key值。返回: 1表示存在,0表示不存在。命令:move key[某个key值] DB[目标数据库]示例: move k1 2 将key为k1的数据移动到2号库中...
2018-07-08 15:55:05 126
原创 Redis安装及基本使用[Linux版本]
安装Redis首先从redis官网或github上下载redis的安装压缩包。目前最新版:redis-4.0.10复制安装包至Linux系统中。解压缩redis压缩包:tar -zxvf redis-4.0.10.tar.gz解压完毕后,进入解压出来的文件夹,通过命令:make 安装redis。此处有坑:使用make需要linux系统上装有gcc[一个C编译工具] 如...
2018-07-07 12:00:14 202
原创 Shiro之授权
Shiro中授权功能通过继承AuthorizingRealm实现类或实现Realm接口,实现doGetAuthorizationInfo抽象方法来实现授权功能。AuthorizingRealm与AuthenticatingRealm间关系如图:从上图可知,AuthorizingRealm是AuthenticatingRealm的子类,且他们都为CachingRealm的子类。而Cach...
2018-07-05 14:49:25 139
原创 Shiro在Realm下允许用户指定匹配策略
查看源代码得出:Shiro中默认已经有以下匹配策略:AllSuccessfulStrategyAtLeastOneSuccessfulStrategyFirstSuccessfulStrategyShiro与spring整合后在多Realm下修改匹配策略如下:<bean id="authenticator" class="org.apache.shiro.authc....
2018-07-05 10:12:38 454
原创 Shiro多Realm认证
查看源代码,发现:assertRealmsConfigured();Collection<Realm> realms = getRealms();if (realms.size() == 1) { return doSingleRealmAuthentication(realms.iterator().next(), authenticationToken);} ...
2018-07-05 09:57:38 307
原创 Shiro之加密加盐及凭证验证
MD5加密在Shiro中使用极其简单:shiro中工具类:SimpleHash//SimpleHash构造器SimpleHash(String algorithmName, Object source, Object salt, int hashIterations)参数解释: 参数名 参数解释 参数数据类型 algorithmName 加密类型...
2018-07-04 21:34:10 3293 1
原创 Shiro与Spring简单集成
Spring核心配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocat...
2018-07-03 21:21:22 110
原创 JPA与Spring的简单整合
spring配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:conte...
2018-07-03 14:51:32 158
原创 JPA之JPQL中使用ORDER BY和GROUP BY
String jpqlOrder = "SELECT o FROM OrderByAndGroupBy o ORDER BY o.id DESC";Query createQuery = entityManager.createQuery(jpqlOrder);List resultList = createQuery.getResultList();System.out.println(r...
2018-07-03 11:42:40 8502 1
原创 JPA之JPQL查询缓存
原始代码String sql = "SELECT t FROM TestJPQL t WHERE id = ?";Query setHint = entityManager.createQuery(sql);setHint.setParameter(1, 1);List resultList = setHint.getResultList();System.out.println(...
2018-07-03 11:21:56 2232
原创 JPA之JPQL基础查询
@NamedQuery(name="test_jpql",query="SELECT t FROM TestJPQL t")@Entity@Table(name="TEST_JPQL")public class TestJPQL { private Integer id; private String name; private String address; ...
2018-07-03 11:08:21 288
原创 JPA之二级缓存
在persistence配置文件中添加缓存相关配置<?xml version="1.0" encoding="UTF-8"?><persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins
2018-07-02 17:57:39 502
原创 JPA双向多对多关联关系
主表实体类代码@Entity@Table(name = "TEACHER")public class Teacher { private Integer id; private String teacherName; private Integer teacherAge; private List<ClassName> classNameLi...
2018-07-02 17:22:48 350
原创 JPA双向一对一外键关联关系
主表实体类代码@Id@GeneratedValue(strategy=GenerationType.AUTO)public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(name = "NAME")...
2018-07-02 16:57:55 1540
原创 JPA单项一对多外键关联
一对多即一个对象中包含又另外一个对象的集合。 User主表代码@Table(name="USER")@Entitypublic class User { private Integer id; private String username; private String userpassword; private String useraddress...
2018-07-02 14:07:19 6730
原创 JPA单项多对一关联关系
多对一即n多1关系。 在从表中与主表有外键关系的列的get方法上添加@ManyToOne注解后,该属性则表示为外键,该外键关系为其属性类型对应的类型。用JoinColumn注解设置外键的列名。示例代码如下:主表实体代码:@Table(name="USER")@Entitypublic class User { private Integer id; priva...
2018-07-02 11:55:10 416
空空如也
mac下mvn命令必须要管理员权限吗
2017-11-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人