1、首先创建一个web项目和数据库表,下图是已经完成的项目结构图和数据库表
2、在pom.xml中添加依赖,和properties、build同级
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
3、配置mybatis-config.xml
在IDEA中创建mybatis-config.xml模板:New——Edit File Templates
复制以下代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 指定使用LOG4J输出日志 -->
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<!-- 配置包的别名,通常在使用类时需要使用类的全限定名称,使用该配置后只要直接使用类名即可 -->
<package name="com.etc.model"/>
</typeAliases>
<!-- 数据库环境 -->
<environments default="development">
<environment id="development">
<!-- 采用JDBC管理器方式 -->
<transactionManager type="JDBC"/>
<!-- POOLED采用mybabtis内部连接池方式 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="StudentMapper.xml" />
</mappers>
</configuration>
3、创建实体类
package com.etc.model;
public class Student {
private int id;
private String stuname;
private String stupassword;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public String getStupassword() {
return stupassword;
}
public void setStupassword(String stupassword) {
this.stupassword = stupassword;
}
}
4、创建StudentMapper.xml模板,和创建mybatis-config.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.etc.model.StudentMapper">
<insert id="insert" parameterType="Student" useGeneratedKeys="true" keyProperty="id">
insert into
student(stuname,stupassword)
values(#{stuname},#{stupassword})
</insert>
<select id="getById" parameterType="int" resultType="Student">
select * from
student where id=#{id}
</select>
<delete id="deleteById" parameterType="int">
delete from
student where id=#{id}
</delete>
<select id="getAll" resultType="Student">
select * from student
</select>
<update id="updateById" parameterType="Student">
update student
set
name=#{stuname},password=#{stupassword}
where id=#{id}
</update>
</mapper>
5、配置log4j查看MyBatis操作数据库过程,创建loj4j.properties
#全局配置
log4j.rootLogger=ERROR,stdout
#MyBatis日志配置
log4j.logger.com.etc.model=TRACE
#控制台输出配置
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
6、编写测试代码
扫描二维码关注公众号,回复:
2957584 查看本文章
package com.etc.mapper;
import com.etc.model.Student;
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 org.junit.BeforeClass;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;
public class StudentTest {
private static SqlSessionFactory sqlSessionFactory;
@BeforeClass
public static void init(){
try {
String resource = "mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testSelectAll(){
try(SqlSession sqlSession = sqlSessionFactory.openSession()){
List<Student> list = sqlSession.selectList("getAll");
for (Student student : list) {
System.out.println(student.getId()+" " +student.getStuname() + " " + student.getStupassword());
}
}
}
}
运行结果