这只是一个好奇的问题,但我正在查看数据库并从一个表中提取数据,并在其中一个列上查询.列有四个可能的值null,0,1,2.当我运行查询时:
SELECT * FROM STATUS WHERE STATE != '1' AND STATE != '2';
Run Code Online (Sandbox Code Playgroud)
我得到与运行相同的结果:
SELECT * FROM STATUS WHERE STATE = '0';
Run Code Online (Sandbox Code Playgroud)
即在查询列的top命令中具有空值的行似乎从结果中省略,这是否总是在SQL中发生?
我正在通过Oracle SQL Developer运行我的命令.
我正在处理遗留代码,我经常看到方法调用具有来自同一对象的多个属性传递给方法:
update(user.getID(), user.getLanguage() etc...)
Run Code Online (Sandbox Code Playgroud)
这样做是否有明显的优点或缺点,或者我也可以传递用户对象(在这种情况下)并处理方法中的属性?
跟进:
很多优秀的答案,谢谢.对于问题中缺乏确切细节的道歉,但正如我所说的那样,我正在研究整个系统,这似乎是一个很好的简单例子.请随意将此问题转变为社区维基问题,因为没有人可以接受其他答案,因为他们都很好并且有正确的分数.
我正在为程序添加一些功能,以便我可以通过读取MIME数据来准确地确定文件类型.我已经尝试过几种方法:
方法1:
javax.activation.FileDataSource
FileDataSource ds = new FileDataSource("~\\Downloads\\777135_new.xls");
String contentType = ds.getContentType();
System.out.println("The MIME type of the file is: " + contentType);
//output = The MIME type of the file is: application/octet-stream
Run Code Online (Sandbox Code Playgroud)
方法2:
import net.sf.jmimemagic.*;
try
{
RandomAccessFile f = new RandomAccessFile("~\\Downloads\\777135_new.xls", "r");
byte[] fileBytes = new byte[(int)f.length()];
f.read(fileBytes);
MagicMatch match = Magic.getMagicMatch(fileBytes);
System.out.println("The Mime type is: " + match.getMimeType());
}
catch(Exception e)
{
System.out.println(e);
}
//output = The Mime type is: application/msword
Run Code Online (Sandbox Code Playgroud)
方法3:
import eu.medsea.mimeutil.*;
MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
File f = …Run Code Online (Sandbox Code Playgroud) 现在一直在四处看看,我对这个问题有点困惑.我希望能够获取输入流并在段中同时读取它.这些段不会相互交互,它们只是要在上载文件的数据库中插入或更新的值.是否可以通过设置段大小来同时读取输入流,然后在旋转新线程以处理转换和插入/更新之前跳过前进?
本质上,文件是一个ID列表(每行一个ID),但如果我可以指定一个分隔符,那将是更好的选择.有些文件可能很大,所以我想处理并将数据转换成段,以便在插入/更新到数据库之后可以释放JVM内存.这可能吗?如果有的话,那里有任何图书馆已经这样做了吗?
提前干杯谢谢,
阿列克谢蓝.
我想要做的是轻松地将实际的方法对象传递给另一个方法.这样我就可以创建一个通用的Joiner函数,该函数连接对象列表的给定方法,而不会只传入表示该方法的字符串.这在Java中是否可行,以便我可以使用以下语法:
joinOnMethod(String, Collections<T>, Method) e.g.
joinOnMethod(", ", someList, T.getName())
Run Code Online (Sandbox Code Playgroud)
其中T.getName()将getName()方法传递给列表中的每个对象,而不是传入方法本身的返回类型.
希望这足以满足我的需求,
阿列克谢蓝.
对不起,如果我的问题有点令人困惑,那就很难说.我想要实现一个集合(有点像地图但是对于单个值而不是对)在搜索其内容时执行散列.我正在努力使我的程序真正有效.目前,该程序使用HashMap并将数据库中的主键添加到它两次:
HashMap<Long, Long> userKeys = new HashMap<Long, Long>();
Some operations
userKeys.add(key, key);
Run Code Online (Sandbox Code Playgroud)
我可以使用哈希或地图来避免两次添加密钥吗?由于它是数据库中的主键,我知道不会有重复,因此我认为哈希是高效的.
我认为Vector可能是一个不错的选择但是当我查看contains()方法时,它会遍历每个条目,在这种情况下效率非常低.
我还看了一下HashSet,但不幸的是,从我看到的那里,没有提取值的方法可以使用它们,这与HashMaps.get(Object)方法不同.
期望的设置:
Collection<Long> userKeys = new Collection<Long>();
Some operations
userKeys.add(key);
Run Code Online (Sandbox Code Playgroud)
期望的操作:
userKeys.contains(key) < - 在这里使用哈希
userKeys.get(index)
谢谢先进的Alexei Blue.
我有一组对象,它们都是相同的对象类型.在该类型中,有一个我想要访问的属性 - 在这种情况下,它是将它添加到以逗号分隔的列表中:
String sep = ", ";
List<Item> items = db.findItems();
for (Item item : items)
{
result.append(item.getDescription() + sep);
} //for
return result.substring(0, results.length - sep.length());
Run Code Online (Sandbox Code Playgroud)
如果我可以直接从集合中的所有对象访问该属性,那么我可以调用Google Guava的Joiner函数:
return Joiner.on(", ").join(/*Description attribute collection here*/);
Run Code Online (Sandbox Code Playgroud)
我想到的结构类似于2D数组,其中每列代表一个属性,每行代表一个对象,所以我希望能够调用返回对象的特定行或特定列(属性)返回所有对象的属性集合.
Java或一个好的第三方是否有这样的数据结构,还是我需要创建自己的数据结构?
干杯,
阿列克谢蓝.
我有很多"形式"类,所有这些都扩展了Form.我有一个名为的抽象类FormService和扩展此类的特定表单服务.我想要做的是调用一个抽象方法populate(),它采用一种形式,从而通过继承为给定类型调用正确的服务.
所以我有类似的东西:
public abstract FormService {
public abstract void populate(Form form);
}
public TestFormService extends FormService {
public void populate(TestForm form) {
//populate
}
Run Code Online (Sandbox Code Playgroud)
哪种TestForm类型延伸Form.这是可能的,因为我似乎无法得到我想要的影响.
我想知道是否使用省略号来表示可选参数是个好主意?
public void update(Object object, boolean... checkFirst)
{
if (checkFirst[0])
{
...
} //if
} //update
Run Code Online (Sandbox Code Playgroud)
我正在使用连接到没有主键的数据库表的代码来允许多次插入(遗留代码所以请原谅任何不良做法的想法).因此,我没有使用两种方法(重载),而是认为我可以使用省略号来实现相同的效果.但你认为这会是一种可怕的做法吗?
干杯,
阿列克谢蓝.
java ×8
collections ×2
generics ×2
concurrency ×1
ellipsis ×1
file-type ×1
hash ×1
inheritance ×1
inputstream ×1
map ×1
methods ×1
mime-types ×1
null ×1
oracle ×1
parameters ×1
performance ×1
polymorphism ×1
sql ×1