本文指出OpenJDK7是Java SE7的官方参考实现.
有人可以确认Java 8的情况也是如此吗?Open JDK8是Java SE8的参考实现吗?
在首字母缩略词JAX-RS中,X代表什么?
我知道RS代表Restful Service而J代表Java和A代表API.那么X呢?
我正在 Java 中创建一个方法来打开 zip 文件并动态处理 zip 中的 Excel 文件。我正在 Java 中使用 API ZipFile,并且希望按内存中的原样处理 zipfile,而不将其提取到文件系统。
到目前为止,我可以遍历 zip 文件,但无法列出 zip 文件中目录下的文件。Excel 文件可以位于 zip 文件的文件夹中。下面是我当前的代码,在我遇到问题的部分中有注释。任何帮助是极大的赞赏 :)
public static void main(String[] args) {
try {
ZipFile zip = new ZipFile(new File("C:\\sample.zip"));
for (Enumeration e = zip.entries(); e.hasMoreElements(); ) {
ZipEntry entry = (ZipEntry) e.nextElement();
String currentEntry = entry.getName();
if (entry.isDirectory()) {
/*I do not know how to get the files underneath the directory
so that I can process them */
InputStream is = zip.getInputStream(entry); …Run Code Online (Sandbox Code Playgroud) 我正在使用 javax.validation.Validation 来验证 jpa 实体。我总是针对相同的实体进行验证。
我想知道是使用一个验证器进行所有验证还是每次验证时都实例化一个新的验证器更好。
同样,每次我想使用它时实例化一个新的验证器在计算方面有多昂贵?
选项 1:为每个验证实例化新的验证器。
public class Validator
{
public static void main(String[] args)
{
//Validation1
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Entity entityToValidate = new Entity();
entityToValidate.setEmail("NOT_A_VALID_EMAIL@@@tomanyat.com");
Set<ConstraintViolation<T>> constraintViolations = validator.validate(entityToValidate);
//Validation2 (Note that validator has been created yet a second time !! )
Validator validator2 = factory.getValidator();
Entity entityToValidate2 = new Entity();
entityToValidate.setEmail("NOT_A_VALID_EMAIL@@@tomanyat.com");
Set<ConstraintViolation<T>> constraintViolations2 = validator2.validate(entityToValidate);
}
}
Run Code Online (Sandbox Code Playgroud)
选项 2:用于所有验证的单个验证器。
public class Validator
{
public static void main(String[] args)
{
//Validator …Run Code Online (Sandbox Code Playgroud) 我试图使用Google Javascript API从名为data的变量渲染GeoJSON多边形.叠加层无法正常渲染,我不知道为什么.有人可以告诉我如何在地图上渲染多边形吗?
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
var x=new google.maps.LatLng(40.75597,-73.974228);
function initialize() {
var data = { "type" : "Polygon", "coordinates" : [ [ [ -73.974228, 40.75597 ], [ -73.983841, 40.742931 ], [ -74.008133, 40.75307500000001 ], [ -73.998131, 40.765915 ], [ -73.974228, 40.75597 ] ] ] }
var mapProp = {
center:x,
zoom:4,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
map.data.loadGeoJson(data);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我想知道 mongodb 对 mongo 文档中嵌入文档的深度是否有限制。我不关心 mongo 文档的 16MB 限制,只关心允许的后续嵌入文档的数量。换句话说,在下面的示例中,子嵌入文档允许重复多少次,直到 mongo 不允许将此文档插入到 mongodb 集合中。
{
child: {
child: {
child : {
(child repeated n times)
}}}}
Run Code Online (Sandbox Code Playgroud) 嗨好stackoverflow的人,
我正在研究用于审计目的的SQL SERVER 2008 R2上的表的触发器,它应该在UPDATE查询发送执行之前添加UPDATE_TS字段的时间戳.结果是更新发生时,要在查询时更新的原始值加上触发器设置的UPDATE_TS的附加值.
我已经编辑了这个问题,因为我听说内部连接在触发器的性能方面与不使用它们相比并不是很重.我不确定这是否会在触发器上增加额外开销,而不是避免触发器中的内部连接.
我正在研究的例子如下.感谢您的任何帮助和建议!
示例表称为MY_TABLE:
CREATE TABLE [myschema].[MY_TABLE](
[MY_TABLE_ID] [bigint] IDENTITY(1,1) NOT NULL,
[FIELD_TO_UPDATE] [varchar](255) NOT NULL,
[CREATE_TS] [datetime] NULL,
[UPDATE_TS] [datetime] NULL),
PRIMARY KEY (MY_TABLE_ID))
Run Code Online (Sandbox Code Playgroud)
TRIGGER创建:
CREATE TRIGGER [myschema].[my_table_update_ts_trigger] ON [mydb].[myschema].[MY_TABLE]
INSTEAD OF UPDATE
AS
BEGIN
UPDATE INTO MY_TABLE ([FIELD_TO_UPDATE],[UPDATE_TS])
SELECT ins.FIELD_TO_UPDATE, GETDATE() FROM INSERTED as ins
END
Run Code Online (Sandbox Code Playgroud) 我有一个类型的几何对象(com.vividsolutions.jts.geom.Geometry).它目前处于纬度,经度形式,我想翻转坐标使其经度纬度,以便我可以使用GeoJSON格式为mongodb.
我看到的约束是:a)我想要翻转坐标的输入是Geometry对象.b)Geometry对象可以是Polygon类型或Multipolygon.c)我想在类型转换为多边形/多边形之前翻转坐标
我试过geo.reverse()但它不起作用.
同样,我尝试过使用:CRSAuthorityFactory factory = CRS.getAuthorityFactory(true); CoordinateReferenceSystem crs = factory.createCoordinateReferenceSystem("EPSG:4326");
另一种选择,我没有看到它的工作.
谢谢!
我试图渲染具有不同填充颜色但仍来自geoJson的多边形,并且在动态渲染后也可以这样做.我真的希望看到这两种方法.
我当前的代码在geojson中设置了颜色,但它只是渲染为默认值(黑色).
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
var x=new google.maps.LatLng(40.75597,-73.974228);
function initialize()
{
var data = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"fillColor": "blue"
},
"geometry": {"type":"Polygon","coordinates":[[[-73.98779153823898,40.718233223261],[-74.004946447098,40.723575517498],[-74.006771211624,40.730592217474],[-73.99010896682698,40.746712376146], [-73.973135948181,40.73974615047701],[-73.975120782852,40.736128627654],[-73.973997695541,40.730787341083],[-73.983317613602,40.716639396436],[-73.98779153823898,40.718233223261]]]}
},
{
"type": "Feature",
"properties": {
"fillColor": "red"
},
"geometry": {"type":"MultiPolygon","coordinates":[[[[-73.98779153823898,40.718233223261],[-73.987373113632,40.718062457927],[-73.986815214157,40.717785979789],[-73.989978364944,40.71747697345301],[-73.983317613602,40.716639396436],[-73.983081579208,40.717111043043],[-73.982888460159,40.717346865093],[-73.982352018356,40.718347066574],[-73.98201942443798,40.719119569628],[-73.981890678406,40.719477357478],[-73.981322050095,40.72055070949],[-73.981043100357,40.720941015022],[-73.98057103156998,40.721599650417],[-73.98014187812798,40.72217696744],[-73.979691267014,40.722803066157],[-73.978382349014,40.724600018078],[-73.977502584457,40.725795248823],[-73.97659063339198,40.727006719305],[-73.97616147994998,40.727673425196],[-73.975646495819,40.728340124407],[-73.973972797394,40.730657258741],[-73.973897695541,40.730787341083],[-73.973962068558,40.731080025424],[-73.974262475967,40.732242619953],[-73.974434137344,40.732811714764],[-73.975056409836,40.735128693386],[-73.975120782852,40.735746540724],[-73.975120782852,40.736128627654],[-73.975002765656,40.736648912711],[-73.974788188934,40.737039123833],[-73.973811864853,40.738453619965],[-73.973361253738,40.739128340284],[-73.973243236542,40.739429117016],[-73.973135948181,40.73974615047701],[-73.97337198257398,40.739884344077],[-73.97344708442698,40.739868086021],[-73.97357583046,40.739876215049],[-73.97401571273798,40.740095698439],[-73.97419810295098,40.740136343432],[-73.974477052689,40.74012821443501],[-73.975796699524,40.74070537072101],[-73.980302810669,40.742591254937],[-73.983424901962,40.74393247626],[-73.988628387451,40.746119015457],[-73.99010896682698,40.746712376146],[-73.99053812027,40.746143400247],[-73.99099946022,40.74549313611601],[-73.9923620224,40.74363984846],[-73.999196653366,40.741111815805],[-73.995484113693,40.739355955233],[-73.996857404709,40.737445591319],[-73.998284339905,40.735486395176],[-74.00009751319898,40.733014961731],[-74.000591039658,40.732291399699],[-74.000998735428,40.731771080565],[-74.001084566116,40.731641000145],[-74.001771211624,40.730592217474],[-74.00286555290198,40.72847021127901],[-74.003208875656,40.727705947263],[-74.00350928306598,40.727006719305],[-74.004056453705,40.725600110575],[-74.00466799736,40.724160948332],[-74.00488257408098,40.723705613684],[-74.004946947098,40.723575517498],[-74.003230333328,40.72327466909401],[-74.003080129623,40.723266538038],[-74.002522230148,40.723030736958],[-73.99914264679,40.721380106009],[-73.998337984085,40.721022328386],[-73.997876644135,40.721526469028],[-73.997340202332,40.72134758085],[-73.994904756546,40.72053444671],[-73.99302721023598,40.719867669303],[-73.990634679794,40.719127701191],[-73.98779153823898,40.718233223261]]]]}
}
]
};
var mapProp = {
center: new google.maps.LatLng(40.75597, -73.974228),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
map.data.addGeoJson(data);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 在SQL Server 2008 R2中,我希望创建一个模仿Oracle BEFORE INSERT触发器行为的触发器,其中任何插入的触发器都会在持久化之前将UPDATE_TS和CREATE_TS更新为当前时间戳.
我现在看到的问题是错误:只有在使用列列表且IDENTITY_INSERT为ON时,才能指定表'MY_TABLE'中标识列的显式值
我不确定将SET IDENTITY INSERT表打开然后在触发器中将SET IDENTITY INSERT表关闭是否是个好主意.也许这是一个可能的解决方案.
请告知最佳做法.
示例表称为MY_TABLE:
CREATE TABLE [myschema].[MY_TABLE](
[MY_TABLE_ID] [bigint] IDENTITY(1,1) NOT NULL,
[FIELD_TO_UPDATE] [varchar](255) NOT NULL,
[CREATE_TS] [datetime] NULL,
[UPDATE_TS] [datetime] NULL),
PRIMARY KEY (MY_TABLE_ID))
Run Code Online (Sandbox Code Playgroud)
触发:
CREATE TRIGGER my_table_create_ts_trigger
ON [mydb].myschema.MY_TABLE
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO MY_TABLE([MY_TABLE_ID], [FIELD_TO_UPDATE], [CREATE_TS], [UPDATE_TS])
SELECT i.MY_TABLE_ID, i.FIELD_TO_UPDATE, GETDATE(), GETDATE()
FROM INSERTED as i
END
Run Code Online (Sandbox Code Playgroud) java ×5
database ×2
geojson ×2
google-maps ×2
sql ×2
sql-server ×2
t-sql ×2
entities ×1
extract ×1
geotools ×1
hibernate ×1
javascript ×1
jax-rs ×1
jpa ×1
jts ×1
mongodb ×1
terminology ×1
zip ×1