Mybatis Proxy Mode creation

Source: Internet
Author: User

MyBatis The difference between proxy mode and non-proxy mode:

The Mapper class only needs to define the interface, and the value of the namespace of the mapper mapping file must be the full class name of the Mapper interface

The ID of the written SQL must be the same as the corresponding method name in the Mapper interface

configuration file Mybatisconfig.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> <properties resource=" jdbc.properties "/> <typeAliases> <pac Kage name= "Mybatis.domian"/> <package name= "Mybatis.vo"/> </typeAliases> <environments D
            efault= "Mybatis_1" > <environment id= "mybatis_1" > <transactionmanager type= "JDBC"/>
                <datasource type= "Pooled" > <property name= "Driver" value= "${driver}"/>
                <property name= "url" value= "${url}"/> <property name= "username" value= "${username}"/> <property name= "Password" value= "${password}"/> </dataSource> </environment&gt
    ; </environments> <mappers> <package name= "Mybatis.mapper" &GT;&LT;/package> </mappers> </configuration> 

entity class User

Package Mybatis.domian;
Import java.io.Serializable;
Import Java.util.Date;

Import java.util.Objects;
    public class User implements serializable{private Integer ID;
    private String name;
    private String password;
    Private Float salary;
    Private Date birthday;

    Private Department Department;
    Public Department getdepartment () {return Department;
    } public void Setdepartment (Department Department) {this.department = Department;
    } public String GetPassword () {return password;
    } public void SetPassword (String password) {this.password = password;
    } public Integer GetId () {return id;
    } public void SetId (Integer id) {this.id = ID;
    } public String GetName () {return name;
    } public void SetName (String name) {this.name = name;
    } public Float Getsalary () {return salary; } public void Setsalary (Float salary) {thiS.salary = salary;
    Public Date Getbirthday () {return birthday;
    } public void Setbirthday (Date birthday) {this.birthday = birthday;
        } @Override public boolean equals (Object o) {if (this = = O) return true;
        if (o = = NULL | | getclass ()! = O.getclass ()) return false;
        User user = (user) O; return objects.equals (ID, user.id) && objects.equals (name, user.name) && O
    Bjects.equals (Salary, User.salary) && objects.equals (Birthday, user.birthday);
    } @Override public int hashcode () {return Objects.hash (ID, name, salary, birthday); } @Override Public String toString () {return "user{" + "id=" + ID + ", n
                Ame= ' + name + ' \ ' + ', password= ' + password + ' \ ' + ', salary= ' + salary + ", birthday=" + Birthday + '} ';
 }
}

entity Class Department

Package Mybatis.domian;
Import java.io.Serializable;
Import Java.util.HashSet;

Import Java.util.Set;
    public class Department implements Serializable {private Integer ID;
    private String name;
   Private String location;

    Private set<user> Set = new hashset<> ();
    Public set<user> Getset () {return Set;
    } public void Setset (set<user> set) {this.set = set;
    } public Integer GetId () {return id;
    } public void SetId (Integer id) {this.id = ID;
    } public String GetName () {return name;
    } public void SetName (String name) {this.name = name;
    } public String GetLocation () {return location;
    } public void setlocation (String location) {this.location = location;
                } @Override Public String toString () {return "department{" + "id=" + ID + ", Name= ' + name + ' + ' +", location= ' + location + ' \ ' + '} ';
 }
}

Mapper Interface Usermapper

Package mybatis.mapper;

Import mybatis.domian.Department;
Import Mybatis.domian.User;
Import Mybatis.vo.UserQueryVo;

Import java.util.List;
Import Java.util.Map;

Public interface Usermapper {
    void Save (user user);
    void Delete (user user);
    void update (user user);
    User FindByID (Integer ID);
    List<user> findAll ();
    List<user> Findbymap (map<string,object> Map);
    List<user> Findqueryvo (Userqueryvo userqueryvo);
    Department finddepaetmentbyusername (String name);
    Department findDepaetmentByUserName1 (String name);
    User finduserbyname (String name);

}

Service Interface

Package mybatis.service;

