互相对应的:
1.jsp与servlet一起使用
servlet—EmpServlet —@WebServlet(urlPatterns ={"/emplist"})
获得数据 private EmpService empService = new EmpServiceImpl();
重写 service
①.查询数据库
LIst empList = empService.listEmp();
②把数据库绑定到req对象上
req.setAttribute(s:“empList”,empList);
—加粗empList是自己起的名字 值empList是查询的数据
③转发到jsp上
req.getRequestDispatcher(“/WEB-INF/pages/emplist.jsp”).forward(req,resp);
forward(req,resp)—跳转标签
@WebServlet(urlPatterns = {"/emplist"})
public class EmpListServlet extends HttpServlet {
private EmpService empService = new EmpServiceImpl();
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.查询数据库
List empList = empService.listEmp();
//2把数据绑定到req对象上
req.setAttribute("empList",empList);
//3.转发到jsp上
req.getRequestDispatcher("/WEB-INF/pages/emplist.jsp").forward(req,resp);
}
}
jsp页面
<%List empList = (List request.getAttribute("empList");%>
**empList---对应setAttribute中的(string)**
2.entity—Emp类 实体类@Data
mapper—EmpMapper 接口 —对应xml中的select的id名
resourse—com/moqi/mapper ----EmpMapper.xml —resultMap sql语句
mybatis.xml ---- resources 中配置
3.service和util包
service----impl子包(EmpService接口)—EmpServiceImpl接口 —获得SqlSession数据
public class EmpServiceImpl implements EmpService {
@Override
public List listEmp() {
SqlSession sqlSession = MyBatisUtils.getSqlSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
List empList = empMapper.listEmp();
sqlSession.close();
return empList;
}
}
—EmpService类 ----等同于EmpMapper
public interface EmpService { //查询所有员工 List
util包----MyBatisUtils类–封装数据----工厂类
public class MyBatisUtils {
public static final boolean DEFAULT_AUTO_COMMIT=true;
private static final SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(
MyBatisUtils.class.getClassLoader().getResourceAsStream("mybatis.xml"));
public static SqlSession getSqlSession(boolean autoCommit){
return factory.openSession(autoCommit);
}
public static SqlSession getSqlSession(){
return factory.openSession(DEFAULT_AUTO_COMMIT);
}
}
总结:
1.MyBatisUtils 创建工厂------EmpServiceImpl拿走MyBatisUtils中的SqlSession获得empList—最后return empList
2.entity包中的Emp类—emplist.jsp EmpListServlet.java EmpService 接口 EmpServiceImpl.java
3.service包中的接口interface给了Impl类!----Empservlet类中new EmpServiceImpl得到 empService
然后查询 empService中的列表数据 得到 empList数据列 然后绑定给req.setAttribute给了jsp 最后通过req转发
req.getRequestDispatcher("/WEB-INF/pages/emplist.jsp").forward(req,resp);
1.*jsp用作显示,逻辑还是交给servlet去做-----加粗的名字必须一样
servlet中把数据绑定到req对象上------req.setAttribute(“empList”,empList)
jsp中接受servlet中的数据 -------
<%List empList =(List) request.getAttribute(“empList”);%>
2.resources中的包用 / 建
例如:com/moqi/mapper
req当作map集合使用
object可以放任何类型的数据
getAttribtue获得自己存储的信息
getParameter获得浏览器栏的信息----获得请求参数
问题:
1.mapper中EmpMapper.xml的namespace
—扫的是当前xml的全路径
2.resultmap和resultType区别:单表查询的话用resultType是最合适的。
使用mybatis进行数据库连接操作时对于SQL 语句的返回结果的处理两种方式
result Type:column和property名字完全一样
resultMap:column和propety名字不完全一样的时候
区别:mybatis.xml中
----设置
—日志
指定 MyBatis 所用日志的具体实现,未指定时将自动查找
—类型别名
----扫描放数据库的实体类
----扫描包下对应得那个实体类
—环境配置
—JDBC驱动得java类得完全限定名
—数据库得JDBC url地址
----登录数据库得用户名
-----登录数据库得密码
----映射器
----告诉mybatis到哪里找映射文件xml。将包内得映射器接口实现全部注册为映射器
3.相对地址和绝对地址:
相对路径----从本文件网上找 …/…/———参照物是自己 …/代表上一目录
绝对路径----从根找 / ——参照物是跟
例子:绝对路径
转发和重定向:小结
好的项目和好的技术不是一蹴而就的!!!!
结构
xml配置
pom配置
2.设计数据库
mb4字符集
数字—自动递增
emp_id int 主键
3.webapp—emplist.jsp(员工列表页)
java-----com.moqi.servlet ----EmpListServlet
http:8080/emplist= @WebServlet(urlPatterrns = {"/emplist"}) 代替的是web.xml中的那四行代码
4.欢迎页面----web.xml
welcome-file-list 8080就可以访问 emplist/
mvc模式
model 指的是数据模型
----entity
----dao ,mapper
----service
view ----jsp
controller ----servlet
ui框架----bootstrap
只修改jsp页面----重启update resources
jstl标签库 1.2版本
java stanrd tag language
jstl写法非常符合html标准,由jsp引擎解释成java代码
步骤
①jstl必须导入一个jar包 pom.xml
②在jsp中引入jstl标签
<%–c 代表core核心 --%>
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
jstl替代了jsp中的java代码
jsp中
<%List empList = (List) request.getAttribute("empList");%>
循环遍历
<% for (Emp emp : empList) {%>
<%=emp.getName()%>
<%=emp.getAge()%>
<%=emp.getSex()%>
<%=emp.getSalary()%>
<%=emp.getDeptId()%>
<% } %>
jstl中—头标签
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
循环遍历
${emp.name}
${emp.age}
${emp.sex}
${emp.salary}
${emp.deptId}
>
javaweb增删改查(二)
https://blog.csdn.net/qq_43505662/article/details/101366540