VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • Python
  • PHP
  • Eclipse
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Phần mềm tiện ích
    • Selenium Test
  • Tuyển Dụng

MyBatis Tuts

MyBatis - MyBatis là gì? MyBatis - file cấu hình XML MyBatis - file mapper xml MyBatis - Annotations MyBatis - Stored Procedures MyBatis - Dynamic SQL MyBatis - Hibernate

MyBatis Examples

Tạo MyBatis project trong eclipse MyBatis Example - mapper bằng file XML MyBatis Example - mapper bằng các Annotation MyBatis Example - mapper bằng file XML + interface MyBatis Example - MyBatis + Spring

MyBatis Example - mapper bằng Annotations


MyBatis là gì?
Cấu hình XML

Các công nghệ được sử dụng trong ví dụ này:

  • Eclipse KEPLER SR2
  • MySQL 5.0.11
  • MyBatis 3.3.0
  • JDK 1.8

Cấu trúc project

cau-truc-project-mybatis-annotation-example-1

Các bước thực hiện

1. Tạo project "mybatis-annotation-example-1"

Các bạn tạo project có tên "mybatis-annotation-example-1" như trong bài hướng dẫn Tạo MyBatis project trong eclipse

2. Tạo bảng details.student

CREATE TABLE  details.student(
   ID int(10) NOT NULL AUTO_INCREMENT,  
   NAME varchar(100) NOT NULL,
   BRANCH varchar(255) NOT NULL,
   PERCENTAGE int(3) NOT NULL,  
   PHONE int(10) NOT NULL,
   EMAIL varchar(255) NOT NULL,
   PRIMARY KEY ( ID )
);

3. Tạo lớp Student trong package mybatis.mapper.entity

File: Student.java

package mybatis.mapper.entity;

public class Student {
    private int id;
    private String name;
    private String branch;
    private int percentage;
    private int phone;
    private String email;

    public Student() {
    }

