Java >> Java tutorial >  >> Tag >> mybatis

Sådan opretter du MyBatis-mapper

Dette er et eksempel på, hvordan du opretter en mapper ved hjælp af MyBatis-rammeværket. MyBatis er en førsteklasses persistensramme med understøttelse af tilpasset SQL, lagrede procedurer og avancerede kortlægninger. Det kan bruge simpel XML eller annoteringer til konfiguration og kortlægge primitiver, kortgrænseflader og Java POJO'er (Plain Old Java Objects) til databaseposter. For at oprette en MyBatis-mapper kan du følge nedenstående trin som beskrevet i eksemplet:

  • Opret en klasse, Employee.java med variabler og deres gettere og sættere.


    package com.javacodegeeks.snippets.enterprise;
    
    import java.util.Date;
    
    public class Employee {
    	
    	private Long id;
        private String name;
        private String surname;
        private String title;
        private Date created;
        
    	public Long getId() {
    		return id;
    	}
    	public void setId(Long id) {
    		this.id = id;
    	}
    	
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public String getSurname() {
    		return surname;
    	}
    	public void setSurname(String surname) {
    		this.surname = surname;
    	}
    	
    	public String getTitle() {
    		return title;
    	}
    	public void setTitle(String title) {
    		this.title = title;
    	}
    	
    	public Date getCreated() {
    		return created;
    	}
    	public void setCreated(Date created) {
    		this.created = created;
    	}
    
    }
    
  • Opret kortlægningsgrænsefladen, EmployeeMapper.java der har en metode Employee findById(long id) .
    package com.javacodegeeks.snippets.enterprise;
    
    public interface EmployeeMapper {
    	
    	Employee findById(long id);
    
    }
    
    
  • Definer konfigurationsfilen. Her er mybatis.conf.xml fil indeholder indstillinger for kernen af ​​MyBatis-systemet, herunder en DataSource til at hente database Connection-instanser, samt en TransactionManager til at bestemme, hvordan transaktioner skal scopes og kontrolleres. Brødteksten af ​​environment elementet indeholder miljøkonfigurationen til transaktionsstyring og forbindelsespooling. dataSource element konfigurerer kilden til JDBC Connection-objekter ved hjælp af standard JDBC DataSource-grænsefladen. mappers elementet indeholder EmployeeMapper.xml der indeholder kortlægningsdefinitionen.
    mybatis.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/companydb" />
    				<property name="username" value="jcg" />
    				<property name="password" value="jcg" />
    			</dataSource>
    		</environment>
    	</environments>
    	
    	<mappers>
    		<mapper resource="EmployeeMapper.xml" />
    	</mappers>
    	
    </configuration>
    
  • Definer kortlæggeren. EmployeeMapper.java klasse er defineret i EmployeeMapper.xml . SQL-forespørgslen skrives her og knyttes til et objekt.
    EmployeeMapper.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.javacodegeeks.snippets.enterprise.EmployeeMapper">
    
        <select id="findById" parameterType="long" resultType="com.javacodegeeks.snippets.enterprise.Employee">SELECT id, name, surname, title, created FROM employee WHERE id = #{id}  </select>
    </mapper>
    
  • Opret en hovedapplikation. Få mybatis.conf.xml fil som et Reader-objekt ved hjælp af getResourceAsReader(java.lang.String resource) API-metode af org.apache.ibatis.io.Resources .
  • Opret en ny org.apache.ibatis.session.SqlSessionFactoryBuilder og brug dens build(Reader reader) API-metode til at oprette en org.apache.ibatis.session.SqlSessionFactory , og med dens openSession() API-metode åbner en ny org.apache.ibatis.session.SqlSession .
  • Brug getMapper(Class<T> type) API-metode for SqlSession for at få EmployeeMapper og påkald dens metode for at få resultatet.
    package com.javacodegeeks.snippets.enterprise;
    
    import java.io.Reader;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    public class HowCreateMyBatisMapper {
    	
    	private static final String conf = "mybatis.conf.xml";
    	
    	public static void main(String[] args) throws Exception {
    		
    		Reader reader = Resources.getResourceAsReader(conf);
    		
    		SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    		
    		SqlSessionFactory sessionFactory = builder.build(reader);
    		
    		SqlSession session = sessionFactory.openSession();
    		
    		long id = 1;
    		
    		EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
    		Employee employee = mapper.findById(id);
    		
    		System.out.println(employee.getId() + " - " + employee.getName() +
    				" - " + employee.getSurname());
    		
    	}
    
    }
    

Output:

1 - Jack - Thomson


Dette var et eksempel på, hvordan man opretter en MyBatis-mapper i Java.

enterprise java mybatis
Java tag