MyBatis入门初级教程(2) – 框架结构搭建

MyBatis入门初级教程(2) – 框架结构搭建


jdbcjar包导入工程中。下载地址:

http://download.csdn.net/detail/taomanman/6276329


1. 编写DBAccess类:

在包db下新建类,起名DBAccess

/**
 * 访问数据库类
 */
public class DBAccess {
       publicSqlSession getSqlSession() throws IOException{
              //通过配置文件获取数据库连接信息
              Readerreader = Resources.getResourceAsReader("com/config/Configuration.xml");
              //通过配置信息构建一个SqlSessionFacory
              SqlSessionFactorysqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
              //通过sqlSessionFactory打开一个数据库会话
              SqlSessionsqlSession = sqlSessionFactory.openSession();
              returnsqlSession;
       }
}

看不懂的可以先复制过来,以后会讲。

2. 编写Dao层:

       dao包下创建一个名为MobilePOIDao的类:

/**
 * 与MOBILE_POI表对应的数据库操作类
*command是用户输入查询关键字参数。
 */
public class MobilePOIDao {
       /**
        * 根据查询条件查询MOBILE_POI列表
        */
       publicList<MobilePOI> queryMobilePOIList(String command){
              //连接数据库
              DBAccessdbAccess = new DBAccess();
              SqlSessionsqlSession = null;
              try{
                     sqlSession= dbAccess.getSqlSession();
              } catch(IOException e) {
                     e.printStackTrace();
              }catch(Exception e){
                     System.out.println(e.getMessage());
              }finally{
                     sqlSession.close();
              }
              returnnull;
       }
}}

3. 在此Dao类中暂时写一个main函数:

测试一下看看是否走的通:

       publicstatic void main(String[] args){
              MobilePOIDaomessageDao = new MobilePOIDao();
              messageDao.queryMobilePOIList("");
      
       }
}

Debug一下按顺序走一下看看是否走得通,是否报错。

4. 通过了之后我们开始创建写sql语句的文件:

       创建编写SQL语句xml文件,并配置:

              test文件夹中拷贝一个User.xml文件作为参照,放在config下的sql包里,

User.xml的地址路径:

C:\Users\DD\Desktop\mybatis-3-mybatis-3.2.8\src\test\java\org\apache\ibatis\submitted\complex_property

并在教程第一篇的Configuration.xml中配置此sql语句的User.xml文件

  <mappers>
    <mapper resource="com/config/sql/User.xml"/>
  </mappers>


5.编写User.xml文件:

<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEmapper
    PUBLIC "-//mybatis.org//DTDMapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="MobilePOI">
 
  <resultMap type="com.bean.MobilePOI"id="MobilePOIResult">
    <id column="POIID"jdbcType="VARCHAR" property="poiid"/><!-- 主键 -->
    <result column="NAME"jdbcType="VARCHAR" property="name"/>
    <result column="LON"jdbcType="VARCHAR" property="lon"/>
    <result column="LAT"jdbcType="VARCHAR" property="lat"/>
  </resultMap>
 
  <select id="queryMobilePOIList"parameterType="com.bean.MobilePOI" resultMap="MobilePOIResult">
         select POIID, NAME, LON, LAT
         from MOBILE_POI where 1=1
  </select>
</mapper>

此时先不写用前面用户传来的command查找参数。过程走通了之后我们再添加查找限定条件。

6.改写Dao

观察sqlsession.selectList()方法的第一个参数:“MobilePOI.queryMobilePOIList

MobilePOIUser.xml文件中space域的名称。<mapper namespace="MobilePOI">

queryMobilePOIListSQL语句的id <select id="queryMobilePOIList"

/**
 * 与MOBILE_POI表对应的数据库操作类
 */
public class MobilePOIDao {
       /**
        * 根据查询条件查询MOBILE_POI列表
        */
       publicList<MobilePOI> queryMobilePOIList(String command){
              //连接数据库
              DBAccessdbAccess = new DBAccess();
              List<MobilePOI>mobilePOIList = new ArrayList<MobilePOI>();
              SqlSessionsqlSession = null;
              try{
                     sqlSession= dbAccess.getSqlSession();
                     MobilePOImobilePOI = new MobilePOI();
                     mobilePOI.setName(command);
                     mobilePOIList= sqlSession.selectList("MobilePOI.queryMobilePOIList",mobilePOI);
              }catch (IOException e) {
                     e.printStackTrace();
              }catch(Exception e){
                     System.out.println(e.getMessage());
              }finally{
                     if(sqlSession!= null){
                            sqlSession.close();
                     }
              }
              returnmobilePOIList;
       }
}


 

7.service类:

service包下建一个名为QueryService的类:

/**
 * 列表相关的业务功能
 */
public class QueryService {
       /**
        * 将通过dao查询的结果返回给service
        * @param command
        * @return 查询结果
        */
       publicString queryByMobilePOI(String command){
              MobilePOIDaomobilePOIDao = new MobilePOIDao();
              List<MobilePOI>mobilePOIList;
              mobilePOIList= mobilePOIDao.queryMobilePOIList(command);
              if(mobilePOIList.size()>0){
                     //转成json格式
                     returnJSON.toJSONString(mobilePOIList);
              }
              return"数据库中无此结果";
       }
}

为了传回前端js解析方便,我习惯将从数据库中查询到的结果列表转成json格式

其中转成json格式用的包是阿里巴巴的fastjson包,地址是

此包介绍:

8.servlet类:

最后,编写servlet类:

servlet包中新建一个servlet类,名为QueryServlet

创建方法:

1. 右键单击servletà新建àservlet

2.如果选项中没有servlet,选择【其他】à填写【servletà,勾选加上doGetdoPost方法,地址删除servlet前缀改为:【/QueryServlet】,(也可不改,我是习惯。)

          3. 也可以自己手动创建一个普通类,让其继承HttpServlet类,填写doGetdoPost方法,并在web.xml中配置

  <servlet>
    <servlet-name>QueryServlet</servlet-name>
    <servlet-class>com.servlet.QueryServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>QueryServlet</servlet-name>
    <url-pattern>/QueryServlet</url-pattern>
</servlet-mapping>

9.发布服务,并访问servlet地址,运行程序:

发布服务:

点击图标

在浏览器中访问servlet地址:

结果:

可以用json在线格式化工具格式化一下:

未完待续。。。

下一节讲:

各个文件之间的联系与结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值