Tomcat服务器+MySQL数据库+MyBatis持久层框架的简单使用

1、用MyEclipse创建一个WEB工程

2、下载mybatis的jar包和连接mysql的jar包(我使用的是mybatis-3.1.1.jar,mysql-connector-java-5.1.25-bin.jar)

3、将下载的2个jar包拷贝到工程WebRoot-->WEB-INF-->lib目录下

4、在工程src目录下,配置conf.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://localhost:3306/cow" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	<!-- 添加映射文件的注册 -->
	<mappers>
		<mapper resource="com/se7en/bean/attendMapper.xml"/>
		<mapper resource="com/se7en/bean/attendTypeMapper.xml"/>
		<mapper resource="com/se7en/bean/companyMapper.xml"/>
		<mapper resource="com/se7en/bean/departmentMapper.xml"/>
		<mapper resource="com/se7en/bean/jobMapper.xml"/>
		<mapper resource="com/se7en/bean/staffMapper.xml"/>
		<mapper resource="com/se7en/bean/vacateMapper.xml"/>
		<mapper resource="com/se7en/bean/vacateTypeMapper.xml"/>
	</mappers>
</configuration>
5、根据数据库的每一个表,在bean(entity)包下建立对应的实体
package com.se7en.bean;

import java.io.Serializable;

public class DepartmentInfo implements Serializable {
	
	private int companyId;
	private int departmentId;
	private String departmentName;
	private String departmentDesc;

	public int getCompanyId() {
		return companyId;
	}

	public void setCompanyId(int companyId) {
		this.companyId = companyId;
	}

	public int getDepartmentId() {
		return departmentId;
	}

	public void setDepartmentId(int departmentId) {
		this.departmentId = departmentId;
	}

	public String getDepartmentName() {
		return departmentName;
	}

	public void setDepartmentName(String departmentName) {
		this.departmentName = departmentName;
	}

	public String getDepartmentDesc() {
		return departmentDesc;
	}

