Add, delete, query, modify, and query multiple parameter lists based on Annotations

Source: Internet
Author: User

Add, delete, query, modify, and query multiple parameter lists based on Annotations

In the overview of [Mybatis] Mybatis and the addition, deletion, modification, and query of the first Mybatis instance and the programming method of [Mybatis] Mybatis interface demonstrate how to use XML to operate Mybatis to implement CRUD, however, writing a large number of XML configuration files is very annoying. Therefore, Mybatis also provides an annotation-based configuration method. The following example shows how to use interfaces and annotations to implement CRUD.

1. create databases and data tables

 

use test;  create table t_employeer(  employeer_id int not null  primary key AUTO_INCREMENT ,  employeer_name varchar(50) default null,  employeer_age int default null,  employeer_department varchar(100) default null,  employeer_worktype varchar(100) default null  ) 

2. Create a project

 

The project directory is as follows:

Remember to import the corresponding package!

1. Employeer. java

 

Package com. mucfc. model;/*** employee information class * @ author linbingwen * @ time 2015.5.11 */public class Employeer {private Integer employeer_id; private String employeer_name; private Integer employeer_age; private String employeer_department; private String employeer_worktype; public Employeer () {super ();} public Integer getEmployeer_id () {return employeer_id;} public void setEmployeer_id (Integer employeer_id) {this. employeer_id = employeer_id;} public String getEmployeer_name () {return employeer_name;} public void setEmployeer_name (String employeer_name) {this. employeer_name = employeer_name;} public Integer getEmployeer_age () {return employeer_age;} public void setEmployeer_age (Integer employeer_age) {this. employeer_age = employeer_age;} public String getEmployeer_department () {return employeer_department;} public void setEmployeer_department (String employeer_department) {this. employeer_department = employeer_department;} public String getEmployeer_worktype () {return employeer_worktype;} public void setEmployeer_worktype (String employeer_worktype) {this. response = Response ;}@ Overridepublic String toString () {return "Employeer [employeer_id =" + employeer_id + ", employeer_name =" + employeer_name + ", response =" + employeer_age + ", employeer_department = "+ employeer_department +", employeer_worktype = "+ employeer_worktype +"] ";}}
The Employeer. xml file is used to place some mappings and delete SQL statements.

 

<? Xml version = "1.0" encoding = "UTF-8"?> <! DOCTYPE mapper PUBLIC "-// mybatis.org//DTD Mapper 3.0 //" http://mybatis.org/dtd/mybatis-3-mapper.dtd "> <mapper namespace =" com. mucfc. dao. EmployeerMapper "> <! -- Define the ing between database fields and object --> <resultMap type = "Employeer" id = "employeerResultMap"> <id property = "employeer_id" column = "employeer_id"/> <result property = "employeer_name" column = "employeer_name"/> <result property = "employeer_age" column = "employeer_age"/> <result property = "employeer_department" column = "employeer_department "/> <result property = "employeer_worktype" column = "employeer_worktype"/> </resultMap> </mapper>
 

2. Configure mybatis-config.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 "> <! -- This is the root tag --> <configuration> <! -- Set the alias --> <typeAliases> <typeAlias alias = "Employeer" type = "com. mucfc. model. Employeer"/> </typeAliases> <! -- Configure data source information --> <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/test? CharacterEncoding = UTF-8 "/> <property name =" username "value =" root "/> <property name =" password "value =" christmas258 @ "/> </dataSource> </environment> </environments> <! -- List ing files --> <mappers> <mapper resource = "com/mucfc/model/Employeer. xml"/> </mappers> </configuration>

3. EmployeerMapper. java adds an SQL ing statement and uses annotations for implementation.
Package com. mucfc. dao; import java. util. list; import java. util. map; import org. apache. ibatis. annotations. delete; import org. apache. ibatis. annotations. insert; import org. apache. ibatis. annotations. resultMap; import org. apache. ibatis. annotations. select; import org. apache. ibatis. annotations. selectKey; import org. apache. ibatis. annotations. update; import com. mucfc. model. employeer; /*** SQL statement ing Class * @ author linbingwen * @ time 2015.5.11 */public interface EmployeerMapper {@ Select ("select * from't _ employeer 'where employeer_name like # {employeer_name }") @ ResultMap ("employeerResultMap") public List
 
  
FindEmployeerByName (String employeer_name); @ Select ("select * from 't_ employeer 'where employeer_name =#{ 0} and employeer_department =#{ 1 }") @ ResultMap ("employeerResultMap") public List
  
   
FindEmployeerByNameandDep (String employeer_name, String employeer_department); @ ResultMap ("employeerResultMap ") @ Select ("select * from't _ employeer 'where employeer_name =#{ key1} and employeer_department =#{ key2}") public List
   
    
FindEmployeerByNameandDep1 (Map
    
     
Map); @ Select ("select * from't _ employeer 'where employeer_id =#{ id}") @ ResultMap ("employeerResultMap") public Employeer findEmployeerByID (int id ); @ Insert ("insert into't _ employeer '(employeer_name, employeer_age, employeer_department, Department) values (# {employeer_name}, # {employeer_age}, # {employeer_department }, # {employeer_worktype}) ") public void addEmployeer (Employeer employeer); @ Delete (" delete from 't_employeer 'where employeer_id =#{ employeer_id }") public void deleteEmployeer (int id); @ Update ("update t_employeer set employeer_name =#{ employeer_name}, Region =#{ employeer_age}, employeer_department =#{ employeer_department }, employeer_worktype =#{ employeer_worktype} where employeer_id =#{ employeer_id} ") public void updateEmployeer (Employeer employeer );}
    
   
  
 
4. Test and use

 

