我在一台计算机上作为单个用户使用SVN很多
现在我想在多台计算机上分享我的东西
到目前为止,我一直在检查 file://c:/myproject
我想结帐 svn://mycomputer/myproject
如何将第一个映射到第二个?
我在导航Java规则以推断泛型类型参数时遇到了一些麻烦.考虑以下类,它具有可选的list参数:
import java.util.Collections;
import java.util.List;
public class Person {
private String name;
private List<String> nicknames;
public Person(String name) {
this(name,Collections.emptyList());
}
public Person(String name,List<String> nicknames) {
this.name = name;
this.nicknames = nicknames;
}
}
Run Code Online (Sandbox Code Playgroud)
我的Java编译器给出以下错误:
Person.java:9: The constructor Person(String, List<Object>) is undefined
Run Code Online (Sandbox Code Playgroud)
但是Collections.emptyList()返回类型<T> List<T>,而不是List<Object>.添加演员表无济于事
public Person(String name) {
this(name,(List<String>)Collections.emptyList());
}
Run Code Online (Sandbox Code Playgroud)
产量
Person.java:9: inconvertible types
Run Code Online (Sandbox Code Playgroud)
使用EMPTY_LIST而不是emptyList()
public Person(String name) {
this(name,Collections.EMPTY_LIST);
}
Run Code Online (Sandbox Code Playgroud)
产量
Person.java:9: warning: [unchecked] unchecked conversion
Run Code Online (Sandbox Code Playgroud)
而以下更改会使错误消失:
public Person(String name) …Run Code Online (Sandbox Code Playgroud) 我的MYSQL数据库中有一个表,它没有主键,但在两列上有一个唯一键.当使用MyEclipse的Hibernate反向工程工具为该表创建映射时,它会生成两个类,一个用于在表本身之后命名,另一个用于"Id"后缀.似乎大多数有用的方法最终都出现在Id类中,所以它似乎是你要实例化并保存以保存数据的方法.我可以理解创建Id类是为了表示表/映射对象中的唯一行,但是将它拆分为两个类的用途是什么,然后是使用非Id的用途-suffixed类?
我的同事认为你可以只用一个类来完成同样的工作,并嘲笑对没有主键的这些表使用逆向工程.另一方面,我认为MyEclipse开发人员比我更聪明,并且有一个非常好的理由这样做.在那儿?
我有一个Freemarker模板,其中包含一堆占位符,在处理模板时会为其提供值.如果提供了userName变量,我想有条件地包含模板的一部分,如:
[#if_exists userName]
Hi ${userName}, How are you?
[/#if_exists]
Run Code Online (Sandbox Code Playgroud)
但是,FreeMarker手册似乎表明if_exists已被弃用,但我找不到另一种方法来实现这一点.当然,我可以简单地提供一个额外的布尔变量isUserName并使用如下:
[#if isUserName]
Hi ${userName}, How are you?
[/#if]
Run Code Online (Sandbox Code Playgroud)
但是如果有一种检查userName是否存在的方法,那么我可以避免添加这个额外的变量.
检测10列/ 50K行表中重复项的最有效方法是什么?我正在使用MSSQL 8.0
给定:禁止从一个线程构造ADO Connection对象并将其提供给另一个线程.两个线程是不同的公寓,即使第一个线程永远不会再触摸它(甚至没有保持对它的引用!),这没关系.
该ADO Connection对象是由ThreadA创建的,ThreadA是唯一一个在任何情况下都可以使用该Connection对象的线程.
现在将"ADO Connection"替换为"ADO.NET Connection".是否适用同样的规则?
我知道.NET框架中的大多数对象都不是线程安全的.例如,SDK中的DictionaryEntry结构说:
线程安全此类型的
任何公共静态成员都是线程安全的.任何实例成员都不保证是线程安全的.
据我所知,不是线程安全意味着如果我要从不同的线程访问它,我必须同步对象的访问.这一切都很好,我可以确保一次只有一个线程访问该对象:
lock (myObject)
{
...
}
Run Code Online (Sandbox Code Playgroud)
但是有一些东西不仅仅是线程安全的.
在COM中,(某些)对象被绑定到创建它的" 公寓 ".一旦在一个公寓上构建了对象,就禁止您从另一个公寓访问它 - 无论您从多个同时进行的线程访问中保护该对象多少.
.NET中是否存在类似的概念?
我知道你被禁止从创建它的线程以外的线程访问控件 - 即使你以线程安全的方式使用它.这在MSDN上没有记录:
线程安全
只有以下成员是线程安全的:如果已经创建了控件的句柄,则为BeginInvoke,EndInvoke,Invoke,InvokeRequired和CreateGraphics.在后台线程上创建控件的句柄之前调用CreateGraphics会导致非法的跨线程调用.
当您从单个线程创建和使用异常时,没有提到控件抛出异常 - 当该线程不是应用程序启动时创建的第一个线程时.
但是任意物体呢?关于什么:
public class MyClass
{
int _number;
public int Number { get { return _number; } set { _number = value; } }
}
MyClass myObject = new MyClass();
Run Code Online (Sandbox Code Playgroud)
只要我同步访问myObject,两个线程就可以与它通信了吗?
同样适用于:
List<Object> sharedList = new …Run Code Online (Sandbox Code Playgroud) 我有以下实体类(在Groovy中):
import javax.persistence.Entity
import javax.persistence.Id
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
@Entity
public class ServerNode {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id
String firstName
String lastName
}
Run Code Online (Sandbox Code Playgroud)
和我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="NewPersistenceUnit">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Icarus"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="create"/>
</properties>
<class>net.interaxia.icarus.data.models.ServerNode</class>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
和脚本:
import javax.persistence.EntityManager
import javax.persistence.EntityManagerFactory
import javax.persistence.Persistence
import net.interaxia.icarus.data.models.ServerNode
def factory = Persistence.createEntityManagerFactory("NewPersistenceUnit")
def manager = …Run Code Online (Sandbox Code Playgroud) 前提:即将开展的项目的要求包括除了授权用户之外没有人可以访问某些数据.这通常很好,但这种情况并不常见.这些要求规定,即使程序员或任何其他IT员工也无法访问此信息.(他们希望我存储它而不能看到它.)
在我提出的所有场景中,我总能找到一种访问数据的方法.让我来介绍其中一些.
方案I:限制实时数据库上的表,以便只有SQL管理员可以直接访问它.
黑客1:我推出了一项更改,将数据发送到另一个表以供日后查看.此外,SQL管理员可以查看数据,这打破了要求.
方案II:加密数据,以便需要密码才能解密.该密码仅供用户知道.每次创建新记录时以及每次检索旧记录中的数据时都需要它.加密/解密将在JavaScript中发生,因此密码永远不会被发送到服务器,在那里它可以被记录或嗅探.
Hack II:推出一个更改,记录javascript中的按键并将它们发回服务器,以便我可以检索密码.或者,推出一个简单地将未加密数据存储在隐藏字段中的更改,该字段可以发布到服务器以供以后查看.
场景III:与场景II相同,除了加密/解密发生在我们无法控制的网站上.这个神奇的网站将允许用户输入密码和加密或纯文本数据,然后使用javascript来解密或加密该数据.然后,用户可以只复制加密文本并将其放入字段中以获取新记录.他们还必须使用此站点查看旧记录的纯文本.
Hack III:除了在他们的系统上安装一个完整的密钥记录器,我不知道如何打破这个.
因此,场景III看起来很有前途,但对用户来说这很麻烦.还有其他可能性我可以忽略吗?
我有一个C#应用程序,它是Web服务的客户端.我的一个要求是允许捕获我发送的SOAP,这样如果出现问题,我可以修复错误,或者证明问题出在我正在调用的服务中.
我的WebReference代理服务类System.Web.Services.Protocols.SoapHttpClientProtocol像往常一样派生.如果我有一个魔杖,我会使这个基类实现一个OnPost我可以处理的事件,将SOAP写入我的日志并继续.
没有像WireShark那样运行数据包嗅探器,是否有一种简单的方法来获得这种级别的日志记录?
java ×3
hibernate ×2
mysql ×2
.net ×1
c# ×1
database ×1
encryption ×1
freemarker ×1
generics ×1
groovy ×1
jpa ×1
myeclipse ×1
rdbms ×1
security ×1
soap ×1
sql ×1
sql-server ×1
svn ×1
svn-checkout ×1
t-sql ×1
templates ×1
web-services ×1