MyBatis的配置及示例

一. 项目基本结构

在这里插入图片描述

二. 导入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方法即可。

  1. 创建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 + '}';
    }
}

  1. 创建数据库表,然后插入自己想要的数据
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=你的密码

如果后面报错无法加载驱动,可能是mysqljar包没成功导入,或者端口号错误(mysql默认端口号3306)。

五. 创建接口和xml文件

  1. 在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>
  1. 在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是我后来加的,不用理会)
在这里插入图片描述

Guess you like

Origin blog.csdn.net/qq_43960954/article/details/121216155