Mybatis学习---第一个查询小程序

  Mybatis的官方文档:https://mybatis.org/mybatis-3/index.html

  学习Mybatis的原因是:jdbc代码太复杂,而mybatis会简化jdbc,更容易上手。是一个框架。

  一、需要导入依赖,在pom.xml中

    1、mysql的jar包

    2、Mybatis的jar包

    3、Junit的jar包

    4、在build中配置resource,防止我们的资源导出失败问题

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>


    </dependencies>

<build>
    <!--引入配置文件-->

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

    二、编写Mybatis的配置文件--mybatis-config.xml,需要放在maven项目下的resources之下(其实就是相当于JDBC之中的加载驱动,和数据库创建连接),大家先注意一下这个配置文件中的Mappers

<?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核心配置文件-->
<configuration>
    <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://localhost:3306/mybatistext?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT"/>
                <property name="username" value="root"/>
                <property name="password" value="ly0825"/>
            </dataSource>
        </environment>
    </environments>

    <!--每一个Mapper.xml都需要在Mybatis核心配置文件中注册-->
    <mappers>
        <mapper resource="com/ly/dao/UserMapper.xml"/>
    </mappers>

</configuration>

  三、编写一个实体类。

  四、创建一个接口(我这个接口里只是写了一个查询方法,只是简单的测试一下Mybatis)。

package com.ly.dao;

import com.ly.pojo.User;

import java.util.List;

public interface UserDao {
    List<User> getUserList();
}

  五、接下来我们就要实现这个 接口里方法的实现类了(UserMapper.xml),这里大家需要注意的是,每一个Mapper方法都需要去配置文件mybatis-config.xml中去配置切记,就是我们上述第二步需要注意的Mapper。

<?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.ly.dao.UserDao">
    <!--id里面是调用接口的方法,resultType是返回的结果类型-->
    <select id="getUserList" resultType="com.ly.pojo.User">
    select * from user
  </select>
</mapper>

 

 

 

   namespace是你写的接口的全路径。

  第二个id是你在接口类中所写的方法名。其实这就是那个方法的具体实现。

  resultType是进行数据库操作后所返回的结果,我所执行的操作的是查询所有的信息,所以返回的结果就是我们那个实体类对象。

  六、来写一个测试类,看一看到底写的这个mybatis到底能不能用

 

package com.ly.dao;

import com.ly.pojo.User;
import com.ly.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.testng.annotations.Test;

import java.util.List;

public class UserDaoTest {
    @Test
    public void test(){
        //1、第一步,获取sqlsession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //2、getMapper
        UserMapper mapper = sqlSession.getMapper(UserDao.class);
        List<User> userList = mapper.getUserList();
        for (User user : userList) {
            System.out.println(user.getName());
        }
        //3、关闭sqlsession
        sqlSession.close();
    }
}

 

 

 

 

 

 

  

 

posted on 2020-11-17 16:43  沫戏回首  阅读(71)  评论(0编辑  收藏  举报

导航