目录
前言
本文供以下文章参考使用:
提示:
本文顺序在文章:
Spring基础回顾__evenif的博客-优快云博客
之后。其中的项目代码,在该文基础上进行了扩充,如果根据本文代码无法正确构建自己的测试环境,请先学习spring相关知识后再来。
1 maven依赖
mybatis是笔者当时最新的版本,mysql-connector-java是随便找的版本,依稀记得生产环境中都用的5的版本,就随便找了一个
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
2 mybatis-config.xml:
直接拷贝官方文档的配置文件修改,笔者为了方便,直接将该文件放在工程根目录,IndexMapper.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/test?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="IndexMapper.xml"/>
</mappers>
</configuration>
3 IndexMapper.xml :
直接拷贝官网的示例文件BlogMapper.xml进行的修改,注意命名空间(namespace)一定是本文件的位置路径,以及上文中resource与namespace是一致的,都是正确的文件路径。
<?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="IndexMapper">
<select id="selectIndex" resultType="com.evenif.bean.Index">
select * from tbl_index where id = #{id}
</select>
</mapper>
4 bean:
package com.evenif.bean;
public class Index {
private int id;
private String name;
public Index() {
// System.out.println("create Index class");
}
public Index(int id, String name) {
this.id = id;
this.name = name;
// System.out.println("create Index class with params");
}
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;
}
@Override
public String toString() {
return "Index{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
5 数据表:
CREATE TABLE `tbl_index` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 测试数据
INSERT INTO `tbl_index` VALUES ('1', 'index01');
INSERT INTO `tbl_index` VALUES ('2', 'index02');
6 主测试类:
package com.evenif;
import com.evenif.bean.Index;
import com.evenif.mybatis.MybatisUtil;
import org.apache.ibatis.session.SqlSession;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
SqlSession session = MybatisUtil.getSession();
Index index = session.selectOne("IndexMapper.selectIndex", 2);
System.out.println(index);
}
}
//执行结果:
// Index{id=2, name='index02'}