读书人

Struts 2.1.6 简要实例系列教程(3):新

发布时间: 2012-10-26 10:30:59 作者: rapoo

Struts 2.1.6 精简实例系列教程(3):新闻管理Model层的开发(整合iBatis)

本期开始讲Model层的开发,整合iBatis框架,iBatis是Apache旗下Java数据持久层的框架,跟Hibernate是同一类型的框架。大家可到它的官方网站去下载http://ibatis.apache.org/java.cgi,如下图:

Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)

我这里下载的是当前最新版本iBatis 2.3.4 , 下载之后,解压包是这样的:

Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)

我们在lib目录下,找到“ibatis-2.3.4.726.jar”文件,加入到我们项目的lib目录下,就行。在这里,我们先说下怎么学习这个iBatis框架:上图中,有个simple_example的文件夹,它里面就包含了一个超级简单且容易理解的例子,大家可以去学习一下。By the way,如果你学过Hibernate的话,你会发觉iBatis要比Hibernate好学很多。关于Hibernate和iBatis的争论,网上有很多,大家有兴趣可以去了解一下。

好,我们先建立数据库和设计数据库吧。我这项目用的是MySQL 5.0。生成数据库和数据表的SQL语句如下:

create database simpledb;

create table article
(
??? ID int auto_increment not null primary key,
??? TITLE varchar(25),
??? AUTHOR varchar(25),
??? CONTENT text,
??? PUBTIME date
);

?

这是我们常见的新闻表及其中的字段。

接下来,写一个与表对应的新闻类,Article.java,这个其实是POJO类,代码如下:

Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)package?cn.simple.pojo;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)import?java.util.Date;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)public?class?Article?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????private?int?id;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????private?String?title;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????private?String?author;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????private?String?content;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????private?Date?pubtime;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????/**?*//***********getter和setter方法***********/
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?int?getId()?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????return?id;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?void?setId(int?id)?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????this.id?=?id;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?String?getTitle()?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????return?title;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?void?setTitle(String?title)?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????this.title?=?title;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?String?getAuthor()?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????return?author;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?void?setAuthor(String?author)?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????this.author?=?author;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?String?getContent()?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????return?content;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?void?setContent(String?content)?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????this.content?=?content;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?Date?getPubtime()?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????return?pubtime;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?void?setPubtime(Date?pubtime)?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????this.pubtime?=?pubtime;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)

?

有了数据表和实体类,现在来写两者之间映射的配置文件Article.xml。代码如下:

Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)<?xml?version="1.0"?encoding="UTF-8"??>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)<!DOCTYPE?sqlMap??????
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????PUBLIC?"-//ibatis.apache.org//DTD?SQL?Map?2.0//EN"??????
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????"http://ibatis.apache.org/dtd/sql-map-2.dtd">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)<sqlMap?namespace="Article">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<!--?Use?type?aliases?to?avoid?typing?the?full?classname?every?time.?-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<typeAlias?alias="Article"?type="cn.simple.pojo.Article"?/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<!--
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????Result?maps?describe?the?mapping?between?the?columns?returned?from?a
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????query,?and?the?class?properties.?A?result?map?isn't?necessary?if?the
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????columns?(or?aliases)?match?to?the?properties?exactly.
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<resultMap?id="ArticleResult"?class="Article">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????<result?property="id"?column="ID"?/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????<result?property="title"?column="TITLE"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????<result?property="author"?column="AUTHOR"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????<result?property="content"?column="CONTENT"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????<result?property="pubtime"?column="PUBTIME"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????</resultMap>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<!--
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????Select?with?no?parameters?using?the?result?map?for?Account?class.
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<select?id="selectAllArticles"?resultMap="ArticleResult">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????select?*?from?article
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??????</select>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<!--
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????A?simpler?select?example?without?the?result?map.?Note?the?aliases?to
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????match?the?properties?of?the?target?result?class.
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<select?id="selectArticleById"?parameterClass="int"?resultClass="Article">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????select
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????ID?as?id,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????TITLE?as?title,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????AUTHOR?as?author,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????CONTENT?as?content,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????PUBTIME?as?pubtime
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????from?Article
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????where?ID=#id#
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??</select>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<!--?Insert?example,?using?the?Account?parameter?class?-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<insert?id="insertArticle"?parameterClass="Article">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????insert?into?article?(
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????TITLE,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????AUTHOR,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????CONTENT,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????PUBTIME
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????)?values?(
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????#title#,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????#author#,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????#content#,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????#pubtime#
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??</insert>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<!--?Update?example,?using?the?Account?parameter?class?-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<update?id="updateArticle"?parameterClass="Article">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????update?article?set
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????TITLE?=?#title#,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????AUTHOR?=?#author#,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????CONTENT?=?#content#,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????PUBTIME?=?#pubtime#
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????where
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????ID?=?#id#
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??</update>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<!--?Delete?example,?using?an?integer?as?the?parameter?class?-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<delete?id="deleteArticleById"?parameterClass="int">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????delete?from?article?where?ID?=?#id#
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??</delete>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)</sqlMap>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)

?

大家不要觉得这个映射文件很复杂,其实,这挺容易理解的,如果大家赖得写的话,可复制iBatis自带的simple_example下的例子的映射文件,然后修改一下就行。

