2009年3月30日星期一
2009年3月26日星期四
用Ibator生成的SalMap与spring集成时的问题
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in file [E:\WorkSpace\ibator\dataAccessContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: com/ibatis/common/xml/NodeletException
我还debug了呢,以为发现了spring的bug,汗。。。。。
第二、用ibator生成的sqlmap,假设在namespace为account的情况下,下面所有的sql , select,insert,etc 的id 都会加上 account.****。 Junit4测试的时候报异常:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in file [E:\WorkSpace\ibator\dataAccessContext.xml]:
Invocation of init method failed; nested exception is org.springframework.core.NestedIOException:
Failed to parse config resource: file [E:\WorkSpace\ibator\sql-map-config.xml];
nested exception is com.ibatis.common.xml.NodeletException: Error parsing XML.
Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.
Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.
Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'.
Cause: java.lang.RuntimeException: Could not find SQL statement to include with refid 'account.ibatorgenerated_Example_Where_Clause'
本以为Ibator是完全可以信赖的,看上去也没什么不对,AccountDaoImpl里面的也对应的很好,是不是ibatis里面那个地方可以设置呢?
在这里我就把namespace,account. 全部删掉,修改AccountDaoImpl。测试后全绿的!
JavaScript - Working with Database
1. How to connect the database in JavaScript
2. How to use the ADODB.Recordset in JavaScript
As I already put the details comments in coding, I hope you will find it useful.
You can download the sourcecode and MSAccess database from this link.
http://michaelsync.net/demo/JavaScriptDatabaseSrc.zip
引用:
http://michaelsync.net/2006/06/14/javascript-working-with-database
javeScript操作数据库代码片段
there are the code snippet:
var rsTopTen
var strInner
var strCntInner
var ConnectionString
rsTopTen = new ActiveXObject("ADODB.Recordset");
// Build the connection string
//
// ConnectionString Format below:
//ConnectionString = "DRIVER=SQL Server;SERVER=MySQLServer;CATALOG=MyDatabase;UID=USERID;PWD=Password";
//
// for SQL 7.0:
//ConnectionString = "DRIVER=SQL Server;SERVER=TopTen;CATALOG=TopTen;UID=TopTen;PWD=TopTen";
//
// for Access Database (on Server):
//ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=\\\\demwwwdev01\\develop\\im\\security\\TopTen.mdb";
//
// for Access Database (on local drive):
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=C:\\TopTen\\TopTen.mdb";
// Build a SQL statement
strSQL = "SELECT TopTenName, TopTenCount FROM TopTen ORDER BY TopTenCount DESC";
// Open the recordset
rsTopTen.Open(strSQL, ConnectionString, 3,1,1);
// Loop through the Recordset
while(!rsTopTen.EOF)
{
//写出.......
}
引用:
http://metababy.blogspot.com/2009/03/use-javascript-to-operate-database-sql.html
2009年3月25日星期三
使用Ibator自动生成sqlmap配置文件、dto类、dao类
1.帮助文档
http://ibatis.apache.org/docs/tools/ibator/
2.找不到jdbc的异常处理
http://www.eclipse-plugins.info/eclipse/plugin_comments.jsp;jsessionid=6FDA6B5047854C57C42A0252F2D36A3E?id=1253
3.示例
http://ibatis.apache.org/docs/tools/ibator/configreference/xmlconfig.html
4.一点和Abator的小历史
Ibator was originally named "Abator", but the name was changed as the result of a federal trade registration dispute.
2009年3月24日星期二
研究ibatis的jgamestore
2009年3月23日星期一
ibatis的dao framework
ibatis的cache model
ibatis动态Sql
开启ibatis的Lazy loading
2009年3月22日星期日
ibatis学习
ibatis是懒人用的~ 呵呵。。。
jdbc是勤快的人想完全控制sql的人用的。。。
至于什么时候用,action的书里写的很清楚的。 当然跟项目的具体技术架构和需求也有很大的关系,毕竟是架构师和项目经理的事情。 俺学习学习,算过了。。
晚上继续看ibatis in actioan。 E文的看的好慢。。。 orz!
2009年3月20日星期五
Reading ibatis in action!
2009年3月19日星期四
学习SpringMVC一步一步
我的感觉是用她提供的框架开发是比较方便的。首先是一个jsp,利用里面的标签,发送一个请求过来,然后交给Controller,Controller负责接收请求,调用后面的服务,并返回一个ModelAndView。这些服务初始化工作交给spring,需要在applicationContext.xml等。还有一些配置文件如××-servlert.xml,jdbc.properties等。
最赞的是,build.xml几乎是自动的编译,部署,测试,建库。。。我很欣赏这点。前两天也捣鼓了下maven2,感觉不太适合现在的情况。
又是一天过去了。。。
明天计划好好Spring其他方面的整合,慢慢理解spring!
2009年3月17日星期二
没题目~
后来下了一本Eclipse Web Tool Platform:.... 的电子书,对着书上做很快跑起来来了一个简单的Servlet。以前很是讨厌web.xml那些配置文件,不过现在看来有wtp的帮助,配置都可以自动生成,还是挺方便!
看着看到了 Apache Derby ,也是第一次接触。。。 打开 http://db.apache.org/derby/ 里面瞧了瞧,开始学学。。
每天都在想做点什么,或者写点什么。。。
每天都在思考是广泛学习,还是深入研究。。。
现在还是浑浑噩噩,何时是个头?
我是一只小小鸟,好像飞不出企业的手心~ 或许他需要点勇气。。。
2009年3月16日星期一
IIS6配置Gzip
netstat -an, 发现是迅雷5占用了80端口,kill thunder5.exe
重启IIS6, OK!
2009年3月15日星期日
2009年3月13日星期五
安装EMS Sql Manager 2008 for Oracle
为什么不先看看文档呢?
偷懒往往更加得不偿失啊!
2分钟电话面试:又一次经验!
没办法,英语是老问题了。。。 我改花时间练练口语吗?
2009年3月12日星期四
Tomcat6中war自动部署原理
Tomcat6部署Spring-Jpetstore
2.spring包中example/jpetstore下运行warfile.bat.
3.将生成的jpetstore.war拷贝到tomcat/webapp/下
4.重启tomcat6,webapp下自动多了一个名字为jpetstore的文件夹,即我们的宠物网站,
5.按先前介绍的安装好的mysql5.1,在sql manager 2007中,新建一jpetstore的数据库,运行mysql脚本
6.将mysql的jdbc的驱动拷贝到/webapp/jpetstore/WEB-INF/lib/下,并修改/webapp/jpetstore/WEB-INF/下的jdbc.properties文件,修改为符合mysql的要求。
例如:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/jpetstore
jdbc.username=root
jdbc.password=123456
7.重启Tomcat6,在浏览器中输入http://localhost:8080/jpetstore/
这就好了。
Tomcat6 zip 版安装
简单的说,
1.先设置好java_home,
2.在tomcat_home下bin目录下:
1)运行startup.bat 启动tomcat6,
2)运行shutdown.bat 退出tomcat6,
3)运行service.bat install tomcat6 安装服务名为tomcat6的Windows服务,
4) 运行service.bat romove tomcat6 删除服务名为tomcat6的Windows服务,
5) ctrl + r , 输入 services.msc , 可以看到 Apache Tomcat 的服务名,
6) 其他设置参考tomcat文档。
7) 桌面快捷方式:startup.bat 和 shutdowt.bat。
2009年3月11日星期三
忙碌的一天
2009年3月9日星期一
MySQL:简单字符集操作
mysql> show variables like
-> 'character%';
+--------------------------+---------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\DevSoft\MySQL\MySQL Server 5.1\share\charsets\ |
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
2.修改默认字符集
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
MySQL:无法远程登入MySQL Server(is not allowed to connect to this MySQL server)解决
如果你想连接你的mysql的时候发生这个错误:
ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
解决方法:
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;
2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
http://till.javaeye.com/blog/115659
http://www.webasp.net/article/21/20985_print.htm
我是用图形界面的SQL Manager中修改的!
获得mysql版本号
+------------------+
| version() |
+------------------+
| 5.1.32-community |
+------------------+
1 row in set (0.03 sec)
2009年3月6日星期五
试用wireshark,分析网络数据包
WireShark (以前一般称为 Ethereal)使程序员可以查看网络上传播的内容,让他们有机会检查正在网络上传播的内容是否合适,而那些不 合适的内容(比如敏感信息和明文密码)没有出现在网路上。呵呵,第一次听说这工具,以前只知道wincpap。。。 哈哈 , 我的工具箱又强大了!
Spring:IOC容器-依赖
1)构造器注入
1)构造器参数解析
2)构造器参数类型匹配
3)构造参数索引
2) Setter注入
3)一个替代构造器的方法,采用static工厂方法返回对象实例
2. 依赖配置详解
1)直接变量(基本类型、
Strings
类型等。)2)
idref
元素,提供错误验证功能。local。。。3) 引用其它的bean(协作者)。ref bean, ref local。
4)内部bean,内部bean中的
scope
标记及id
或name
属性将被忽略。内部bean总是匿名的且它们总是prototype模式的。同时将内部bean注入到包含该内部bean之外的bean是不可能的。5)集合。
、
、
及
元素。6)集合的合并。parent-style和child-style。父子集合元素合并后的值就是子集合中的最终结果,而且子集合中的元素值将覆盖父集全中对应的值。merge 属性。
7)强类型集合(仅适用于Java5+)。
8)
Nulls。
。
9)
XML配置文件的简写及其他1)XML-based configuration metadata shortcuts
2) 使用p名称空间配置属性。p 表示属性。。。
10)组合属性名称。属性的属性的属性。。。
3. 使用
depends-on。
依赖关系不是太直接。。。 多个时候 “ , ”4.延迟初始化bean。bean -
lazy-init。beans -
default-lazy-init。
5.自动装配(autowire)协作者。自动装配(autowire)。
1)Autowiring modes:no,byName,byType,constructor,autodetect。
2)如果直接使用
property
和constructor-arg
注入依赖的话,那么将总是
覆盖自动装配。3)优点:a.自动装配能显著减少配置的数量,b.自动装配可以使配置与java代码同步更新
4) 缺点:a.装配不明确可能出现难以预料的结果,对象之间的关联关系也不再能清晰的进行文档化,b.对于那些根据Spring配置文件生成文档的工具来说,自动装配将会使这些工具没法生成依赖信息。
5) 将bean排除在自动装配之外.
a.bean中autowire-candidate
属性可被设为false.b.
在
元素的'default-autowire-candidates'
属性中进行设置
6.
依赖检查.1)在bean定义中为
dependency-check
属性2)依赖检查方式:none,simple,object,all.
7.方法注入
1)放弃控制反转。通过实现
BeanFactoryAware
接口让bean A能够感知bean 容器,并且在需要的时候通过使用getBean("B")
方式向容器请求一个新的bean B实例。耦合高,不推荐。2)Lookup方法注入。
Lookup方法注入利用了容器的覆盖受容器管理的bean方法的能力,从而返回指定名字的bean实例。 Lookup方法注入适用于原型bean。Lookup方法注入的内部机制是Spring利用了CGLIB库在运行时生成二进制代码功能,通过动态创建Lookup方法bean的子类而达到复写Lookup方法的目的。(需要CGLIB支持,子类化的类不能是
final
的,要覆盖的方法也不能是final
的,不能是序列化的(serialized)。)3)自定义方法的替代方案。当使用基于XML配置元数据文件时,可以在bean定义中使用
replaced-method
元素来达到用另一个方法来取代已有方法的目的.在
元素内可包含一个或多个
元素
2009年3月5日星期四
Spring:IOC容器 - 基本原理(容器和bean)
答:BeanFactory
接口擅长于处理bean的初始化和配置,提供了配制框架及基本功能;ApplicationContext
是BeanFactory
的扩展,功能得到了进一步增强,比如更易 与Spring AOP集成、资源处理(国际化处理)、事件传递及各种不同应用层的context实现 (如针对web应用的WebApplicationContext
)。简而言之,一般把ApplicationContext
接 口作为首选。2.为什么使用bean?
答:使用'bean'这个名字而不是'组件'(component) 或'对象'(object)的动机 源于Spring框架本身(它产生的部分原因就是对Enterprise Java Beans复杂性的一次解构)。
3.多种资源加载配置元数据?
答:Spring IoC容器可以通过多种途径来加载配置元数据,比如本地文件系统、Java CLASSPATH
等。Resource
抽象机制。
4.怎么实例化容器?
答:ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"services.xml", "daos.xml"});
// anApplicationContext
is also aBeanFactory
(via inheritance)
BeanFactory factory = context;
XML配置元数据的结构:相对路径
5.bean的在Spring IOC 容器中怎么定义的?
答:bean定义由BeanDefinition
对象来表示。包括全限定类名、bean行为的定义、对其他bean的引用、
创建bean实例时的其他配置设置。他们被映射为中的properties:
class-类名,name-名字,scope-作用域,constructor arguments - 构造器参数,properties - 属性,autowiring mode
自动装配,dependency checking mode - 依赖检查,lazy-initialization mode - 初始化延迟,
initialization method - 初始化方法, destruction method - 析构方法。
6.bean的命名、 bean的别名?
答:bean的命名采用标准的Java命名约定,即小写字母开头,首字母大写间隔 的命名方式。如accountManager
、accountService
、userDao
及loginController
,等等。
xml配置别名:
7.实例化bean的方式?
答:
1)用构造器来实例化。
IoC容器不仅限于管理JavaBean,它可以管理任意 的类。
2)使用静态工厂方法实例化。createInstance()
必须是一个static方法。
3)使用实例工厂方法实例化。
8.使用容器
从本质上讲,BeanFactory
仅仅只是一个 维护bean定义以及相互依赖关系的高级工厂接口。通过BeanFactory
我们可以访问bean定义。下面的例子创建了一个bean工厂,此工厂 将从xml文件中读取bean定义:
基本上就这些了,接着使用getBean(String)
方法就可以取得bean的实例;BeanFactory
提供的方法极其简单。 BeanFactory
接口提供 了非常多的方法,但是对于我们的应用来说,最好永远不要调用它们,当然也包括 使用getBean(String)
方法,这样可以避免我们对 Spring API的依赖。
2009年3月4日星期三
Eclipse3.4.1下安装Findbugs和subclipse(SVN for eclipse)
Eclipse3.4.1下安装Findbugs和subclipse(SVN for eclipse)
安装Subclipse(SVN):
Eclipse 3.4菜单->Help->Software Updates...->选择Available Software
点击“Add Sites...”按钮,分别添加两个站点:
http://download.eclipse.org/technology/subversive/0.7/update-site/
和
http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/
然后勾选以下选项,然后点击“Install...”安装,必成功:
http://download.eclipse.org/technology/subversive/0.7/update-site/
--Subversive Integration Plug-in's
--Subversive SVN Intergration for the Mylyn Project
http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/
--Subersive SVN Connectors
--JavaHL 1.5.0 Connector
--Native JavaHL 1.5 Win32
--Subversive SVN Connectors
--SVNKit 1.1.7 Implementation
安装Findbugs-1.3.8:
方法同上:
只是更新链接不同:
FindBugs Eclipse update sites:
- http://findbugs.cs.umd.edu/eclipse/
Only provides official releases of FindBugs.
- http://findbugs.cs.umd.edu/eclips-candidate/
Provides official releases and release candidates of FindBugs.
- http://findbugs.cs.umd.edu/eclipse-daily/
Provides the daily build of FindBugs. No testing other than that it compiles.
- (from Findbugs 在线手册)
EMS SQL Manager 2007 for MySQL安装试用
http://sqlmanager.net/
下载地址,及破解文件:
http://skywq.com/searchcn.asp?keyword=sql+manager&searchtj=name&x=0&y=0
先安装了最新的mysql5.1,再安装sql manager 2007,在应用破解文件。一切都很顺利,用起来很方便。。。
推荐不喜欢敲命令行的朋友使用哦。
2009年3月2日星期一
JProfiler5.2.1试用
JProfiler确实很强大,我打算用到我们的服务器性能测试中去,我想一定会有很大的帮助的。
附资料链接:
英文帮助文档:
http://cid-976e63db5ed0bfb6.skydrive.live.com/self.aspx/.Public/jprofiler/JProfiler%20Reference%20Manual.pdf
jprofiler集成tomcat的demo
http://cid-976e63db5ed0bfb6.skydrive.live.com/self.aspx/.Public/jprofiler/jprofiler%7C_demo%7C_1.rar
官方session设置demo
http://cid-976e63db5ed0bfb6.skydrive.live.com/self.aspx/.Public/jprofiler/jprofiler%7C_demo%7C_config.swf
官方jporfilerOverView Demo
http://cid-976e63db5ed0bfb6.skydrive.live.com/self.aspx/.Public/jprofiler/jprofiler%7C_demo%7C_overview.swf
安装文件with jre
http://cid-976e63db5ed0bfb6.skydrive.live.com/self.aspx/.Public/jprofiler/jprofiler%7C_windows%7C_5%7C_2%7C_1%7C_with%7C_jre.exe
crack for jprofiler 5.1.2(没成功)
http://cid-976e63db5ed0bfb6.skydrive.live.com/self.aspx/.Public/jprofiler/JProfilter.512crack.zip