文章目录
前言
记录 学习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目录 等价于服务器目录加工程目录