MyBatis框架——day01

MyBatis框架——day01

  1. 三层架构
    界面层【controller包(servlet)】:与用户交互,接受用户的参数,显示处理的结果(jsp、html、servlet)
    业务逻辑层【service包(XXXService类)】:接受界面层传递的数据,计算逻辑,调用数据库,获取数据
    数据访问层【dao包(XXXDao类)】:访问数据库,实现增删改查

  2. 三层中类的交互
    用户使用界面层————>业务逻辑层————>数据访问层————>数据库

  3. 三层对应的框架
    界面层————>servlet————>SpringMVC(框架)
    业务逻辑层————>service————>Spring(框架)
    数据访问层————>dao类————>MyBatis(框架)

  4. MyBatis框架
    1、sql映射:可以把数据库表中的一行数据,映射为一个java对象
    (一行数据可以看作是一个Java对象,操作这个对象就相当于操作表中的数据)
    2、数据访问:对数据库执行增删改查

  5. 实现步骤:
    1、新建的student表

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `id` int(11) NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

2、加入maven的mybatis依赖,mysql驱动的依赖(pom.xml)

 <!--mybatis依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>
    <!--mysql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.25</version>
    </dependency>
  </dependencies>

3、创建实体类Student——>保存表中的一行数据

public class Student {
    //定义属性,列名和属性名应该保持一致
    private Integer id;
    private String name;
    private String email;
    private Integer age;

    public Student() {
    }

    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 getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", age=" + age +
                '}';
    }
}

4、创建持久层的dao接口,定义操作数据库的方法

public interface StudentDao {
    //查询student表的所有数据
    public List<Student> selectStudents();
}

5、创建一个mybatis使用的配置文件 叫做sql映射文件内:写sql语句(一般一个表一个sql映射文件)

<?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:必须有值,自定义的唯一字符串推荐使用:dao 接口的全限定名称-->
<mapper namespace="com.bjpowernode.dao.StudentDao">
    <!--<select>: 查询数据, 标签中必须是 select 语句
    id: sql 语句的自定义名称,推荐使用 dao 接口中方法名称,使用名称表示要执行的 sql 语句
    resultType: 查询语句的返回结果数据类型,使用全限定类名-->
    <select id="selectStudents" resultType="com.bjpowernode.entity.Student">
    <!--要执行的 sql 语句-->
    select id,name,email,age from student
</select>
</mapper>

6、创建mybatis的主配置文件(一个项目就一个):提供数据库的连接信息和sql映射文件的位置信息

<configuration>
    <!--配置 mybatis 环境-->
    <environments default="mysql">
    <!--id:数据源的名称-->
        <environment id="mysql">
    <!--配置事务类型:使用 JDBC 事务(使用 Connection对象的提交(commit)和回滚(rollback))-->
            <transactionManager type="JDBC"/>
    <!--数据源 dataSource:创建数据库 Connection 对象type: POOLED 使用数据库的连接池-->
            <dataSource type="POOLED">
                <!--连接数据库的四个要素-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
                <property name="username" value="root"/>
                <property name="password" value="111"/>
            </dataSource>
    </environment>
</environments>
    <!--告诉 mybatis要执行的sql语句的位置-->
    <mappers>
        <mapper resource="com/bjpowernode/dao/StudentDao.xml"/>
    </mappers>
</configuration>

7、创建使用mybatis类:通过mybatis访问数据库(测试类)

public class MyApp {

    public static void main(String[] args) throws IOException {
        //访问mybatis读取student数据

        //1、定义mybatis主配置文件的名称
        String config = "mybatis.xml";
        //2、读取这个config表示的文件
        InputStream in = Resources.getResourceAsStream(config);
        //3.创建 SqlSessionFactory 对象,目的是获取 SqlSession
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //4.创建SqlSessionFactory对象
        SqlSessionFactory factory = builder.build(in);
        //5.【重要】获取SqlSession对象,从SqlSessionFactory中获取SqlSession
        SqlSession sqlSession = factory.openSession();
        //6.【重要】指定要执行的sql语句的标识,sql映射文件中的namespace+"."+标签的id值
        String sqlId = "com.bjpowernode.dao.StudentDao"+"."+"selectStudents";
        //7.执行sql语句,通过sqlId找到语句
        List<Student> studentList = sqlSession.selectList(sqlId);
        //8.输出结果
        studentList.forEach(stu ->System.out.println(stu));
        //9.关闭 SqlSession,释放资源
        sqlSession.close();
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值