<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&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();
}
}
}
}