ssm合集---02 初识mybatis

本文详细介绍了如何从创建数据库和表开始,通过Maven配置MyBatis环境,编写实体类、Dao接口和映射文件,直至实现数据查询和日志配置。跟着步骤走,轻松掌握MyBatis基础应用。
MyBatis 框架快速入门
    搭建 MyBatis 开发环境
1.创建mysql数据库和表(例如 数据库名springdb)
   
2.创建maven工程
3.删除默认创建的 App 类文件(如图)
4.加入 maven 坐标
pom.xml 加入 maven 坐标:
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!--mybatis的依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.1</version>
    </dependency>
    <!--mysql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.9</version>
    </dependency>
  </dependencies>

5. 加入 maven 插件

<build>
    <resources>
      <resource>
        <directory>src/main/java</directory><!--所在的目录-->
        <includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>

  </build>

6. 编写 Student 实体类

package com.zsz.domain;
//推荐和表名一样这样容易记忆
public class Student {
    //定义属性,目前要求是属性名和列名一致
    private Integer id;
    private String name;
    private String email;
    private Integer age;

    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;
    }

    public Student() {
    }

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

7. 编写 Dao 接口 StudentDao

package com.zsz.dao;

import com.zsz.domain.Student;

import java.util.List;

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

}

8. 编写 Dao 接口 Mapper 映射文件 StudentDao.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">
<!--
 namespace:必须有值,自定义的唯一字符串
 推荐使用:dao 接口的全限定名称
--> <mapper namespace="com.zsz.dao.StudentDao">
    <!--
    <select>: 查询数据, 标签中必须是 select 语句
    id: sql 语句的自定义名称,推荐使用 dao 接口中方法名称,
    使用名称表示要执行的 sql 语句
    resultType: 查询语句的返回结果数据类型,使用全限定类名
    -->
    <select id="selectStudents" resultType="com.zsz.domain.Student">
        <!--要执行的 sql 语句-->
        select id,name,email,age from student order by id
    </select>
</mapper>
<!--
  1.sql映射文件,执行sql语句的,mybatis会执行这里面的sql语句

  2. 指定约束文件
   <!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

        mybatis-3-mapper.dtd 是约束文件的名称,扩展名是dtd的。

   3.约束文件的作用:限制和检查在当前文件中出现的标签,属性必须符合mybatis的要求。

   4.mapper是当前文件的根标签,必须的
     namespace:叫做命名标签,唯一值的,可以是自定义的字符串。
                要求你使用dao接口的全限定名称。

   5.在当前文件夹中,可以使用特定的标签,表示数据库的特定操作。

     <select>:表示执行查询;
     <delete>:表示执行删除,在这个标签中写的是 uodata sql语句 ;
     <updata>:表示执行修改;
     <insert>:表示执行添加;






-->

9. 创建 MyBatis 主配置文件

标注:项目 src/main 下创建 resources 目录,设置 resources 目录为 resources root
创建主配置文件:名称为 mybatis.xml
<?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>
    <!--
        配置 mybatis 环境
        default:必须和某个environment的id值一样。
        告诉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.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/springdb"/>
                <property name="username" value="root"/>
                <property name="password" value="123"/>
            </dataSource>
        </environment>

        <environment id="onlinedb">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/onlinedb"/>
                <property name="username" value="root"/>
                <property name="password" value="123456798"/>
            </dataSource>
        </environment>

    </environments>

    <!--
        mappers:指定sql mapper(sql映射文件)的位置
    -->
    <mappers>
        <!--
            一个mapper标签指定一个文件的位置。
            从类路径开始的信息, target/class(类路径)

        -->
        <mapper resource="com/zsz/dao/StudentDao.xml"/>
    </mappers>
</configuration>

<!--
     mybatis的主配置文件:主要定义了数据库的配置信息,sql映射文件的位置

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

        mybatis-3-config.dtd  约束文件的名称

     2.<configuration>  根标签


-->

10. 创建测试类 MyApp

标注:src/test/java/com/zsz/ 创建 MyApp.java 文件(作为测试类)
package com.zsz;

import com.zsz.domain.Student;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import javax.annotation.Resources;
import java.io.InputStream;
import java.util.List;

public class MyApp {
    public static void main(String[] args)  {
        //访问mybatis,读取student数据
        //1.定义mybatis主配置文件的名称,从类路径的根开始(target.classes)
        //这里要写:  /mybatis.xml
        String config="/mybatis.xml";
        //2.读取这个config表示的文件
        InputStream inputStream=Resources.class.getResourceAsStream(config);
        //3.创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //4.创建SqlSessionFactory对象
        SqlSessionFactory factory = sqlSessionFactoryBuilder.build(inputStream);
        //5.[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
        SqlSession sqlSession=factory.openSession();
        //6.[重要]指定要执行的sql语句的标识。sql映射文件的namespace+"."+标签的id值。
        String sqlId="com.zsz.dao.StudentDao"+"."+"selectStudents";
        //7.执行sql语句,通过sqlId找到语句
        List<Student> studentList = sqlSession.selectList(sqlId);
        //8.输出结果
//        studentList.forEach(stu-> System.out.println(stu));
        for (Student stu:studentList) {
            System.out.println("查询的学生="+stu);

        }

        //9.关闭SqlSession对象
        sqlSession.close();


    }

}

11.配置日志功能

mybatis.xml 文件加入日志配置,可以在控制台输出执行的 sql 语句和参数
 <!--mybatis.xml 文件加入日志配置,可以在控制台输出执行的 sql 语句和参数-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>
12.运行结果
查询的学生=Student{id=1001, name='赵书正', email='3211@qq.com', age=20}
查询的学生=Student{id=1002, name='卫龙', email='333@qq.com', age=20}
查询的学生=Student{id=1003, name='生良好', email='666@qq.com', age=19}
查询的学生=Student{id=1004, name='臧三', email='999@qq.com', age=25}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值