android实例讲解----Tomcat部署Web应用方法总结
2014-04-20 10:08
726 查看
参考文档:
一、架构介绍
在介绍这个之前,首先介绍下什么是ORM框架?
对象关系模型。或者称为映射。ORM主要是使得数据库中的关系数据映射为程序中的对象的桥梁。
MyBatis是另外一款优秀的ORM框架,前身为iBATIS。
整个架构图:
上面这个图讲的是,如何通过mybatis实现orm,即对象与关系模型之间的转换。
我们是通过java里面的接口类与.xml里面的配置文件实现的。
如下面的文件所示:
依据从上到下的顺序各个文件内容如下:
1)
packagezhuxuekui.data;
[code]
importjava.util.List;
importzhuxuekui.model.Poi;
publicinterfacePoiMapper{
/*
*存储poi信息
*/
voidinsertPoi(Poipoi);
/*
*获取Poi列表,如果username为空则返回所有的poi信息
*/
List<Poi>getPoi(Stringusername);
}
[/code]
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
2)
packagezhuxuekui.data;
[code]
importzhuxuekui.model.User;
publicinterfaceUserMapper{
UserselectUser(Stringusername);
}
[/code]
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}3)
<?xmlversion="1.0"encoding="UTF-8"?>
[code]<!DOCTYPEconfiguration
PUBLIC"-//mybatis.org//DTDConfig3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAliastype="zhuxuekui.model.User"alias="User"/>
<typeAliastype="zhuxuekui.model.Poi"alias="Poi"/>
</typeAliases>
<environmentsdefault="development">
<environmentid="development">
<transactionManagertype="JDBC"/>//事务管理器
<dataSourcetype="POOLED">
<propertyname="driver"value="com.mysql.jdbc.Driver"/>
<propertyname="url"value="jdbc:mysql://127.0.0.1:3306/Poi?characterEncoding=UTF-8"/>
<propertyname="username"value="root"/>
<propertyname="passward"value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapperresource="zhuxuekui/data/UserMapper.xml"/>
<mapperresource="zhuxuekui/data/PoiMapper.xml"/>
</mappers>
</configuration>
[/code]
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
自动化配置,实现ORM转换。通过mybatis实现java与db之间的连接。
4)
<?xmlversion="1.0"encoding="UTF-8"?>
[code]<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="zhuxuekui.data.PoiMapper">
<resultMapid="PoiItemMap"type="Poi">
<resultproperty="id"column="id"/>
<resultproperty="name"column="name"/>
<resultproperty="city"column="city"/>
<resultproperty="address"column="address"/>
<resultproperty="phoneNum"column="phone_num"/>
<resultproperty="lat"column="lat"/>
<resultproperty="lon"column="lon"/>
<resultproperty="username"column="username"/>
</resultMap>
<selectid="getPoi"resultMap="PoiItemMap">
select*frompoi
<iftest="value!=null">
whereusernamelike#{value}
</if>
</select>
<insertid="insertPoi"parameterType="Poi">
insertintopoi
(id,name,city,address,phone_num,lat,lon,username)
values
(#{id},#{name},#{city},#{address},#{phoneNum},#{lat},#{lon},#{username})
</insert>
</mapper>
[/code]
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
5)
<?xmlversion="1.0"encoding="UTF-8"?>
[code]<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="zhuxuekui.data.UserMapper">
<resultMapid="userResultMap"type="User">
<resultproperty="name"column="username"></result>
<resultproperty="email"column="email"></result>
</resultMap>
<selectid="selectUser"parameterType="String"
resultMap="userResultMap">
select
*
fromuserwhereusername=#{username}
</select>
</mapper>
[/code]
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
整体结构体如下:
二、程序讲解
1、在程序开发当中,我们需要使用相对路径,绝对路径不利于他人使用。
比如下方的packages包,我们需要建立一个packages文件夹,然后将这些jar直接拖到这个文件夹下面。
然后,右击构建路径---配置构建路径---添加JAR。如图所示,找到我们刚刚添加的jar包。添加引用。注:这就是相对路径,提高了重用性。
2、看下面的程序
packagezhuxuekui.model;
publicclassPoi{
publicStringid;
publicStringname;
publicStringcity;
publicStringaddress;
publicStringphoneNum;
publiclonglat;
publiclonglon;
publicStringusername;
}
没有用private,所以我们可以不用get与set方法。
这里只有一个public修饰,只是为了测试,所以不用get与set方法了。
3、如何通过配置文件链接java与mysql。
数据是怎么来的,这是我们需要关心的。
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
通过id以及一些sql语句实现。xml(配置文件)里面的id与java里面的接口类里面的函数是一一对应的。
然后xml配置里面也有一些个sql语句与mysql相连接。
4、configuration.xml文件介绍
<?xmlversion="1.0"encoding="UTF-8"?>
[code]<!DOCTYPEconfiguration
PUBLIC"-//mybatis.org//DTDConfig3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>//起别名,相当于C++里面的typedef。
<typeAliastype="zhuxuekui.model.User"alias="User"/>//输出的
<typeAliastype="zhuxuekui.model.Poi"alias="Poi"/>
</typeAliases>
//java开发环境,开发,测试,预上线,上线。
<environmentsdefault="development">
<environmentid="development">
<transactionManagertype="JDBC"/>//事物,业务处理器
<dataSourcetype="POOLED">//合并的
<propertyname="driver"value="com.mysql.jdbc.Driver"/>
下面URL这句话告诉我们,通过什么方式,走什么协议,打开在哪的,哪一个数据库,他的编码是什么
通过jdbc方式,走mysql的数据访问协议,打开本地的3306端口的Poi数据库,以utf8编码方式打开。
<propertyname="url"value="jdbc:mysql://127.0.0.1:3306/Poi?characterEncoding=UTF-8"/>
<propertyname="username"value="root"/>数据库的
<propertyname="passward"value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapperresource="zhuxuekui/data/UserMapper.xml"/>//路径
<mapperresource="zhuxuekui/data/PoiMapper.xml"/>
</mappers>
</configuration>
[/code]
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
5、如何把java代码挂到tomcat上去
1)、更改此目录下的E:\ProgramFiles\ApacheSoftwareFoundation\Tomcat7.0\conf 中的service.xml文件,添加一行
<Hostname="localhost"appBase="webapps"
unpackWARs="true"autoDeploy="true">
<Contextpath=""docBase="E:/Users/zhuxuekui/workspace/servletDemo/webapp"
reloadable="true"/>
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
docBase就是加载你的路径的,可以是相对路径,也可以是绝对路径。这个是写死的,后面会自动加载后面的WEB-INF后面的web.xml文件里面的内容。
注意两点:必须要重启电脑,路径必须要写对。是/。不是其他什么。
方法如下:
让tomcat只运行conf/server.xml中指定的web应用
可以有以下2种办法:
实现一:
1)将要部署的WEB应用放在webapps以外的路径,并在server.xml相应的Context中的docBase指定.
2)删除webapps中的所有文件夹,以及conf/catalina/localhost下所有xml文件.
注:webapps是server.xml中的Host元素的appBase属性的值.
实现二:
修改server.xml中Host元素的属性,添加或修改:deployXML="false"deployOnStartup="false"autoDeploy="false"
含义:
deployXML="false":不部署conf/catalina/localhost下的xml相应的WEB应用
deployOnStartup="false":tomcat启动时,不部署webapps下的所有web应用
autoDeploy="false" :避免tomcat在扫描改动时,再次把webapps下的web应用给部署进来.
注:
Tomcat中webapps目录下不能直接存放网页格式的文件,否则无法访问到该文件,必须有子目录才能访问该网页文件。
例如:我们直接将index.html放在webapps目录中,通过浏览器
2)、在项目中建立指定的目录,如下所示。
这样一来,我们编译完之后,不是在bin之下了,可以删掉bin(也可以不删)。建立web.xml文件,它是在WEB-INF下面。
web.xml就是tomcat与servlet的一个桥梁。
其内容为:
<?xmlversion="1.0"encoding="UTF-8"?>
[code]<web-app>
<servlet>
<servlet-name>login</servlet-name>//给servlet起一个名字
<servlet-class>zhuxuekui.service.SrvUser</servlet-class>//执行的是哪一个类
<load-on-startup>1</load-on-startup>//当tomcat运行时候就预加载
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>//url的表达式,访问login时候执行这个表达式
</servlet-mapping>
</web-app>
[/code]
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
写完这个之后,我们要写zhuxuekui.service.SrvUser.java.这个就是我们自己写的一个servlet。
什么是servlet?
其实他就是一个壳子,它是java提供的webservice开发的一种接口。我们如果想要再tomcat上门挂一个服务的话,只需要实现类似于httpservlet这么一个接口即可。然后通过web.xml配置文件将我们所写的servlet的实例挂载到tomcat上面去。servlet里面有很多的方法,比如有service方法、doget方法、dopost方法等。
packagezhuxuekui.service;
[code]
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.ibatis.session.SqlSession;
importzhuxuekui.data.UserMapper;
importzhuxuekui.model.User;
/**
*最简单的Servlet
*
*/
publicclassSrvUserextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
@Override
protectedvoidservice(HttpServletRequestreq,HttpServletResponseres)
throwsServletException,IOException{
res.getWriter().println("HelloWorld||||!");
super.service(req,res);
}
@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseres)
throwsServletException,IOException{
//Stringresource="/com/arthur/data/Configuration.xml";
//Readerreader;
//try{
//reader=Resources.getResourceAsReader(resource);
//Constants.SQL_FACTORY=newSqlSessionFactoryBuilder()
//.build(reader);
//}catch(Exceptione){
//e.printStackTrace();
//e.printStackTrace(res.getWriter());
//}
}
//@Override
//protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)
//throwsServletException,IOException{
//StringuserName=req.getParameter("username");
//SqlSessionsession=Constants.SQLFactory().openSession();
//UserMappermapper=session.getMapper(UserMapper.class);
//Useruser=mapper.selectUser(userName);
//if(user!=null){
//resp.setStatus(200);
//}else{
//resp.sendError(345,"用户名密码不正确!");
//}
//}
}
[/code]
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
弄完这个后,我们就需要编译了,项目---清理,然后会在我们建立的webapp下面生成.class等文件。
弄完这些后,我们就需要在浏览器中访问,界面如下:
相关文章推荐
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用的方法总结
- Tomcat部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat学习(一)------部署Web应用方法总结
- Tomcat部署Web应用方法总结
- Tomcat 部署web应用方法总结
- Tomcat部署Web应用方法总结