	public void setDepartmentDesc(String departmentDesc) {
		this.departmentDesc = departmentDesc;
	}

}
6、最好新建一个mapping包,建立对应实体的mapper.xml文件,我是直接在bean包下新建的,别忘了在第4步的conf.xml文件中进行注册

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.se7en.bean.departmentMapper">
	<insert id="add" parameterType="com.se7en.bean.DepartmentInfo">
		insert into
		t_department(dep_com_id,dep_name,dep_desc)
		values(#{companyId},#{departmentName},#{departmentDesc})
	</insert>

	<select id="getDepByComId" parameterType="int" resultMap="departmentMapper">
		select
		* from t_department where dep_com_id=#{companyId}
	</select>

	<select id="getDepById" parameterType="int" resultMap="departmentMapper">
		select *
		from t_department where dep_id=#{departmentId}
	</select>

	<delete id="del" parameterType="int">
		delete from t_department where
		dep_id=#{departmentId}
	</delete>

	<update id="edit" parameterType="com.se7en.bean.DepartmentInfo">
		update t_department set
		dep_com_id=#{companyId},dep_name=#{departmentName},dep_desc=#{departmentDesc}
		where dep_id=#{departmentId}
	</update>

	<resultMap type="com.se7en.bean.DepartmentInfo" id="departmentMapper">
		<id property="departmentId" column="dep_id" />
		<result property="companyId" column="dep_com_id" />
		<result property="departmentName" column="dep_name" />
		<result property="departmentDesc" column="dep_desc" />
	</resultMap>
</mapper>
7、在dao层的实现类进行调用

package com.se7en.dao.impl;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.se7en.bean.DepartmentInfo;
import com.se7en.dao.DepartmentDaoIf;
import com.se7en.utils.MyBatisUtil;

public class DepartmentDaoImpl implements DepartmentDaoIf {
	
	public DepartmentInfo getDepById(int depId) {
		SqlSession session = null;
		try{
			session= MyBatisUtil.getFactory().openSession();
			String statement = "com.se7en.bean.departmentMapper.getDepById";
			DepartmentInfo info = session.selectOne(statement,depId);
			session.commit();
			return info;
		}catch(Exception e){
			e.printStackTrace();
			session.rollback();
		}finally{
			if(session != null){
				session.close();
			}
		}
		return null;
	}
	
	public List<DepartmentInfo> getDepByComId(int comId) {
		SqlSession session = null;
		try{
			session= MyBatisUtil.getFactory().openSession();
			String statement = "com.se7en.bean.departmentMapper.getDepByComId";
			List<DepartmentInfo> list = session.selectList(statement,comId);
			session.commit();
			return list;
		}catch(Exception e){
			e.printStackTrace();
			session.rollback();
		}finally{
			if(session != null){
				session.close();
			}
		}
		return null;
	}

	public boolean init(int comId) {
		DepartmentInfo info = new DepartmentInfo();
		info.setCompanyId(comId);
		info.setDepartmentName("未命名");
		info.setDepartmentDesc("无");
		return add(info);
	}
	
	public boolean add(DepartmentInfo info) {
		SqlSession session = null;
		try{
			session= MyBatisUtil.getFactory().openSession();
			String statement = "com.se7en.bean.departmentMapper.add";
			session.insert(statement, info);
			session.commit();
			return true;
		}catch(Exception e){
			e.printStackTrace();
			session.rollback();
		}finally{
			if(session != null){
				session.close();
			}
		}
		return false;
	}

	public boolean del(int depId) {
		SqlSession session = null;
		try{
			session= MyBatisUtil.getFactory().openSession();
			String statement = "com.se7en.bean.departmentMapper.del";
			session.delete(statement, depId);
			session.commit();
			return true;
		}catch(Exception e){
			e.printStackTrace();
			session.rollback();
		}finally{
			if(session != null){
				session.close();
			}
		}
		return false;
	}

	public boolean edit(DepartmentInfo info) {
		SqlSession session = null;
		try{
			session= MyBatisUtil.getFactory().openSession();
			String statement = "com.se7en.bean.departmentMapper.edit";
			session.update(statement, info);
			session.commit();
			return true;
		}catch(Exception e){
			e.printStackTrace();
			session.rollback();
		}finally{
			if(session != null){
				session.close();
			}
		}
		return false;
	}
}
8、附上MyBatisUtil.java

package com.se7en.utils;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtil {
	//定义方法
	public static SqlSessionFactory getFactory(){
		String resource = "conf.xml";
		//读取配置文件,为了解决项目在发布以后的路径带来的问题我们可以去使用反射机制来封装
		InputStream is = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource);
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
		return factory;
	}
}
9、附上servlet,记得在WebRoot-->WEB-INF目录下的web.xml进行注册(直接在工程中右键新建Servlet可以自动注册,复制的话可能忘了注册)

package com.se7en.action.manage;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.se7en.bean.DepartmentInfo;
import com.se7en.dao.impl.DepartmentDaoImpl;
import com.se7en.service.DepartmentServiceIf;
import com.se7en.service.impl.DepartmentServiceImpl;
import com.se7en.utils.Constants;

/**
 * 部门管理
 * 
 * @author Se7en
 * 
 */
public class Department extends HttpServlet {

	private DepartmentServiceIf sv = new DepartmentServiceImpl();

	@Override
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		// 获取远程地址
		String addr = request.getRemoteAddr();
		System.out.println(addr + "部门管理");
		
		String str = "";
		/** 0 增加、1 删除、2 修改 */
		int actionType = Integer.parseInt(request.getParameter(Constants.ACTIONTYPE));
		switch (actionType) {
		case 0:
			str = add(request);
			break;
		case 1:
			str = del(request);
			break;
		case 2:
			str = edit(request);
			break;
		default:
			break;
		}
		
		PrintWriter out = response.getWriter();
		
		System.out.println(str);
		
		out.write(str);
		out.close();
	}

	private String add(HttpServletRequest request) {
		int companyId = Integer.parseInt(request.getParameter(Constants.COMPANYID));
		String departmentName = request.getParameter(Constants.DEPARTMENTNAME);
		String departmentDesc = request.getParameter(Constants.DEPARTMENTDESC);
		
		DepartmentInfo dep = new DepartmentInfo();
		dep.setCompanyId(companyId);
		dep.setDepartmentName(departmentName);
		dep.setDepartmentDesc(departmentDesc);
		
		String res = sv.add(dep);
		return res;
	}
	
	private String del(HttpServletRequest request) {
		int departmentId = Integer.parseInt(request.getParameter(Constants.DEPARTMENTID));
		
		String res = sv.del(departmentId);
		return res;
	}
	
	private String edit(HttpServletRequest request) {
		int departmentId = Integer.parseInt(request.getParameter(Constants.DEPARTMENTID));
		String departmentName = request.getParameter(Constants.DEPARTMENTNAME);
		String departmentDesc = request.getParameter(Constants.DEPARTMENTDESC);
		
		DepartmentInfo info = new DepartmentDaoImpl().getDepById(departmentId);
		info.setDepartmentName(departmentName);
		info.setDepartmentDesc(departmentDesc);
		
		String res = sv.edit(info);
		return res;
	}
}
10、附上service层的实现类

