一. 项目基本结构
二. 导入maven依赖
pom.xml
文件中需要依赖mysql
驱动和mybatis
的jar包,如果不是maven项目可自行下载jar包并导入。如果用的是oracle或者sql server,换成其对应jar包即可。
<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.6</version>
</dependency>
三. 创建实体类以及对应数据库表
我的数据库表中有一张person表,在entity包下创建Person类,创建其set和get方法即可。
- 创建java实体类
//Person类
package com.yhr.entity;
public class Person {
private int id;
private String name;
private int age;
public Person() {
}
public Person(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}';
}
}
- 创建数据库表,然后插入自己想要的数据
CREATE TABLE person(
id INT(10),
NAME VARCHAR(10),
age INT(3)
)
四. 创建properties文件
该文件用于被conf.xml文件读取
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/你的数据库名
username=你的账号
password=你的密码
如果后面报错无法加载驱动,可能是mysql
jar包没成功导入,或者端口号错误(mysql默认端口号3306)。
五. 创建接口和xml文件
- 在mapper包下创建
PersonMapper
接口和PersonMapper.xml
配置文件。
PersonMapper接口
package com.yhr.mapper;
import com.yhr.entity.Person;
public interface PersonMapper {
//方法名和mapper.xml文件中的标签id值相同
//方法的输入参数也相同
Person queryPersonById(int id);
}
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">
<!--映射PersonMapper接口-->
<mapper namespace="com.yhr.mapper.PersonMapper">
<select id="queryPersonById" resultType="Person"
parameterType="int">
select * from person where id = #{
id}
</select>
</mapper>
- 在resources包下创建
conf.xml
配置文件,typeAlias
属性设置别名,不设置此属性的话personMapper.xml
文件中若要查询字段,返回值resultType
属性必须使用全类名,那样太过繁琐,因此建议使用。
<?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>
<!--加载properties文件-->
<properties resource="db.properties"/>
<!--设置别名-->
<typeAliases>
<typeAlias type="com.yhr.entity.Person" alias="Person"/>
</typeAliases>
<!--可以设置多个environment,default默认使用-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 配置数据库信息 -->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 加载映射文件 -->
<mapper resource="com/yhr/mapper/personMapper.xml"/>
</mappers>
</configuration>
六. 创建test类测试
package com.yhr.entity;
import com.yhr.mapper.PersonMapper;
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.IOException;
import java.io.Reader;
public class TestMyBatis {
public static void main(String[] args) throws IOException {
//加载MyBatis配置文件(为了访问数据库)
Reader reader = Resources.getResourceAsReader("conf.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
//session相当于connection
SqlSession session = sqlSessionFactory.openSession();
PersonMapper mapper = session.getMapper(PersonMapper.class);
Person person = mapper.queryPersonById(102);
System.out.println(person);
session.close();
}
}
查询结果(sex和addr是我后来加的,不用理会)