1. 程式人生 > >專案中 MyBatis 的使用

專案中 MyBatis 的使用

1.xml 檔案

1-1.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="admin.adminMapper">
</mapper>

 

1-2.select 語句

<select id="getStudent" parameterType=
"pd" resultType="pd"> SELECT * from student <where> <if test="s_id!=null and s_id!=''"> stuid=#{s_id} </if> <if test="s_name!=null and s_name!=''"> and stuname=#{s_name} </if> </where> </select
>

1-3.其它語句 (以 delete 為例)

<delete parameterType="pd" id="deleteTeacherById">
    DELETE FROM teacher WHERE
    t_id=#{t_id}
</delete>

1-4.模糊查詢

name LIKE "%"#{name}"%"

2.傳入引數型別

package com.ssm.sample.util;

import java.util.ArrayList;
import java.util.Collection;
import
java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.BiConsumer; import javax.servlet.http.HttpServletRequest; @SuppressWarnings("rawtypes") public class PageData extends HashMap implements Map { private static final long serialVersionUID = 1L; Map<Object, Object> map = null; HttpServletRequest request; public static void main(String[] args) { PageData pageData = new PageData(); List<PageData> list = new ArrayList<>(); PageData a=new PageData(); a.put("key", "asdas"); list.add(a); pageData.put("list", list); pageData.put("222", "23232"); System.err.println(pageData); } public PageData(HttpServletRequest request) { this.request = request; Map properties = request.getParameterMap(); Map<Object, Object> returnMap = new HashMap<Object, Object>(); Iterator entries = properties.entrySet().iterator(); Map.Entry entry; String name = ""; String value = ""; while (entries.hasNext()) { entry = (Map.Entry) entries.next(); name = (String) entry.getKey(); Object valueObj = entry.getValue(); if (null == valueObj) { value = ""; } else if (valueObj instanceof String[]) { value = ""; String[] values = (String[]) valueObj; for (int i = 0; i < values.length; i++) { value += values[i] + ","; } value = value.substring(0, value.length() - 1); } else { value = valueObj.toString(); } returnMap.put(name, value); } map = returnMap; } public PageData() { map = new HashMap<Object, Object>(); } public Object get(Object key) { Object obj = null; if (map.get(key) instanceof Object[]) { Object[] arr = (Object[]) map.get(key); obj = request == null ? arr : (request.getParameter((String) key) == null ? arr : arr[0]); } else { obj = map.get(key); } return obj; } /** * 以安全轉換方式獲取鍵值,如果找不到鍵則返回的值為空 * * @param key * @return */ public String getString(Object key) { Object obj = get(key); return obj == null ? "" : obj.toString(); } /** * 以安全轉換方式獲取鍵值,如果找不到鍵則返回的值為null */ public String getStringNull(Object key) { Object obj = get(key); return obj == null ? null : obj.toString(); } /** * 新增鍵值對 */ public Object put(Object key, Object value) { return map.put(key, value); } /** * 移除鍵 */ public Object remove(Object key) { return map.remove(key); } /** * 清空 */ public void clear() { map.clear(); } /** * 是否包含鍵 */ public boolean containsKey(Object key) { return map.containsKey(key); } public Map<Object,Object> getMap(){ return map; } /** * 是否包含值 */ public boolean containsValue(Object value) { return map.containsValue(value); } public Set entrySet() { return map.entrySet(); } public boolean isEmpty() { return map.isEmpty(); } public Set<Object> keySet() { return map.keySet(); } @SuppressWarnings("unchecked") public void putAll(Map t) { map.putAll(t); } public int size() { return map.size(); } public Collection<Object> values() { return map.values(); } /** * 適用jdk8的方法 */ @SuppressWarnings("unchecked") @Override public void forEach(BiConsumer action) { this.map.forEach(action); } }

3.Service層

1.baseService

package com.ssm.sample.service.base;

import java.util.Properties;

import javax.annotation.Resource;

import org.mybatis.spring.SqlSessionTemplate;

import com.ssm.sample.util.Logger;

public class BaseService {
    protected Logger logger = Logger.getLogger(this.getClass());
    
    @Resource(name="sqlSessionTemplate")
    protected SqlSessionTemplate sqlSessionTemplate;
    
    @Resource(name = "globalConf")
    protected Properties globalConf;
}

 

2.UserService

package com.ssm.sample.service.user;

import java.util.List;

import org.springframework.stereotype.Service;

import com.ssm.sample.service.base.BaseService;
import com.ssm.sample.util.PageData;

@Service("UserService")
public class UserService extends BaseService {

    /*
     * 學生
     */
    public List<PageData> getStudent(PageData pd) {
        return this.sqlSessionTemplate.selectList("user.userMapper.getStudent", pd);
    }
}

4.Facade層

1.baseFacade (空的)

2.UserFacade

package com.ssm.sample.facade.user;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ssm.sample.facade.base.BaseFacade;
import com.ssm.sample.service.user.UserService;
import com.ssm.sample.util.PageData;

@Service("UserFacade")
public class UserFacade extends BaseFacade {

    @Autowired
    private UserService userservice;

    /*
     * 獲得學生
     */
    public List<PageData> getStudent(PageData pd) {
        List<PageData> list = this.userservice.getStudent(pd);
        return list;
    }    
}

5.Controller層

    /*
     * 學生登入
     */
    @ResponseBody
    @RequestMapping({ "/s_login" })
    public Object s_Login() {
        PageData pd = this.getPageData();

        List<PageData> student = new ArrayList<>();

        Map<String, String> map = new HashMap<String, String>();
        try {
            student = this.userFacade.getStudent(pd);

            if (student.size() != 0) {
                map.put("check", "true");               
            } else {
                map.put("check", "false");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }