我目前正在JSP/Servlets中开发一个Web应用程序.
该应用程序允许用户上传每个用户帐户的图像文件.
存储图像的最佳方法是什么?
在回答之前,请考虑以下我想要的功能;
我现在正在使用MySQL,但可能有可能转移到不同的数据库.
我可以将图像存储为平面文件,但我希望该admin帐户可以选择备份整个数据库并在以后重新加载.理想情况下,备份/重新加载也应该与图像一起使用.(即使备份是从不同的物理机器完成的,并且重新加载是从不同的机器完成的)
使用BLOB/CLOB是解决问题2的选项.
但是,如果我的数据库变得非常大,该怎么办?
我有一个现有的数据库.我需要从中生成Java中的模型类.是否有任何工具/库可以让我这样做.如果它可以将数据库中的实体关系模拟到模型类中,那将是非常有帮助的.
如果工具/库仅与一个数据库供应商一起工作,则可以接受.我将在那里创建一个数据库,然后生成模型.
提前致谢.
编辑:如果我设法生成模型,我可能会使用Hibernate作为ORM框架.
我有以下课程
public class MyClass
{
private static final Logger logger = Logger.getLogger(MyClass.class);
static
{
logger.info("some text");
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以安全地假设,当我们到达时logger.info,log4j系统已初始化并准备发出日志?
看来如果我能够做一个Logger.getLogger()有效的Logger实例,那就意味着Log4j被初始化了,对吧?
我正在努力下载一个软件上的文件,这是我得到的,它的sucesfully下载,我也可以取得进展,但还有一件事,我不知道该怎么做.测量下载速度.我很感激你的帮助.谢谢.这是当前的下载方法代码
public void run()
{
OutputStream out = null;
URLConnection conn = null;
InputStream in = null;
try
{
URL url1 = new URL(url);
out = new BufferedOutputStream(
new FileOutputStream(sysDir+"\\"+where));
conn = url1.openConnection();
in = conn.getInputStream();
byte[] buffer = new byte[1024];
int numRead;
long numWritten = 0;
double progress1;
while ((numRead = in.read(buffer)) != -1)
{
out.write(buffer, 0, numRead);
numWritten += numRead;
this.speed= (int) (((double)
buffer.length)/8);
progress1 = (double) numWritten;
this.progress=(int) progress1;
}
}
catch (Exception ex)
{
echo("Unknown Error: …Run Code Online (Sandbox Code Playgroud) 下面编码的多态性有什么区别吗?基本上方法调用的绑定有区别吗?
多态类型 1:
class A
{
public void method()
{
// do stuff
}
}
class B extends A
{
public void method()
{
// do other stuff
}
}
Run Code Online (Sandbox Code Playgroud)
现在我用 A 做 B 的事情
A a = new B();
a.method();
Run Code Online (Sandbox Code Playgroud)
多态类型2:
public interface Command
{
public void execute();
}
public class ReadCommand implements Command
{
public void execute()
{
//do reading stuff
}
}
public class WriteCommand implements Command
{
public void execute()
{
//do writing stuff
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个类可能会在初始化期间抛出任何运行时异常.我希望这个类是一个单例,因为在内存中保存多个对象的成本很高.我在另一堂课中使用那门课.
我的用例如下:
Controller.Parent必须使用相同的Controller实例.Controller
构造函数可能会抛出异常. 所以我检查我的Controller实例是否null在我尝试对其进行"获取"时Controller,如果是,我会尝试再次实例化它.
以下是我的代码:
class Parent
{
private static volatile Controller controller;
private static final Object lock = new Object();
static
{
try
{
controller = new Controller();
}
catch(Exception ex)
{
controller = null;
}
}
private Controller getController() throws ControllerInstantiationException
{
if(controller == null)
{
synchronized(lock)
{
if(controller == null)
{
try
{
controller = new Controller();
}
catch(Exception ex)
{
controller = …Run Code Online (Sandbox Code Playgroud) 假设我有以下代码
public synchronized void method()
{
if(something == null)
{
something = new SomeThing();
}
//do something
}
Run Code Online (Sandbox Code Playgroud)
现在假设在一个多线程环境中,一个线程[线程1]进入该方法并在它执行之后new Something();但在它能够分配之前被抢占something.然后另一个线程[线程2]也尝试调用该方法.现在究竟发生了什么?Thread 1获得的锁定会发生什么?Thread 1的步骤会被回滚吗?
我有以下代码:
ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream("test.dat"));
ArrayList<String> list = null;
for(int i = 0; i < 10; i++)
{
list = new ArrayList<String>();
list.add("Object" + i);
oo.writeObject(list);
}
oo.close();
Run Code Online (Sandbox Code Playgroud)
当我打开test.dat文件和unserialize对象时,我得到了所有对象.但是,如果我将我的代码更改为:
ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream("test.dat"));
ArrayList<String> list = new ArrayList<String>();
for(int i = 0; i < 10; i++)
{
list.clear(); //clear the earlier objects
list.add("Object" + i);
oo.writeObject(list);
}
oo.close();
Run Code Online (Sandbox Code Playgroud)
现在,当我读取对象时,我只得到第一个,即Object0.有人可以解释一下这种行为吗?
假设我有A级
public class A
{
public void method()
{
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
还有另一个B类
public class B extends A
{
public void method()
{
//do other stuff
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有以下声明:
A a = new B();
a.method();
Run Code Online (Sandbox Code Playgroud)
这是运行时多态的一个例子吗?如果是,那么a在编译时是否没有对引用进行绑定?
我做了一个java程序只是为了好玩这个程序允许你使用第一台电脑的鼠标控制秒计算机鼠标.所以每当鼠标移动一些x和y的光标就被发送到客户端应用程序.然后使用机器人类移动鼠标.现在我正在使用套接字进行通信,而且它真的很慢,什么是更好的方法来做任何帮助都会被批评.如果可能请提供一些代码谢谢
java ×9
database ×2
polymorphism ×2
download ×1
file ×1
file-storage ×1
hibernate ×1
log4j ×1
measure ×1
storage ×1