03 2013 档案
摘要:Hibernate主要支持两种查询方式:HQL查询和Criteria查询。前者应用较为广发,后者也只是调用封装好的接口。现在有一个问题,就是实现多表连接查询,且查询结果集不与任何一个实体类对应,怎么解决呢?举个例子:现在有两个表,一个users用户表, 一个goods商品表,每个用户可以有多个商品,而一个商品只能对应一个用户。users表中的字段:userId,userName,telephone,addressgoods表中的字段:goodsId,goodsName,userId现在要实现两表连接查询,查出每个用户所拥有的商品,并把该用户的信息和其商品信息显示出来。使用Hibernate反向
阅读全文
摘要:最近一直在研究S2SH开发框架,把三部分分别看完之后开始整合,发现由于 hibernate 高版本已经又完善了好多功能,导致与之前跟 spring 整合的方法有些出入。先说一下与 hibernate3 整合的时候获取 Session 的办法吧。以检测用户名和密码是否正确为例,数据表是users,所以使用MyEclipse反向生成其所对应的类和.hbm.xml文件分别是Users.java和Users.hbm.xml。我是直接使用 MyEclipse 添加的两个框架,所以系统自动给生成了 applicationContext.xml 配置文件,关于 SessionFactory 的部分如下: 1
阅读全文
摘要:数据库连接池技术的基本原理:由Web容器(如Tomcat)提供数据源对象,在程序中使用 JNDI 技术获得该对象。一般如果自己创建连接的话,用下面的代码获取数据源对象:Context context = new InitialContext();DataSource dataSource = (DataSource)context.lookup("java://comp/env/jdbc/mydb");Connection conn = dataSource.getConnection();这里mydb是要连接到的数据库名,一定要注意 java: 后面有双斜线,否则就会报出
阅读全文
摘要:struts2配置时,在web.xml中的配置如下:1 <filter>2 <filter-name>struts2</filter-name>3 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>4 </filter>5 <filter-mapping>6 <filter-name>struts2</filter-name>7 <url
阅读全文
摘要:以前一直看见 i18N ,现在才知道原来 i18N 就是 Internationalization,因为以 i 开头,以 N 结尾,共18个字母,也就是国际化的意思。在百度搜索主页上没有看见中英文的切换,毕竟百度在中国是为了中国人而设计的,没必要弄个英文的切换。google搜索主页上是有的,因为谷歌在中国的服务器放到了香港,所以还有繁体切换。这是怎么做到的呢?其实原理很简单,用Struts2很容易实现的。以实现中英文切换为例做一下说明:第一步:在src目录下添加两个资源文件,命名方式很重要的。格式:baseName_language_country.properties。还有两种命名方式,都可
阅读全文
摘要:Struts2 的表单输入校验有多种方法。1.重写 ActionSupport 类的 validate() 方法。 将需要验证的逻辑写在该方法中,那么当执行该Action的时候会先执行该方法再执行execute()方法。但这个方法有一个缺陷,就是一个表单只能对应一个Action.2.重写 validateXxx 方法。 比如在 LoginAction 类中,我们想有验证login表单和regist表单的两个验证方法,则分别定义 validateLogin() 和 validateRegist() 方法,然后在配置 struts.xml 时指定 action=login 时执行 login(..
阅读全文
摘要:Struts2 相比 Struts1 而言,不用直接访问 Servlet API, 使得 Action 可以脱离 Web 容器进行测试。那么 Struts2 访问 Servlet API 有三种方式:1.使用 ActionContext 在程序中使用 ActionContext ac = ActionContext.getContext(); 获取到ActionContext的一个实例,然后使用ac.put("key", "value");将信息返回给Web前端。但使用该方法需要在Action类中实现request参数的setter()和getter()
阅读全文