package com.se7en.service.impl;

import java.util.List;

import net.sf.json.JSONObject;

import com.se7en.bean.DepartmentInfo;
import com.se7en.entity.DepRes;
import com.se7en.service.DepartmentServiceIf;
import com.se7en.utils.BaseService;
import com.se7en.utils.Result;

public class DepartmentServiceImpl extends BaseService implements DepartmentServiceIf{

	public String add(DepartmentInfo info) {
		Result res = new Result();
		boolean b = departmentDao.add(info);
		if(b){
			res.setSuccess(true);
			res.setMessage("增加部门成功");
		}else{
			res.setSuccess(false);
			res.setMessage("未知错误,请联系管理员");
		}
		return JSONObject.fromObject(res).toString();
	}

	public String del(int depId) {
		Result res = new Result();
		boolean b = departmentDao.del(depId);
		if(b){
			res.setSuccess(true);
			res.setMessage("删除部门成功");
		}else{
			res.setSuccess(false);
			res.setMessage("未知错误,请联系管理员");
		}
		return JSONObject.fromObject(res).toString();
	}

	public String edit(DepartmentInfo info) {
		Result res = new Result();
		boolean b = departmentDao.edit(info);
		if(b){
			res.setSuccess(true);
			res.setMessage("修改部门成功");
		}else{
			res.setSuccess(false);
			res.setMessage("未知错误,请联系管理员");
		}
		return JSONObject.fromObject(res).toString();
	}

	public String get(int comId) {
		List<DepartmentInfo> list = departmentDao.getDepByComId(comId);
		if(list==null){
			Result res = new Result();
			res.setSuccess(false);
			res.setMessage("未知错误,请联系管理员");
			return JSONObject.fromObject(res).toString();
		}else{
			DepRes res = new DepRes();
			res.setSuccess(true);
			res.setMessage("获取部门成功");
			res.setDepartment(list);
			return JSONObject.fromObject(res).toString();
		}
	}
	
}

以上是使用Tomcat+MySQL+MyBatis搭建的一个简易服务端框架,大概流程是这样的:

1、安卓端使用HTTP协议发送请求

2、在servlet下进行接收请求并做出响应

3、servlet调用service层的接口以及实现类,返回json字符串

4、service层的实现类调用dao层的接口以及实现类,对数据库进行CRUD操作

5、dao层的实现类使用mybatis框架,与数据库进行数据交互

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中提到的项目架构是基于Java语言的B/S架构,使用了JSP和ssm框架。其中,前端技术包括HTML、CSS、JS、JQuery等,后端技术包括MyBatis作为持久层框架数据库使用MySQL5.5/5.7/8.0版本,运行服务器可以选择Tomcat7.0/8.0/8.5/9.0等版本。该项目实现了购物车功能,可以区分管理员用户和普通用户。普通用户可以进行注册登录,浏览网站,查看商品和详情,加入购物车,下单,查询订单,修改个人信息等操作。管理员用户则可以进行水果基本信息的维护、分类管理、订单管理、用户管理等功能。这个项目可以使用idea开发工具进行开发和运行,不支持MyEclipse和eclipse运行。如果想在eclipse中运行,需要进行转换。你可以从https://www.jiuniao.com/code/13412.html获取该项目的代码。 #### 引用[.reference_title] - *1* [基于ssm的校园二手物品交易平台(idea+spring+springmvc+mybatis+jsp)](https://blog.csdn.net/qq_43485489/article/details/126461870)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [基于javaweb+mysql的在线水果商城系统(java+JSP+Spring+SpringMVC +MyBatis+html+mysql)](https://blog.csdn.net/m0_71497271/article/details/125030700)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值