有了表、实体类、表与实体之间的映射文件,之后,该做什么呢?学过Hibernate的朋友会想到那个数据库连接信息的配置文件,当然,iBatis也需要类似的文件,即SqlMapConfig.xml,代码如下:

Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)<?xml?version="1.0"?encoding="UTF-8"??>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)<!DOCTYPE?sqlMapConfig??????
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????PUBLIC?"-//ibatis.apache.org//DTD?SQL?Map?Config?2.0//EN"??????
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)<sqlMapConfig>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??<!--?Configure?a?built-in?transaction?manager.??If?you're?using?an?
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)???????app?server,?you?probably?want?to?use?its?transaction?manager?
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)???????and?a?managed?datasource?-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??<transactionManager?type="JDBC"?commitRequired="false">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????<dataSource?type="SIMPLE">
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??????<property?name="JDBC.Driver"?value="com.mysql.jdbc.Driver"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??????<property?name="JDBC.ConnectionURL"?value="jdbc:mysql://localhost:3306/simpledb"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??????<property?name="JDBC.Username"?value="root"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??????<property?name="JDBC.Password"?value="root"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????</dataSource>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??</transactionManager>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??<!--?List?the?SQL?Map?XML?files.?They?can?be?loaded?from?the?
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)???????classpath,?as?they?are?here?(com.domain.dataStruts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis))?-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??<sqlMap?resource="cn/simple/pojo/Article.xml"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??<!--?List?more?hereStruts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??<sqlMap?resource="com/mydomain/data/Order.xml"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??<sqlMap?resource="com/mydomain/data/Documents.xml"/>
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)??-->
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)</sqlMapConfig>

?

一看这代码,也有点复杂,我的说法同上,大不了COPY,再略作修改,呵呵

好了,来写我们的业务逻辑层:

Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)package?cn.simple.manager;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)import?java.io.IOException;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)import?java.io.Reader;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)import?java.sql.SQLException;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)import?java.util.List;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)import?cn.simple.pojo.Article;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)import?com.ibatis.common.resources.Resources;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)import?com.ibatis.sqlmap.client.SqlMapClient;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)import?com.ibatis.sqlmap.client.SqlMapClientBuilder;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)public?class?ArticleManager?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????/**?*//**
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?SqlMapClient?instances?are?thread?safe,?so?you?only?need?one.?In?this
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?case,?we'll?use?a?static?singleton.?So?sue?me.?;-)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*/
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????private?static?SqlMapClient?sqlMapper;
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????/**?*//**
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?It's?not?a?good?idea?to?put?code?that?can?fail?in?a?class?initializer,
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?but?for?sake?of?argument,?here's?how?you?configure?an?SQL?Map.
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*/
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????static?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????try?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????Reader?reader?=?Resources.getResourceAsReader("SqlMapConfig.xml");
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????sqlMapper?=?SqlMapClientBuilder.buildSqlMapClient(reader);
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????reader.close();
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????}?catch?(IOException?e)?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????//?Fail?fast.
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????throw?new?RuntimeException(
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????????????"Something?bad?happened?while?building?the?SqlMapClient?instance."
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????????????????????????+?e,?e);
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????/**?*//**
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?查询列表
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?@return
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?@throws?SQLException
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*/
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?static?List<Article>?selectAllArticles()?throws?SQLException?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????return?sqlMapper.queryForList("selectAllArticles");
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????/**?*//**
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?插入数据
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?@param?article
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?@throws?SQLException
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*/
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?static?void?insertArticle(Article?article)?throws?SQLException?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????sqlMapper.insert("insertArticle",?article);
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????/**?*//**
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?更新数据
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?@param?article
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*?@throws?SQLException
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)?????*/
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????public?static?void?updateArticle(Article?article)?throws?SQLException?Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis){
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????????sqlMapper.update("updateArticle",?article);
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)????}
Struts 2.1.6 简要实例系列教程(3):新闻管理Model层的开发(整合iBatis)

?

本文转自我的JavaEE技术博客http://www.blogjava.net/rongxh7/,转载请注明出处!谢谢!

1 楼 rtsbtx 2009-08-21 我是一个新手,想问一下,这里如果要设计DAO层的话应该怎么改呢~~? 2 楼 SeanHe 2009-08-22 如果你使用SPRING的话,spring帮你把IBATIS做封装,使用起来也很方便。印象中spring的例子里有对iBATIS整合的例子 3 楼 wenxiang_tune 2009-08-26 小例子不能说明大问题。。。LZ的配置方法Hibernate已经实现的很好了,而且Hibernate有很多种可选方案 4 楼 快乐让让 2009-12-21 没用呀,随便下个IBATIS的快速应用就有你所说的一切了,而且还比你说的详细。。。 5 楼 ckn126 2010-05-13 我问一下 如果 B对象包含在A中 如果我想用查询A时候,把B对象一起封装进去 ,这个在hibernate之中是使用component 那么 ibatis中如何处理对象的包含关系。。。 6 楼 everher 2010-05-17 我现在就在用ibatis,但是用ibatis作为持久层有一个比较大的缺点,即:代码生成工具很难使用,而且效果不好。

读书人网 >软件架构设计

热点推荐