- 起一个web项目,然后配置环境,copy需要用到的jar包到lib中
- 配置xml文件,放置在src目录下。起名无限制,此处起名mybatis.xml
- 数据库中创建表,再创建pojo实体类文件夹
根据 实体属性,写变量以及生成set和get方法
(标准实体类对构造方法没有要求,可以不用写)
package com.steer.pojo;
/**
* @author yanl
* @date 2019-12-08 6:52 下午
*/
public class Account {
private int id;
private String accNo;
private int password;
private String name;
private double balance;
// 标准实体类对构造方法是没有要求的
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccNo() {
return accNo;
}
public void setAccNo(String accNo) {
this.accNo = accNo;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
- 写完实体类,再写实体类的mapper
4.1 新建mapper文件夹,按照标准命名规范给mapper的xml文件命名,此处命名:AccountMapper.xml
4.2 在mapper标签中给namespace属性添加值,值为 包名+文件名
<mapper namespace="com.steer.mapper.AccountMapper">
4.3 然后在mapper标签内就可以写select标签了。
- 写完mapper,创建service包,在包中写service类
5.1 先写接口
在接口中将要实现的业务全部写为对应的方法
5.2 在service包中创建impl包,在其中写Impl
在Impl中实现接口,完善每个业务逻辑所需要的代码
1.首先需要加载xml资源,构建一个Sqlsession对象,在通过对象调用xxxMapper.xml中的sql
// 从对应文件中加载资源,加载为Stream
InputStream is = Resources.getResourceAsStream("mybatis.xml");
// 前面是工厂模式 后面是构建者模式
// 构建一个工厂,通过工厂生成session
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
6.创建servlet包,编写servlet类
@WebServlet("/transfer")
public class TransferServlet extends HttpServlet {
private AccountService accService = new AccountServiceImpl();
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 信息中可能会有中文,先设置文本编码
req.setCharacterEncoding("utf-8");
// 实例化一个转出对象
Account accOut = new Account();
accOut.setAccNo(req.getParameter("accOutAccNo"));
accOut.setPassword(Integer.parseInt(req.getParameter("accOutPassword")));
accOut.setBalance(Double.parseDouble(req.getParameter("accOutBalance")));
// 实例化一个收款账户
Account accIn =new Account();
accIn.setAccNo(req.getParameter("accInAccNo"));
accIn.setName(req.getParameter("accInName"));
// 调用转账方法,返回的是转账业务的各个状态码
int index = accService.transfer(accIn, accOut);
if(index==AccountService.SUCCESS){
// 转账成功
// resp.sendRedirect("/bank/show");
resp.sendRedirect("success.jsp");
}else{
// 转账失败
HttpSession session = req.getSession();
session.setAttribute("code", index);
resp.sendRedirect("/bank/error/error.jsp");
}
}
}
网友评论