java在emp页面重写url_javaweb增删改查(一)

互相对应的:

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.查询数据库

ListempList = empService.listEmp();

//2把数据绑定到req对象上

req.setAttribute("empList",empList);

//3.转发到jsp上

req.getRequestDispatcher("/WEB-INF/pages/emplist.jsp").forward(req,resp);

}

}

jsp页面

empList = (Listrequest.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 ListlistEmp() {

SqlSession sqlSession = MyBatisUtils.getSqlSession();

EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);

ListempList = empMapper.listEmp();

sqlSession.close();

return empList;

}

}

—EmpService类 ----等同于EmpMapper

public interface EmpService { //查询所有员工 ListlistEmp(); }

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中的数据 -------

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标签

jstl替代了jsp中的java代码

jsp中

empList = (List) request.getAttribute("empList");%>

循环遍历

jstl中—头标签

循环遍历

${emp.name}

${emp.age}

${emp.sex}

${emp.salary}

${emp.deptId}>

javaweb增删改查(二)

https://blog.csdn.net/qq_43505662/article/details/101366540

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里是一个简单的Servlet实现增删改查Emp表的示例: ```java import java.io.IOException; import java.io.PrintWriter; import java.sql.*; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/EmployeeServlet") public class EmployeeServlet extends HttpServlet { private static final long serialVersionUID = 1L; public EmployeeServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String action = request.getParameter("action"); // JDBC连接信息 String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"; String user = "root"; String password = "password"; Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); if ("add".equals(action)) { // 处理新增请求 String ename = request.getParameter("ename"); int age = Integer.parseInt(request.getParameter("age")); String sex = request.getParameter("sex"); String sql = "insert into Emp(ename,age,sex) values('" + ename + "'," + age + ",'" + sex + "')"; stmt.executeUpdate(sql); out.println("新增员工成功!"); } else if ("update".equals(action)) { // 处理修改请求 int id = Integer.parseInt(request.getParameter("id")); String ename = request.getParameter("ename"); int age = Integer.parseInt(request.getParameter("age")); String sex = request.getParameter("sex"); String sql = "update Emp set ename='" + ename + "',age=" + age + ",sex='" + sex + "' where id=" + id; stmt.executeUpdate(sql); out.println("修改员工成功!"); } else if ("delete".equals(action)) { // 处理删除请求 int id = Integer.parseInt(request.getParameter("id")); String sql = "delete from Emp where id=" + id; stmt.executeUpdate(sql); out.println("删除员工成功!"); } else { // 处理查询请求 String sql = "select * from Emp"; ResultSet rs = stmt.executeQuery(sql); out.println("<table border='1'><tr><th>ID</th><th>姓名</th><th>年龄</th><th>性别</th></tr>"); while (rs.next()) { out.println("<tr><td>" + rs.getInt("id") + "</td><td>" + rs.getString("ename") + "</td><td>" + rs.getInt("age") + "</td><td>" + rs.getString("sex") + "</td></tr>"); } out.println("</table>"); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 在这个示例中,我们处理了四种请求:add(新增)、update(修改)、delete(删除)和默认的查询请求。我们通过 `action` 参数来判断当前请求的类型,并根据请求类型执行不同的数据库操作。注意,在实际开发中,我们需要对用户输入进行校验和过滤,避免 SQL 注入等安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值