SpringBoot持久化层操作支持(二)NOSQL篇
来源:互联网 发布:淘宝绑定支付宝 编辑:程序博客网 时间:2024/06/12 00:45
NoSQL:非关系型数据库。拥有关系型数据库没有的优点。
1.springboot整合mongodb
pom文件:
<dependencies> <!-- mongodb支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <!--H2数据库支持 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> <!--JPA支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!--嵌入式Mongodb--> <!--<dependency>--> <!--<groupId>de.flapdoodle.embed</groupId>--> <!--<artifactId>de.flapdoodle.embed.mongo</artifactId>--> <!--</dependency>--></dependencies>
配置配置文件:
spring.data.mongodb.uri=mongodb://localhost:27017/test#spring.data.mongodb.port=27017#spring.data.mongodb.authentication-database=#spring.data.mongodb.database=test#spring.data.mongodb.field-naming-strategy=#spring.data.mongodb.grid-fs-database=#spring.data.mongodb.host=localhost#spring.data.mongodb.password=#spring.data.mongodb.repositories.enabled=true#spring.data.mongodb.username=
实体
@Datapublic class Customer { @Id public String id; public String firstName; public String lastName; public Customer() {} public Customer(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } @Override public String toString() { return String.format( "Customer[id=%s, firstName='%s', lastName='%s']", id, firstName, lastName); }}service层:
public interface CustomerRepository extends MongoRepository<Customer, String> { Customer findByFirstName(String firstName); List<Customer> findByLastName(String lastName);}其中MongoRepository和Jpa的类似,MongoRepository的实现如下:
@NoRepositoryBeanpublic interface MongoRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> { <S extends T> List<S> save(Iterable<S> var1); List<T> findAll(); List<T> findAll(Sort var1); <S extends T> S insert(S var1); <S extends T> List<S> insert(Iterable<S> var1); <S extends T> List<S> findAll(Example<S> var1); <S extends T> List<S> findAll(Example<S> var1, Sort var2);}这里,Springboot对Mongodb的支持,采用直接编写的方式。实现CommandLineRunner接口,实现run方法。在一运行的时候就执行对《》Mongodb操作的代码
@SpringBootApplicationpublic class SpringbootMongodbApplication implements CommandLineRunner { @Autowired private CustomerRepository repository; public static void main(String[] args) { SpringApplication.run(SpringbootMongodbApplication.class, args); } @Override public void run(String... args) throws Exception { // 情况所有 repository.deleteAll(); System.out.println(repository.count()); // 保存 repository.save(new Customer("JinWen1", "ZiShang1")); repository.save(new Customer("JinWen2", "ZiShang2")); System.out.println("-------------------------------"); for (Customer customer : repository.findAll()) { System.out.println(customer.getId()); } System.out.println("--------------------------------"); System.out.println(repository.findByFirstName("JinWen1")); System.out.println("--------------------------------"); for (Customer customer : repository.findByLastName("ZiShang2")) { System.out.println(customer); } }}简单的插入新数据,删除数据,打印数据。最后执行结果如下:
2.SpringBoot对Redis的支持
pow文件:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency></dependencies>配置文件:
spring.redis.host=localhostspring.redis.port=6379#spring.redis.password=spring.redis.database=1spring.redis.pool.max-active=8spring.redis.pool.max-wait=-1spring.redis.pool.max-idle=500spring.redis.pool.min-idle=0spring.redis.timeout=0dao层
@Repositorypublic class RedisDao { @Autowired private StringRedisTemplate template; public void setKey(String key,String value){ ValueOperations<String, String> ops = template.opsForValue(); //1分钟过期 ops.set(key,value,1, TimeUnit.MINUTES); } public String getValue(String key){ ValueOperations<String, String> ops = this.template.opsForValue(); return ops.get(key); }}测试:
@RunWith(SpringRunner.class)@SpringBootTestpublic class RedisDaoTest { public static Logger logger= LoggerFactory.getLogger(RedisDaoTest.class); @Autowired RedisDao redisDao; @Test public void testRedis(){ redisDao.setKey("name","JinWen"); redisDao.setKey("age","21"); logger.info(redisDao.getValue("name")); logger.info(redisDao.getValue("age")); }}
阅读全文
0 0
- SpringBoot持久化层操作支持(二)NOSQL篇
- SpringBoot持久化层操作支持(一)SQL篇
- 持久数据层框架设计(二)
- 二、持久层是什么
- 《深入浅出hibernate》(4)持久层操作
- Hibernate持久层操作
- Hibernate 持久层操作
- NoSql之Redis持久化
- 持久化与持久层
- 持久层、持久化、ORM
- NoSQL之Redis---持久化(persistence)概念原理
- NoSQL之Redis---持久化(persistence)示例
- noSQL-redis学习(四) -- redis持久化
- J2EE持久层持久化上下文传播总结(续)
- Spring持久层(二)Spring 命名JdbcTemplate 的例子
- spring整合使用持久层框架mybatis(二)
- SpringBoot对非关系型数据库NoSql的支持
- [Database]持久化层
- java中创建对象的几种方式
- .Net学习笔记-.Net基础1.1 变量与运算
- 数据结构13————二叉树的线索化
- 18CStripe
- Android UI——SpannableString详细解析
- SpringBoot持久化层操作支持(二)NOSQL篇
- linux 防火墙配置
- toad for oracle 出现Can't initialize OCI. Error -1
- java中的final关键字
- Python 安装setuptools方法
- jquery 完成checkBox完成全选\全不选\反选的功能
- 序章(简述机器学习的历史和派系)
- MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网)
- 376. Wiggle Subsequence