(1) single parameter search

 

/*** Search for */public static Employeer findEmployeerById (int id) {SqlSession session = null; Employeer employeer = null; try {session = sqlSessionFactory. openSession (); EmployeerMapper employeerMapper = session. getMapper (EmployeerMapper. class); employeer = employeerMapper. findEmployeerByID (id);} finally {session. close ();} return employeer ;}
Corresponding SQL statement:

 

 

@Select("select* from `t_employeer` where employeer_id =#{id}")@ResultMap("employeerResultMap")public Employeer findEmployeerByID(int id);

 

Call:

 

  System.out.println(findEmployeerById(10));  System.out.println(findEmployeerById(11));

 

Result:

(2) Add

 

/*** Added */public static void addEmployeer (Employeer employeer) {SqlSession session = null; try {session = sqlSessionFactory. openSession (); EmployeerMapper employeerMapper = session. getMapper (EmployeerMapper. class); employeerMapper. addEmployeer (employeer); session. commit ();} finally {session. close ();}}
Corresponding SQL statement:

 

 

     @Insert(" insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})")public void addEmployeer(Employeer employeer);

 

(3) Change

 

/*** Change */public static void updateEmployeer (Employeer employeer) {SqlSession session = null; try {session = sqlSessionFactory. openSession (); EmployeerMapper employeerMapper = session. getMapper (EmployeerMapper. class); employeerMapper. updateEmployeer (employeer); session. commit ();} finally {session. close ();}}
Corresponding SQL statement:

 

 

    @Update(" update t_employeer set employeer_name = #{employeer_name},employeer_age= #{employeer_age},employeer_department = #{employeer_department} ,employeer_worktype=#{employeer_worktype}  where employeer_id = #{employeer_id}  ")public void updateEmployeer(Employeer employeer);

 

(4) Delete

 

/*** Delete **/public static void deleteEmployeer (int id) {SqlSession session = null; try {session = sqlSessionFactory. openSession (); EmployeerMapper employeerMapper = session. getMapper (EmployeerMapper. class); employeerMapper. deleteEmployeer (id); session. commit ();} finally {session. close ();}}

Corresponding SQL statement:

 

 

    @Delete("delete from `t_employeer` where employeer_id = #{employeer_id}")public void deleteEmployeer(int id);

 

(5) List Query

 

/*** Single-parameter query List */public static List
 
  
GetEmployeerList (String employeer_name) {SqlSession session = null; List
  
   
Employeers = null; try {session = sqlSessionFactory. openSession (); EmployeerMapper employeerMapper = session. getMapper (EmployeerMapper. class); employeers = employeerMapper. findEmployeerByName (employeer_name); session. commit ();} finally {session. close ();} return employeers;}/*** multi-parameter query List */public static List
   
    
GetEmployeerList (String employeer_name, String employeer_department) {SqlSession session = null; List
    
     
Employeers = null; try {session = sqlSessionFactory. openSession (); EmployeerMapper employeerMapper = session. getMapper (EmployeerMapper. class); employeers = employeerMapper. findEmployeerByNameandDep (employeer_name, employeer_department); session. commit ();} finally {session. close ();} return employeers;}/*** multi-parameter query List, using map */public static List
     
      
GetEmployeerList (Map
      
        Map) {SqlSession session = null; List
       
         Employeers = null; try {session = sqlSessionFactory. openSession (); EmployeerMapper employeerMapper = session. getMapper (EmployeerMapper. class); employeers = employeerMapper. findEmployeerByNameandDep1 (map); session. commit ();} finally {session. close ();} return employeers ;}
       
      
     
    
   
  
 
Corresponding SQL statement

 

 

    @Select("select * from `t_employeer` where employeer_name like #{employeer_name}")@ResultMap("employeerResultMap")public List
 
   findEmployeerByName(String employeer_name);            @Select("select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1}")@ResultMap("employeerResultMap") public List
  
    findEmployeerByNameandDep(String employeer_name,String employeer_department); @ResultMap("employeerResultMap")@Select("select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2}")public List
   
     findEmployeerByNameandDep1(Map
    
      map);@Select("select* from `t_employeer` where employeer_id =#{id}")@ResultMap("employeerResultMap")public Employeer findEmployeerByID(int id);
    
   
  
 

 

Test:

 

System. out. println ("============================================== ========================== "); list
 
  
Employeers = getEmployeerList ("Zhang San"); for (Employeer employeer: employeers) {System. out. println (employeer);} System. out. println ("================================ use multi-single-parameter query ======== ============================ "); list
  
   
Employeers1 = getEmployeerList ("Zhang San", "product 2"); for (Employeer employeer1: employeers1) {System. out. println (employeer1);} System. out. println ("============================================ ============================== "); map
   
    
Map = new HashMap
    
     
(); Map. put ("key1", ""); map. put ("key2", "Finance Department"); List
     
      
Employeers2 = getEmployeerList (map); for (Employeer employeer2: employeers2) {System. out. println (employeer2 );}
     
    
   
  
 
Result:

 

 

Related Article

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.