Mybatis环境搭建

1.搭建数据库

 

 

 

2.新建项目 

  2.1新建y一个普通项目

  2.2删除src目录(父工程)

  2.3导入 maven依赖

<!--导入依赖-->
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<!--mybatis-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>

 

3.创建一个模块  

  3.1编写mybatis配置文件

<!--核心配置文件-->
<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/mybatis?useSSL=true&amp;serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!--每一个mapper.xml(dao层实现类)都需要在Mybatis核心配置文件中注册-->
    <mappers>
        <mapper resource="com/king/dao/UserMapper.xml"/>
    </mappers>

</configuration>

 

  

3.2编写mybatis工具类

//工厂模式是为了生产产品的,当前就是sqlSessionFactory生产sqlSession
//sqlSessionFactory--->sqlSession
public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;

    static {
        try {
            //使用Mybatis第一步,获取sqlSessionFacter对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
    // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
    //你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }



}

 

3.3编写实体类

package com.king.pojo;

//实体类
public class User {
    private Integer id;
    private String name;
    private String pwd;

    public User() {
    }

    public User(Integer id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                '}';
    }
}

 

3.4 编写User接口

//官方文档中Mapper代替了Dao
public interface UserDao {
    List<User> getUserList  ();
}

 

3.5,配置接口实现配置(UserMapper.xml)

<!--namespace(命名空间),绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.king.dao.UserDao">

    <!--查询语句-->
    <!--id相当于接口实现类重写方法的名字-->
    <!--resultType相当于一个结果集-->
    <select id="getUserList" resultType="com.king.pojo.User">
        select  * from mybatis.user;
    </select>c

 

3.6 junit测试

 

 

 

public class UserDaoTest {
    @Test
    public void test(){
        //第一步:获得SqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();


        //方式一:getMapper
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        List<User> userList = userDao.getUserList();

        for (User user : userList) {
            System.out.println(user);
        }


        //关闭SqlSession
        sqlSession.close();
    }

}

 

问题1:在idea的集成开发环境中,除resources外,其他包中是不能解析.xml文件的,

解决:在pom.xml中注入依赖

   <build>
        <resources>
            <!--将java代码目录中的xml输出,默认不输出除resources目录外的xml文件,-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

 

结果

 

posted @ 2020-10-22 20:36  凸然猿  阅读(121)  评论(0编辑  收藏  举报