互相對應的:
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<Emp> empList = empService.listEmp();
//2把數據綁定到req對象上
req.setAttribute("empList",empList);
//3.轉發到jsp上
req.getRequestDispatcher("/WEB-INF/pages/emplist.jsp").forward(req,resp);
}
}
jsp頁面
<%List<Emp> empList = (List<Emp> 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<Emp> listEmp() {
SqlSession sqlSession = MyBatisUtils.getSqlSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
List<Emp> empList = empMapper.listEmp();
sqlSession.close();
return empList;
}
}
—EmpService類 ----等同於EmpMapper
public interface EmpService { //查詢所有員工 List<Emp> listEmp(); }
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<Emp> empList = (List<Emp>) request.getAttribute("empList");%>
循環遍歷
<% for (Emp emp : empList) {%>
<tr>
<td><%=emp.getName()%></td>
<td><%=emp.getAge()%></td>
<td><%=emp.getSex()%></td>
<td><%=emp.getSalary()%></td>
<td><%=emp.getDeptId()%></td>
</tr>
<% } %>
jstl中—頭標籤
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
循環遍歷
<c:forEach items="${empList}" var="emp">
<tr>
<td>${emp.name}</td>
<td>${emp.age}</td>
<td>${emp.sex}</td>
<td>${emp.salary}</td>
<td>${emp.deptId}</td>
</tr>
</c:forEach>>
javaweb增刪改查(二)
https://blog.csdn.net/qq_43505662/article/details/101366540