Tomcat 서버 + MySQL 데이터베이스 + MyBatis 지구층 프레임워크의 간단한 사용
11922 단어 안드로이드 실전 노트
2. mybatis의jar 패키지와 mysql의jar 패키지를 다운로드합니다(저는 mybatis-3.1.1.jar, mysql-connector-java-5.125-bin.jar를 사용합니다)
3、다운로드한jar 패키지 2개를 프로젝트WebRoot-->WEB-INF-->lib 디렉터리로 복사
4, 프로젝트 src 디렉토리에서 conf.xml 파일 구성
4
5 데이터베이스의 모든 표에 따라 bean(entity) 패키지에서 대응하는 실체를 구축한다4
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、마핑 패키지를 새로 만들고 실체에 대응하는 마퍼를 만드는 것이 좋습니다.xml 파일, 비안 패키지 아래에서 직접 만들었습니다. 4단계 conf.xml 파일에 등록하는 것을 잊지 마십시오.4
insert into
t_department(dep_com_id,dep_name,dep_desc)
values(#{companyId},#{departmentName},#{departmentDesc})
delete from t_department where
dep_id=#{departmentId}
update t_department set
dep_com_id=#{companyId},dep_name=#{departmentName},dep_desc=#{departmentDesc}
where dep_id=#{departmentId}
7,dao층의 실현 클래스에서 호출4
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 getDepByComId(int comId) {
SqlSession session = null;
try{
session= MyBatisUtil.getFactory().openSession();
String statement = "com.se7en.bean.departmentMapper.getDepByComId";
List 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 4
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 디렉터리에 있는 웹을 기억하세요.xml 등록 (프로젝트에서 오른쪽 단추를 누르면 새 서브렛이 자동으로 등록되며 복사하면 등록을 잊어버릴 수 있습니다)4
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, 서비스층의 실현 유형 첨부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 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은 서비스층의 인터페이스와 실현 클래스를 호출하여 json 문자열을 되돌려줍니다
4. 서비스 층의 실현 클래스는 dao층의 인터페이스와 실현 클래스를 호출하고 데이터베이스에 CRUD 조작을 한다.
5.dao층의 실현 클래스는 mybatis 프레임워크를 사용하여 데이터베이스와 데이터 상호작용을 한다