Getting Started with MyBatis

<groupId>org.example</groupId>
<artifactId>A01mybatis</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
    <!-- MyBatis dependency -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.1</version>
    </dependency>
    <!-- MySQL driver -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.11</version>
    </dependency>
    <!-- Log4j logging -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

</div>2. mybatis.xml <div>```
<?xml version="1.0" encoding="UTF-8" ?>

<configuration>
    <typeAliases>
        <package name="com.wuxi.beans"/>
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://192.168.2.105:3306/ssm?characterEncoding=utf8&amp;useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <package name="com.wuxi.daos"/>
    </mappers>
</configuration>

log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%d{HH:mm:ss}] %m%n


</div>4. Student.java <div>```
package com.wuxi.beans;

public class Student {
    private Integer id;
    private String name;
    private Integer age;
    private Integer sex;

    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 == null ? null : name.trim();
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Student:{id:" + id + ", name:" + name + ", age:" + age + ", sex:" + sex + "}";
    }
}

import com.wuxi.beans.Student;

import java.util.List; import java.util.Map;

public interface StudentMapper { Integer insertStudent(Student student);

List<student> selectAllStudent(Map map);

}


</div>6. StudentMapper.xml (Must be placed unnder resources driectory. If placed under java direcotry, configure pom.xml accordingly) <div>```
<?xml version="1.0" encoding="UTF-8"?>

<mapper namespace="com.wuxi.daos.StudentMapper">
    <insert id="insertStudent">
        insert into student(name, age, sex) values(#{name}, #{age}, #{sex})
        <selectKey resultType="int" keyProperty="id" order="AFTER">
            select @@identity
        </selectKey>
    </insert>
    <select id="selectAllStudent" resultType="Student">
        select id, name, age, sex from student
        where name like #{student.name}
    </select>
</mapper>


</div>7. MybatisTest.java <div>```
package com.wuxi;

import com.wuxi.beans.Student;
import com.wuxi.daos.StudentMapper;
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 java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MybatisTest {
    public static void main(String[] args) {
        SqlSession session = null;
        try {
            String resource = "mybatis.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            session = sqlSessionFactory.openSession();

            StudentMapper mapper = session.getMapper(StudentMapper.class);
/*
            // Insert
            Student student = new Student();
            student.setName("Lin Yun'er");
            student.setAge(16);
            student.setSex(0);
            mapper.insertStudent(student);
            // student's id will be set after insertion
            System.out.println(student);
*/
            // Search with pattern matching
            Map<String, Object> map = new HashMap<String, Object>();
            Student student = new Student();
            student.setName("%" + "mei" + "%");
            map.put("student", student);
            List<Student> students = mapper.selectAllStudent(map);
            System.out.println(students);

            session.commit();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (session != null) {
                session.close();
            }
        }
    }
}

Tags: MyBatis java MySQL Maven sql

Posted on Mon, 18 May 2026 18:14:24 +0000 by CBG