示例图:
第一步,创建数据库:
【第一个排序自动递增必须打勾,否则无法新增】
第二步, 创包:
①创建entity包——》EmpInfo.java
【myeclipse 快捷键:alt + shift + s
idea 快捷键: fn + alt + ins】
public class EmpInfo {
private int empno;
private String empname;
private String empsex;
private int empage;
private String job;
private int sal;
private String deptname;
public int getEmpno() {
return empno;
}
public void setEmpno(int empno) {
this.empno = empno;
}
public String getEmpname() {
return empname;
}
public void setEmpname(String empname) {
this.empname = empname;
}
public String getEmpsex() {
return empsex;
}
public void setEmpsex(String empsex) {
this.empsex = empsex;
}
public int getEmpage() {
return empage;
}
public void setEmpage(int empage) {
this.empage = empage;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getSal() {
return sal;
}
public void setSal(int sal) {
this.sal = sal;
}
public String getDeptname() {
return deptname;
}
public void setDeptname(String deptname) {
this.deptname = deptname;
}
}
②创建mapper包——》EmpInfoMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.zq.mapper.EmpInfoMapper">
<!-- 增 学生信息 -->
<insert id="add" parameterType="com.zq.entity.EmpInfo">
insert into EmpInfo values(null,#{empname},#{empsex},#{empage},#{job},#{sal},#{deptname})
</insert>
<!-- 删 学生方法 -->
<delete id="del" parameterType="Integer">
delete from EmpInfo where empno=#{empno}
</delete>
<!-- 改 学生方法 -->
<update id="upd" parameterType="com.zq.entity.EmpInfo">
update EmpInfo set empname=#{empname},empsex=#{empsex},empage=#{empage},job=#{job},sal=#{sal},deptname=#{deptname}
where empno=#{empno}
</update>
<!-- 查 全部学生信息 -->
<select id="all" resultType="com.zq.entity.EmpInfo">
select * from EmpInfo
</select>
<!-- 查 单个学生信息 -->
<select id="one" parameterType="Integer" resultType="com.zq.entity.EmpInfo">
select * from EmpInfo where empno=#{empno}
</select>
</mapper>
③创建Dao包——》EmpInfoDao.java
import java.util.List;
import com.zq.entity.EmpInfo;
import com.zq.util.BaseSqlSession;
public class EmpInfoDao {
// 增 学生方法
public static int addEmpInfo(EmpInfo stu){
//定义变量保存受影响行数
int count = 0;
//执行新增SQL语句,接收一个受影响行数
count = BaseSqlSession.getSession().insert("com.zq.mapper.EmpInfoMapper.add",stu);
//关闭资源
BaseSqlSession.closeSession();
return count;
}
// 删 学生方法
public static int delteEmpInfo(int stuid){
int count = 0;
count = BaseSqlSession.getSession().delete("com.zq.mapper.EmpInfoMapper.del",stuid);
BaseSqlSession.closeSession();
return count;
}
// 改 学生方法
public static int updEmpInfo(EmpInfo stu){
int count = 0;
count = BaseSqlSession.getSession().update("com.zq.mapper.EmpInfoMapper.upd",stu);
BaseSqlSession.closeSession();
return count;
}
// 查 全部学生信息方法
public static List<EmpInfo> getAllEmpInfo(){
//使用MyBatis执行查询
List<EmpInfo> stuList = BaseSqlSession.getSession().selectList("com.zq.mapper.EmpInfoMapper.all");
//关闭
BaseSqlSession.closeSession();
return stuList;
}
// 查 单个学生信息
public static EmpInfo selectone(int stuid){
EmpInfo selectOne = BaseSqlSession.getSession().selectOne("com.zq.mapper.EmpInfoMapper.one",stuid);
BaseSqlSession.closeSession();
return selectOne;
}
}
④创建servlet——》EmpInfoServlet.java
【doPost(request, response);】必加,否则容易跳转失败
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.zq.entity.EmpInfo;
import com.zq.Dao.EmpInfoDao;
public class EmpInfoServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置字符集编码
request.setCharacterEncoding("utf-8");
//获取code值判断进行何种操作
int code=Integer.parseInt(request.getParameter("code"));
HttpSession session=request.getSession();
//创建学生对象
EmpInfo stu = new EmpInfo();
//调用查询所有学生信息方法,返回一个学生对象集合
if(code==1){
List<EmpInfo> stuList = EmpInfoDao.getAllEmpInfo();
//跳转页面-->请求转发
request.setAttribute("stuList", stuList);
request.getRequestDispatcher("all.jsp").forward(request, response);
//新增学生方法
}else if(code==2){
String empname=request.getParameter("empname");
String empsex=request.getParameter("empsex");
int empage=Integer.parseInt(request.getParameter("empage"));
String job=request.getParameter("job");
int sal=Integer.parseInt(request.getParameter("sal"));
String deptname=request.getParameter("deptname");
//将学生信息封装学生对象中
stu.setEmpname(empname);
stu.setEmpsex(empsex);
stu.setEmpage(empage);
stu.setJob(job);
stu.setSal(sal);
stu.setDeptname(deptname);
//调用新增学生信息方法,接受一个受影响行数
int count = EmpInfoDao.addEmpInfo(stu);
//判断新增是否成功,成功则重定向至查询
if(count>0){
//新增成功
response.sendRedirect("EmpInfoServlet?code=1");
}
}else if(code==3){
//查询单个学生信息方法
int empno=Integer.parseInt(request.getParameter("empno"));
EmpInfo selectone = EmpInfoDao.selectone(empno);
session.setAttribute("one", selectone);
response.sendRedirect("selectone.jsp");
}else if(code==4){
//获取修改学生信息
int empno=Integer.parseInt(request.getParameter("empno"));
String empname=request.getParameter("empname");
String empsex=request.getParameter("empsex");
int empage=Integer.parseInt(request.getParameter("empage"));
String job=request.getParameter("job");
int sal=Integer.parseInt(request.getParameter("sal"));
String deptname=request.getParameter("deptname");
//将学生信息封装学生对象中
stu.setEmpno(empno);
stu.setEmpname(empname);
stu.setEmpsex(empsex);
stu.setEmpage(empage);
stu.setJob(job);
stu.setSal(sal);
stu.setDeptname(deptname);
//调用修改学生方法
int count = EmpInfoDao.updEmpInfo(stu);
//判断
if(count>0){
//修改成功跳回查询所有页面
request.getRequestDispatcher("EmpInfoServlet?code=1").forward(request,response);
}
}else if(code==5){
//接受删除学生id
int empno=Integer.parseInt(request.getParameter("empno"));
//调用删除方法
int count = EmpInfoDao.delteEmpInfo(empno);
if(count>0){
//删除成功跳回查询所有页面
response.sendRedirect("EmpInfoServlet?code=1");
}
}
}
}
⑤创建mybatis-config.xml连接数据库
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd" >
<configuration>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="jdbc"></transactionManager>
<dataSource type="pooled">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/zq/mapper/EmpInfoMapper.xml"></mapper>
</mappers>
</configuration>
⑥创建util包——》BaseSqlSession.java
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class BaseSqlSession {
private static SqlSessionFactory sqlSessionFactory = null;
private static SqlSession sqlSession =null;
static{
try {
//1.加载核心配置文件
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
//2.获取SqlSessionFactory工厂
sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//1.获取SQLSession对象
public static SqlSession getSession(){
sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
//2.关闭资源
public static void closeSession(){
sqlSession.commit();
sqlSession.close();
}
}
第三步,做一个简单页面jsp:
①创建index.jsp
<body>
<a href="EmpInfoServlet?code=1">查询所有学生信息</a>
</body>
②主页面——》创建all.jsp
【导入:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>】
<body>
<table border="1" align="center">
<caption>学生信息表</caption>
<tr>
<th>学号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>职业</th>
<th>工资</th>
<th>部门</th>
<th colspan="2">操作</th>
</tr>
<c:forEach items="${stuList}" var="stu">
<tr>
<td>${stu.empno}</td>
<td>${stu.empname}</td>
<td>${stu.empsex }</td>
<td>${stu.empage }</td>
<td>${stu.job}</td>
<td>${stu.sal}</td>
<td>${stu.deptname}</td>
<td><a href="EmpInfoServlet?code=3&empno=${stu.empno}">修改</a></td>
<td><a href="EmpInfoServlet?code=5&empno=${stu.empno}">删除</a></td>
</tr>
</c:forEach>
<tr>
<th colspan="9"><a href="insert.jsp">新增学生信息</a></th>
</tr>
</table>
</body>
③新增页面——》insert.jsp
<body>
<form action="EmpInfoServlet?code=2" method="post">
<table border="1" align="center">
<caption>新增学生信息</caption>
<tr>
<td>姓名:</td>
<td>
<input type="text" name="empname">
</td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="empsex" value="男" checked="checked">男
<input type="radio" name="empsex" value="女">女
</td>
</tr>
<tr>
<td>年龄:</td>
<td>
<input type="text" name="empage">
</td>
</tr>
<tr>
<td>职务:</td>
<td>
<input type="text" name="job">
</td>
</tr>
<tr>
<td>工资:</td>
<td>
<input type="text" name="sal">
</td>
</tr>
<tr>
<td>部门:</td>
<td>
<input type="text" name="deptname">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="新增">
</td>
</tr>
</table>
</form>
</body>
④修改页面——》selectone.jsp
【导入:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>】
<body>
<form action="EmpInfoServlet?code=4" method="post">
<table border="1px" align="center">
<tr>
<td>学号:<input type="text" name="empno" value="${one.empno }"/></td>
</tr>
<tr>
<td>姓名:<input type="text" name="empname" value="${one.empname }"/></td>
</tr>
<tr>
<c:if test="${one.empsex=='女' }">
<td>性别:<input type="radio" name="empsex" value="男" />男<input type="radio" name="empsex" checked="checked" value="女"/>女</td>
</c:if>
<c:if test="${one.empsex!='女' }">
<td>性别:<input type="radio" name="empsex" checked="checked" value="男"/>男<input type="radio" name="empsex" value="女"/>女</td>
</c:if>
</tr>
<tr>
<td>年龄:<input type="text" name="empage" value="${one.empage }"/></td>
</tr>
<tr>
<td>职务:<input type="text" name="job" value="${one.job }"/></td>
</tr>
<tr>
<td>工资:<input type="text" name="sal" value="${one.sal }"/></td>
</tr>
<tr>
<td>部门:<input type="text" name="deptname" value="${one.deptname }"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="修改" />
</td>
</tr>
</table>
</form>
</body>
【有几个包需要导入】
https://download.csdn.net/download/m0_57142613/86842033
总结:写不难,难的是运行报错。头秃。。。。细心细心再细心。