MyBatis学习01 —— 学习大纲及环境搭建

一、学习大纲

mybatis.png

二、环境搭建

1.使用idea创建maven项目

File —> New—> Project…ML5_7I7I77~9B3NENASOWH.png

2.在porm.xml中引入坐标依赖

    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.5</version>
    </dependency>
<!--    mysql驱动包-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.49</version>
    </dependency>
<!--     log4j日志-->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
<!--    单元测试-->
    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>


3.编写实体类

保证实体类与表结构对应

package com.dgm.domain;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {
        private Integer id;
        private String username;
        private Date brithday;
        private String sex;
        private String address;

    public Integer getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Date getBrithday() {
        return brithday;
    }

    public void setBrithday(Date brithday) {
        this.brithday = brithday;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
//添加toString方法 输出时
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", brithday=" + brithday +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}


4.创建用户持久层接口

package com.dgm.dao;


import com.dgm.domain.User;

import java.util.List;

/**
 * 用户的持久层接口
 */
public interface IUserDao {
    /**
     * 查询所有操作
     * @return
     */
    List<User> findAll();

}

5.编写配置文件

resources文件夹中创建 主配置文件 SqlMapConfig.xml文件
在SqlMapConfig.xml文件中引入依赖

<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

编写配置文件

    <!-- 这里写配置内容 -->
    <!--    配置mysql的环境
        environments:配置环境们
    -->
    <environments default="mysql">
        <!--
        environment:配置环境
        -->
        <environment id="mysql">
            <!--配置事务类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--
            配置数据源(也叫连接池)MyBatis内置的连接池
            POOLED:使用连接池
            UNPOOLED:不使用连接池
            -->
            <dataSource type="POOLED">
                <!--配置链接数据库的基本信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/> <!-- 数据库链接驱动 -->
                <property name="url" value="jdbc:mysql://ip地址:3306/库名"/>
                <property name="username" value="用户名"/>
                <property name="password" value="密码"/>
            </dataSource>
        </environment>
    </environments>
    <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
    <mappers>
        <mapper resource="com/dgm/dao/IUserDao.xml"/>
    </mappers>
</configuration>

编写 独立配置文件

<?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">
<!--
    namespace:用来区分mapper接口的,Mapper接口的全限定路径
-->
<mapper namespace="com.dgm.dao.IUserDao">
    <!-- SQL语句 配置查询所有-->
    <!--
    id属性:接口中方法的名称
    resultType属性:方法返回值类型 全限定路径(包名+类名)
    -->
    <select id="findAll" resultType="com.dgm.domain.User">
        select *from user
    </select>
</mapper> 

6.编写入门程序


package com.dgm.test;

import com.dgm.dao.IUserDao;
import com.dgm.domain.User;
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 org.junit.Test;


import java.io.IOException;
import java.io.InputStream;
import java.util.List;

/**
 * 入门程序
 */
public class Demo1 {

    /**
     * 测试查询方法
     */
//    @Test
//    public void testFindAll() throws IOException {
//
//
//        //加载主配置文件
//        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//        //创建一个对象sqlSessionFactory对象
//        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
//        //通过工厂对象获取sqlSession对象
//        SqlSession session = factory.openSession();
//        //调用sqlsession对象的方法
//        List<User> list = session.selectList("com.dgm.dao.IUserDao.findAll");
//        //遍历集合
//        for (User user:list){
//            System.out.println(user);
//        }
//        //关闭一些资源
//        session.close();
//        inputStream.close();
//    }

    /**
     * 代理对象的方法
     *
     */
    @Test
    public void testFindAll1() throws IOException {


        //加载主配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //创建一个对象sqlSessionFactory对象
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
        //通过工厂对象获取sqlSession对象
        SqlSession session = factory.openSession();
        //使用代理对象
        IUserDao mapper = session.getMapper(IUserDao.class);

        List<User> list = mapper.findAll();


        //遍历集合
        for (User user:list){
            System.out.println(user);
        }
        //关闭一些资源
        session.close();
        inputStream.close();
    }
}

结果

结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值