- 浏览: 118788 次
- 性别:
- 来自: 福建
最新评论
-
wenbing2610:
其实用Struts实现图片上传比用Servlet实现容易多了。 ...
Struts2文件上传深入FileUploadInterceptor -
i_feng:
public class uploadImageAction ...
Struts2文件上传深入FileUploadInterceptor -
wenbing2610:
...
ognl.MethodFailedException
文章列表
模拟了spring容器的依赖注入,其实spring内部也是通过反射机制来实现的控制反转。主要是看下spring包下的ClassPathXmlApplicationContext类的实现。
完整代码如下:
package com.bjsxt.model;
public class User {
private String name;
public String getName() { ...
依赖注入(DI),是spring容器实现的基础,在spring-core模块中实现的。所谓DI,就是指对象是被动接受依赖类而不是自己主动去找,换句话说就是指对象不是从容器中查找它依赖的类,而是在容器实例化对象的时候主动 ...
IOC,直观地讲,就是容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。IoC还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象地说,即由容器动态地将某种依赖关系注入到组件之中。 下面我根据spring源码 简单实现自己的依赖注入 通过xml形式配置 在对象中获取xml文件 获取定义好的bean 从而对bean对应的class 实现实例化 使用接 ...
Java代码
package com.quan.hibernate.model;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map; ...
SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。
实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指定驱动程序,而在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用JDBC基本不用考虑具体数据库一样,SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式 ...
TCP/IP通信协议是一种可靠地网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间建立网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。Java对基于TCP协议的网络通信提供了良好的封装,Java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。
通过IP协议可以使Internet成为一个允许连接不同类型的计算机和不同操作系统的网络,但是IP协议只保证计算机能发送和接收分组数据。IP协议负责将消息从一个主机传送到另一个主机,消息在传递的过程中被分割成一个个的小包。IP协议不能解决数 ...
目录:
1 synchronized的作用域
2 线程的状态及线程类的一些常用方法:
3 一个简单多线程通信的例子:
1 synchronized的作用域:
假设存在如下条件:2个线程(ThreadOne and ThreadTwo),1个类(TestObject), 3个TestObject的实例(object, object1 and object2).
构造函数如下:
ThreadOne ...
数据库中存储的日期的格式和sql中的日期的格式是不一样的。
SQL> insert into test_date values (to_date('2004-12-17 16:42:42', 'syyyy-mm-dd hh24:mi:ss'));
已创建 1 行。
SQL> select to_char(date_col, 'syyyy-mm-dd hh24:mi:ss') dat, dump(date_col) dump_date from test_ ...
下面要讲的是 TIMESTAMP 类型。
create table test_time (col_time timestamp);
SQL> insert into test_time values (to_timestamp('0001-1-1 0:0:0.0', 'syyyy-mm-dd hh24:mi:ss.ff'));
已创建 1 行。
SQL> insert into test_time values (to_timestamp('2000-1-1 0:0:0.0', 'syyyy-mm-dd hh24:mi:ss.ff'));
已创建 1 行。
...
日期的组成部分为:世纪、年度、月度、天、时、分、秒。世纪又分为:公元前、公元后。所以只需存储这7部分,即可。
create table TEST_DATE
(
DATE_COL DATE
);
SQL> insert into test_date values (to_date('2000-1-1 0:0:0', 'yyyy-mm-dd hh24:mi:ss'));
已创建 1 行。
SQL> insert into test_date values (to_date('1-1-1 0:0:0', 'yyyy-mm-dd hh24:mi:ss'));
已创建 ...
任何一个实数都是可以表示为:S=A.B*10n(10的n次方)。则我们只是需要存储A.B(数据部分),n(最高表示位)即可。可是oracle 还存储了符号位(负数需要用到)。
create table test_number ( num_col number);
SQL> INSERT INTO TEST_NUMBER VALUES (0);
1 row inserted
SQL> INSERT INTO TEST_NUMBER VALUES (1);
1 row inserted
SQL> INSERT INTO TEST_NUMBER VALUES ( ...
Oracle 字符串格式
首先介绍:char(N) 和Varchar2(N)格式
create table TEST_CHAR
(
CHAR_COL CHAR(10),
VARCHAR_COL VARCHAR2(10),
);
SQL> insert into test_char(char_col, varchar_col ) values ('123','123');
SQL> commit;
SQL> select char_col,dump(char_col,16) as d_char_col , varchar_col,dump(varchar_col, ...
Oracle的ROWID分为两种:物理ROWID和逻辑ROWID。索引组织表使用逻辑ROWID,其他类型的表使用物理ROWID。
SQL> create table test_rowid (id number, row_id rowid);
表已创建。
SQL> insert into test_rowid values (1, null);
已创建 1 行。
SQL> update test_rowid set row_id = rowid where id = 1;
已更新 1 行。
SQL> commit;
提交完成。
SQL ...
多对多其实是个很复杂的关系,hibernate在进行处理的时候借助中间表或者中间类。中间表是在映射文件的关联标签(比如集合标签<set>)中由table属性指定的由hibernate自动生成的表,它只有两个字段,分别由<key>和<many-to-many>标签的table属性指定,作为外键分别用来指向关联双方表的主键。中间类就是把我们的中间表抽象生成一个实体类,在映射的时候分别和两个关联类构成一对多的关系,即演变成两个一对多来处理。
以下用中间表的例子来说明单向多对多关系映射:运动员(player)与角色(role)就 ...
集合属性大致有两种:第一种是单纯的集合属性,如像 List、Set 或数组等集合属性;另一种是Map结构的集合属性,每个属性值都有对应的Key映射。
集合映射的元素大致有如下几种:
List: 用于映射 List 集合属性
Set: 用于映射 Set 集合属性
Map: 用于映射 Map 集合性
Array: 用于映射数组集合属性
Bag: 用于映射无序集合
idbag: 用于映射无序集合,但为集合增加逻辑次序
1 ...