mybatis 学习及路径问题


前言

记录 学习mybatis流程 及资源路径问题


一、导入mybatis,jstl,jdbc,jar包

     注意所导入的jar包必须在web lib目录下

二、配置mybatis.xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
    <environments default="default">
        <environment id="default">
            <transactionManager type="JDBC"/>
            //连接数据库
            <dataSource type="POOLED">
                <property name="driver"   value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="密码"/>
            </dataSource>
        </environment>
    </environments>
    //连接mapper文件 路径是相对路径
    <mappers>
        <mapper resource="com/ws/mapper/PeopleMapper.xml"/>
    </mappers>
</configuration>

三 创建实体类

   用来存储所查询到的数据库信息
   所创建属性的名称要与mysql中列值相等
   mybatis 自动映射 自动寻找与数据库中列名一致的属性 不一致可以使用别名

四 创建mapper xml 文件

mapper文件相当于里面封装好了数据访问层所实现的所有步骤,只需编写所要实现的sql命令

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ws.mapper.PeopleMapper">//一般是包名.类名
    <select id="selAll" resultType="com.ws.pojo.People">// id相当于方法名用来调用,resulttype是返回类型
        select * from people
    </select>
</mapper>

五.创建service

   private List<People> lp;
    @Override
    public List<People> show() throws IOException {
        InputStream is= Resources.getResourceAsStream("mybatis.xml");//连接其数据访问层 返回流对象
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);//根据工厂模式和建造者模式
        SqlSession session =factory.openSession();//创建session对象
          lp=session.selectList("com.ws.mapper.PeopleMapper.selAll");//调用相应方法
          session.close();//关闭session
         return lp;
    }

六 编写控制器servlet

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //设置编码格式
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/xml;charset=utf-8");
        //获取请求信息
        //处理请求信息
        PeopleServiceimpl psim=new PeopleServiceimpl();//连接业务逻辑
        List<People> lp=psim.show();
        req.setAttribute("List",lp);
        //响应
             //请求转发
        req.getRequestDispatcher("/index.jsp").forward(req,resp);//转接到视图

    }
}

七 编写jsp

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>//jstl技术


<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
 <%-- <img src="/mybatis01_war_exploded/images/a.png"/>tupian--%>
  <table border="1px" style="color: green" >
    <tr>
    <th>编号</th>
    <th>姓名</th>
    <th>年龄</th>
    </tr>
    <c:forEach  items="${List}" var="li">
    <tr>
      <td>${li.id}</td>
      <td>${li.name}</td>
      <td>${li.age}</td>
    </tr>
    </c:forEach>
  </table>
  </body>
</html>

八 资源路径问题

重定性 静态资源路径 <img src="" /><a href=""> <script srv="">(编译后的文件)
不加‘/’表示 相对路径
加‘/’表示localhost:8080
web文件编译后存储在(tomcat 下的webapps文件夹) 服务器目录
所以使用全路径必须加所在项目下(工程目录)
请求转发是在服务器内部转
‘/’表示webcontent目录 等价于服务器目录加工程目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值