前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Spring实战》摘录 - 20

《Spring实战》摘录 - 20

作者头像
用户1335799
发布2019-06-15 21:05:17
7270
发布2019-06-15 21:05:17
举报

191

问题:#11.2 | 什么是JPA

回答:Java持久化API(Java Persistence API,JPA)

192

问题:#11.2.1-1 | JPA定义了两种类型的实体管理器

A:

  • 应用程序管理类型(Application-managed):当应用程序向实体管理器工厂直接请求实体管理器时,工厂会创建一个实体管理器。在这种模式下,程序要负责打开或关闭实体管理器并在事务中对其进行控制。这种方式的实体管理器适合于不运行在Java EE容器中的独立应用程序。
  • 容器管理类型(Container-managed):实体管理器由Java EE创建和管理。应用程序根本不与实体管理器工厂打交道。相反,实体管理器直接通过注入或JNDI来获取。容器负责配置实体管理器工厂。这种类型的实体管理器最适用于Java EE容器,在这种情况下会希望在persistence.xml指定的JPA配置之外保持一些自己对JPA的控制。

193

问题:#11.2.1-2 | JPA中持久化单元是指什么

回答:持久化单元是同一个数据源下的一个或多个持久化类

194

问题:#11.2.1-3 | pring提供了多个JPA厂商适配器

A:

  • EclipseLinkJpaVendorAdapter
  • HibernateJpaVendorAdapter
  • OpenJpaVendorAdapter
  • TopLinkJpaVendorAdapter(在Spring 3.1版本中,已经将其废弃了)

195

问题:#11.2.1-4 | Hibernate的JPA适配器支持多种数据库,可以通过其database属性配置使用哪个数据库

A:

  • IBM DB2 --- DB2
  • Apache Derby --- DERBY
  • H2 --- H2
  • Hypersonic --- HSQL
  • Informix --- INFORMIX
  • MySQL --- MYSQL
  • Oracle --- ORACLE
  • PostgresQL --- POSTGRESQL
  • Microsoft SQL Server --- SQLSERVER
  • Sybase --- SYBASE

196

问题:#12.1-1 | Spring Data MongoDB提供了三种方式在Spring应用中使用MongoDB

A:

  • 通过注解实现对象-文档映射;
  • 使用MongoTemplate实现基于模板的数据库访问;
  • 自动化的运行时Repository生成功能。

197

问题:#12.1.1-1 | Spring Data MongoDB的必要配置

代码语言:javascript
复制
package orders.config:import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.mongodb.core.MongoFactoryBean;import org.springframework.data.mongodb.core.Mongooperations;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;import com.mongodb.Mongo;
@Configuration@EnableMongoRepositories(basePackages="orders.db") //启用MongoDB的Repository功能public class MongoConfig{  @Bean  public MongoFactoryBean mongo(){ //MongoClient bean     MongoFactoryBean mongo new MongoFactoryBean();    mongo.setHost("localhost");    return mongo;  }    @Bean  public Mongooperations mongoTempla(Mongo mongo){//MongoTemplate bean    return new MongoTemplate(mongo,"OrdersDB");  }}

198

问题:#12.1.1-2 | 借助@EnableMongoRepositories启用Spring

代码语言:javascript
复制
package orders.configimport org.springframework.context.annotation.Configuration;import org.springframework.data.mongodb.config.AbstractMongoconfiguration; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; import com.mongodb.Mongo;import com.mongodb.Mongoclient;
@Configuration@EnableMongoRepositories("orders.db")public class Mongoconfig extends AbstractMongoconfiguration{  @Override  protected String getDatabaseName(){ //制定数据库名称    return "OrdersDB";  }    @override  public Mongo mongo() throws Exception { //创建Mongo客户端    return new Mongoclient();  }}

199

问题:#12.1.1-3 | 创建MongoClient来访问需要认证的MongoDB服务

代码语言:javascript
复制
@Autowiredprivate Environment env;
@overridepublic Mongo mongo() throws Exception {  Mongocredential credential = Mongocredential createMongocRcredential(//创建 MongoDB凭证     env.getProperty("mongo. username"),    "OrdersDB",    env.getProperty("mongo.password").tocharArray());
  return new Mongoclient( //创建 MongoClient     new ServerAddress("localhost", 37017),    Arrays.asList(credential));}

200

问题:#12.1.1-4 | Spring Data MongoDB注解将Java类型映射为文档 package orders;import java.util.Collection;import java.util.LinkedHashset;import org.springframework.dataannotation.Id:import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; @Document //这是一个文档public class Order { @Id private String id;//指定ID @Field("client") private String customer;//覆盖默认的域名 private String type; private Collection<Item> items new LinkedHashSet<Item>(); public String getCustomer()( return customer; } public void setCustomer(String customer){ this customer customer; } public String getType(){ return type; } public void setType(String type){ this.type = type; } public Collection<Item> getItems(){ return items; } public void setItems(Collection<Item> items){ this.items= items; } public String getId(){ return id; }}

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-07,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 怀英的自我修炼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com