Import mybatis.domian.Department;
Import Mybatis.domian.User;

Import java.util.List;

Public interface UserService {
    void AddUser (user user);
    List<user> findalluserlist ();
    User checklogin (String name,string password);

    /**
     * Query someone's Department
     * @param name
     * @return
     *
    /Department finddepaetmentbyusername (String name);
    Department findDepaetmentByUserName1 (String name);
    Department findDepaetmentByUserName2 (String name);
}
Package mybatis.service;

Import Mybatis.domian.User;

Import java.util.List;

Public interface Departmentservice {
    list<user> finduserlistbydepartmenyname (String name);
    List<user> findUserListByDepartmenyName1 (String name);
}

Service Interface Implementation class

Package Mybatis.service.impl;
Import mybatis.domian.Department;
Import Mybatis.domian.User;
Import Mybatis.mapper.UserMapper;
Import Mybatis.service.UserService;
Import Mybatis.util.MybatisUtils;
Import Mybatis.vo.UserQueryVo;
Import Org.apache.commons.collections.CollectionUtils;

Import org.apache.ibatis.session.SqlSession;
Import java.util.ArrayList;
Import java.util.Collection;
Import java.util.Collections;

Import java.util.List; public class Uerserviceimpl implements userservice{@Override public void addUser (user user) {sqlsession
        sqlsession = null;
        if (user = = null) {throw new IllegalArgumentException ("");
        } try{sqlsession = Mybatisutils.getsqlsession ();
            /* How to Mapper a file using a proxy mode where it needs to be written as the Namespace+ method name can be used directly with the method name */
            Usermapper mapper = Sqlsession.getmapper (Usermapper.class);
            Mapper.save (user);
       Sqlsession.commit (); }catch (Exception e) {e.printstacktrace ();
        }finally {mybatisutils.clolsesqlsession ();
        }} @Override public list<user> findalluserlist () {sqlsession sqlsession = null; List<user> userlist = Collections.emptylist ();
            Avoid null pointer exception try{sqlsession = Mybatisutils.getsqlsession ();
            Usermapper mapper = Sqlsession.getmapper (Usermapper.class);
        UserList = Mapper.findall ();
        }catch (Exception e) {e.printstacktrace ();
        }finally {mybatisutils.clolsesqlsession ();
    } return userlist; }/** * Login method * @param name * @param password * @return * * @Override public User Chec
        Klogin (string name, string password) {sqlsession sqlsession = null;
        Userqueryvo userqueryvo = null;
        User user = null;
   try {sqlsession = Mybatisutils.getsqlsession ();         Usermapper mapper = Sqlsession.getmapper (Usermapper.class);
            Userqueryvo = new Userqueryvo ();
            Userqueryvo.setname (name);
           Userqueryvo.setpassword (password);
           list<user> users = Mapper.findqueryvo (USERQUERYVO);
           if (Collectionutils.isnotempty (users)) {user = Users.get (0);
        }} catch (Exception e) {e.printstacktrace ();
        } finally {mybatisutils.clolsesqlsession ();
    } return user;
        } @Override Public Department finddepaetmentbyusername (String name) {sqlsession sqlsession = null;
        Userqueryvo userqueryvo = null;
        Department Department = null;
            try {sqlsession = Mybatisutils.getsqlsession ();
            Usermapper mapper = Sqlsession.getmapper (Usermapper.class);
            Department = new Department ();
        Department = mapper.finddepaetmentbyusername (name); } catch (ExceptIon e) {e.printstacktrace ();
        } finally {mybatisutils.clolsesqlsession ();
    } return department;
        } @Override Public Department findDepaetmentByUserName1 (String name) {sqlsession sqlsession = null;
        Userqueryvo userqueryvo = null;
        Department Department = null;
            try {sqlsession = Mybatisutils.getsqlsession ();
            Usermapper mapper = Sqlsession.getmapper (Usermapper.class);
            Department = new Department ();
        Department = MAPPER.FINDDEPAETMENTBYUSERNAME1 (name);
        } catch (Exception e) {e.printstacktrace ();
        } finally {mybatisutils.clolsesqlsession ();
    } return department;
        } @Override Public Department findDepaetmentByUserName2 (String name) {sqlsession sqlsession = null;
        Userqueryvo userqueryvo = null;
        User user = null; try {sqlsession = mybatisutils.geTsqlsession ();
            Usermapper mapper = Sqlsession.getmapper (Usermapper.class);
            user = new User ();
            user = Mapper.finduserbyname (name);
            SYSTEM.OUT.PRINTLN (user);
            if (user! = null) {return user.getdepartment ();
        }} catch (Exception e) {e.printstacktrace ();
        } finally {mybatisutils.clolsesqlsession ();
    } return null;
 }
}
Package Mybatis.service.impl;
Import mybatis.domian.Department;
Import Mybatis.domian.User;
Import Mybatis.mapper.DepartmentMapper;
Import Mybatis.service.DepartmentService;
Import Mybatis.util.MybatisUtils;
Import Org.apache.commons.collections.CollectionUtils;

Import org.apache.ibatis.session.SqlSession;
Import java.util.ArrayList;
Import java.util.Collections;
Import java.util.List;

Import Java.util.Set; public class Departmentserviceimpl implements Departmentservice {@Override public list<user> Finduserlistby
        Departmenyname (String name) {list<user> userlist = collections.emptylist ();
        Sqlsession sqlsession = null;
            try{sqlsession = Mybatisutils.getsqlsession ();
            Departmentmapper mapper = Sqlsession.getmapper (Departmentmapper.class);
        userlist = mapper.finduserlistbydepartmenyname (name);
        }catch (Exception e) {e.printstacktrace (); }finally {Mybatisutils.clolsesqlsEssion ();
    } return userlist;  } @Override Public list<user> findUserListByDepartmenyName1 (String name) {list<user> userlist
        = new Arraylist<> ();
        Department Department = null;
        Sqlsession sqlsession = null;
            try{sqlsession = Mybatisutils.getsqlsession ();
            Departmentmapper mapper = Sqlsession.getmapper (Departmentmapper.class);
            Department = mapper.findbyname (name);
                if (department! = null) {set<user> userset = Department.getset ();
            Add all the data in the Userset to UserList Collectionutils.addall (userlist, Userset.iterator ());
        }}catch (Exception e) {e.printstacktrace ();
        }finally {mybatisutils.clolsesqlsession ();
    } return userlist;
 }
}

Userqueryvo

public class Userqueryvo extends User {
}

Usermapper.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" &G
T <mapper namespace= "Mybatis.mapper.UserMapper" > <insert id= "Save" parametertype= "User" > Insert in To Mybatis_user (user_name,user_password,user_salary,user_birthday) VALUE (#{name},#{p
            Assword},#{salary},#{birthday}) </insert> <select id= "FindAll" resulttype= "User" > select
            USER_ID ID, user_name name, user_password password, user_salary salary, User_birthday Birthday from Mybatis_user </select> <!--parametertype: Parameters Type Resulttype: Result type fuzzy query: use% to pass parameters in code or use%---<select id= "Findqueryvo" resulttype= "User" par in SQL Ametertype= "Userqueryvo" > select user_id ID, useR_name name, user_password password, user_salary salary, User_birthday b  Irthday from Mybatis_user WHERE 1=1 <if test= "Name! = NULL and name  ! = "" > and user_name like "%" #{name} "%" </if> <if test= "Password! = null and Password! = "" > and User_password like "%" #{password} "%" </if> <if test= "Salar Y! = null and salary! = "" > and user_salary like "%" #{salary} "%" </if> <if te
    st= "Birthday! = null and Birthday! =" "> and user_birthday like"% "#{birthday}"% "</if> </select> <select id= "Finddepaetmentbyusername" parametertype= "java.lang.String" resulttype= "Department" &
          Gt SELECT d.department_id ID, d.department_name name, D.department_location l
    Ocation      From Mybatis_user u left JOIN mybatis_department D on u.department_id = d.department_id WHERE u.user_name = #{name} </select> <  Resultmap

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.