    public Student(String name, String branch, int percentage, int phone, String email) {
        super();
        this.name = name;
        this.branch = branch;
        this.percentage = percentage;
        this.phone = phone;
        this.email = email;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBranch() {
        return branch;
    }

    public void setBranch(String branch) {
        this.branch = branch;
    }

    public int getPercentage() {
        return percentage;
    }

    public void setPercentage(int percentage) {
        this.percentage = percentage;
    }

    public int getPhone() {
        return phone;
    }

    public void setPhone(int phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    
    @Override
    public String toString() {
        return getClass().getName() + "[" + "id = " + id + ", name = " + name + ", branch = " + branch 
                + ", percentage = " + percentage  + ", phone = " + phone  + ", email = " + email + "]"; 
    }
}

4. Tạo file cấu hình MyBatis SqlMapConfig.xml trong resources

File: SqlMapConfig.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:3306/details" />
                <property name="username" value="root" />
                <property name="password" value="1234567890" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper class="mybatis.mapper.StudentMapper" />
    </mappers>

</configuration>

5. Tạo interface StudentMapper

Tạo interface StudentMapper để định nghĩa các câu lệnh mapped SQL.

File: StudentMapper.java

package mybatis.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import mybatis.mapper.entity.Student;

public interface StudentMapper {

    // get all student
    final String GET_ALL_STUDENT = "SELECT * FROM STUDENT";

    @Select(GET_ALL_STUDENT)
    @Results(value = { @Result(property = "id", column = "ID"),
            @Result(property = "name", column = "NAME"),
            @Result(property = "branch", column = "BRANCH"),
            @Result(property = "percentage", column = "PERCENTAGE"),
            @Result(property = "phone", column = "PHONE"),
            @Result(property = "email", column = "EMAIL") })
    public List<Student> getAll();

    // get student by id
    final String GET_STUDENT_BY_ID = "SELECT * FROM STUDENT WHERE ID = #{id}";

    @Select(GET_STUDENT_BY_ID)
    public Student getById(int id);

    // inert student
    final String INSERT_STUDENT = "INSERT INTO STUDENT (NAME, BRANCH, PERCENTAGE, PHONE, EMAIL ) "
            + "VALUES (#{name}, #{branch}, #{percentage}, #{phone}, #{email})";

    @Update(INSERT_STUDENT)
    @Options(useGeneratedKeys = true, keyProperty = "id")
    public void insert(Student student);

    // update student
    final String UPDATE_STUDENT = "UPDATE STUDENT SET EMAIL = #{email}, NAME = #{name}, "
            + "BRANCH = #{branch}, PERCENTAGE = #{percentage}, PHONE = #{phone} WHERE ID = #{id}";

    @Insert(UPDATE_STUDENT)
    public void update(Student student);

    // delete student by id
    final String DELETE_STUDENT_BY_ID = "DELETE from STUDENT WHERE ID = #{id}";

    @Delete(DELETE_STUDENT_BY_ID)
    public void delete(int id);
}

6. Tạo các class để test

File: SelectAllTest.java

package mybatis.main;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import mybatis.mapper.StudentMapper;
import mybatis.mapper.entity.Student;

public class SelectAllTest {
    public static void main(String[] args) throws IOException {
        Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sqlSessionFactory.openSession();

        // create student mapper
        StudentMapper studentMapper = session.getMapper(StudentMapper.class);

        // show list student
        List<Student> listStudents = studentMapper.getAll();
        for (Student student : listStudents) {
            System.out.println(student.toString());
        }
        
        // close session
        session.close();
    }
}

File: SelectByIdTest.java

public class SelectByIdTest {
    public static void main(String[] args) throws IOException {
        Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sqlSessionFactory.openSession();

        // create student mapper
        StudentMapper studentMapper = session.getMapper(StudentMapper.class);

        // get student by Id
        Student student = studentMapper.getById(12);
        System.out.println(student);

        // close session
        session.close();
    }
}

File: InsertTest.java

public class InsertTest {
    public static void main(String[] args) throws IOException {
        Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sqlSessionFactory.openSession();

        // create student mapper
        StudentMapper studentMapper = session.getMapper(StudentMapper.class);

        // insert student
        Student student = new Student("Jim", "IT", 90, 1234567, "jim-it@gmail.com");
        studentMapper.insert(student);
        session.commit();
        System.out.println("insert sucessfully");

        // close session
        session.close();
    }
}

File: UpdateTest.java

public class UpdateTest {
    public static void main(String[] args) throws IOException {
        Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sqlSessionFactory.openSession();

        // create student mapper
        StudentMapper studentMapper = session.getMapper(StudentMapper.class);

        // update student
        Student student = studentMapper.getById(12);
        student.setName("Jim Smith");
        student.setPhone(12399888);
        studentMapper.update(student);
        session.commit();
        System.out.println("update sucessfully");

        // close session
        session.close();
    }
}

File: DeleteByIdTest.java

public class DeleteByIdTest {
    public static void main(String[] args) throws IOException {
        Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sqlSessionFactory.openSession();

        // create student mapper
        StudentMapper studentMapper = session.getMapper(StudentMapper.class);

        // delete student
        studentMapper.delete(11);
        session.commit();
        System.out.println("delete successfully");

        // close session
        session.close();
    }
}

Download Source Code

Download Now!

MyBatis là gì?
Cấu hình XML

Recent Updates

Python là gì? - giới thiệu ngôn ngữ lập trình PythonBài tập Python có lời giảiHọc Lập Trình Online Miễn Phí - VietTuts.VnPhân biệt List, Tuple, Set, Dictionary trong PythonHàm Dictionary dict() trong PythonHàm Set set() trong PythonBài tập Java - Trộn 2 mảng trong javaBài tập Java - Chèn phần tử vào mảng trong javaBài tập Java - Sắp xếp mảng theo thứ tự giảm dầnBài tập Java - Sắp xếp mảng theo thứ tự tăng dầnJava - Liệt kê số lần xuất hiện của các phần tử trong một mảngJava - Liệt kê các phần tử xuất hiện trong mảng đúng 2 lần

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn

Danh sách bài học

Học java
Học servlet
Học jsp
Học Hibernate
Học Struts2
Học Spring
Học SQL

Câu hỏi phỏng vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

About VietTuts.Vn

Hệ thống bài học trên VietTuts.Vn bao gồm các bài lý thuyết và thực hành về các công nghệ java và công nghệ web. Các bài lý thuyết trên hệ thống VietTuts.Vn được tham khảo và tổng hợp từ các trang http://javatpoint.com, http://www.tutorialspoint.com, http://docs.oracle.com/en …

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | VietTuts.Vn team | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml