Idea MyBatis之手动导入包-查询数据库数据

MyBatis 环境搭建

创建项目

Idea MyBatis之手动导入包-查询数据库数据_第1张图片

将jar包拷贝到项目中,并加入依赖

Idea MyBatis之手动导入包-查询数据库数据_第2张图片

编写MyBatis的核心配置文件

  1. 是一个xml文件,命名没有要求,一般改配置文件放到src文件下,因为src目录下的内容将来会被编译并存放到类路径(classpath)

  2. 编写xml配置文件时,需要先导入dtd约束

  3. 核心配置文件代码

    
    
    <configuration>
        
        <environments default="dev">
            
            <environment id="dev">
                
                <transactionManager type="JDBC">transactionManager>
                
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver">property>
                    <property name="url" value="jdbc:mysql://localhost:3306/db_ssm">property>
                    <property name="username" value="root">property>
                    <property name="password" value="123456">property>
                dataSource>
            environment>
        environments>
    configuration>
    
  4. 创建表格(navicat)数据库:db_ssm 数据表:tb_user
    Idea MyBatis之手动导入包-查询数据库数据_第3张图片
    插入一条数据
    在这里插入图片描述

  5. 创建实体类

    1. idea中序列化生成uid的相关配置
      Idea MyBatis之手动导入包-查询数据库数据_第4张图片

    2. 如何添加id :ALT+enter ,添加构造方法: ALT+SHIFT+S

      package com.bjsxt.pojo;
      
      import java.io.Serializable;
      import java.util.Date;
      
      /**
       * @auther gerry
       * @date 2020/6/11- 14:42
       */
      public class User implements Serializable {
          private static final long serialVersionUID = 4987211173364886418L;
          private int id;
          private String username;
          private String password;
          private String realname;
          private int age;
          private Date birthday;
          private Date regTime;
      
          @Override
          public String toString() {
              return "User{" +
                      "id=" + id +
                      ", username='" + username + '\'' +
                      ", password='" + password + '\'' +
                      ", realname='" + realname + '\'' +
                      ", age=" + age +
                      ", birthday=" + birthday +
                      ", regTime=" + regTime +
                      '}';
          }
      
          public User() {
          }
      
          public int getId() {
              return id;
          }
      
          public void setId(int id) {
              this.id = id;
          }
      
          public String getUsername() {
              return username;
          }
      
          public void setUsername(String username) {
              this.username = username;
          }
      
          public String getPassword() {
              return password;
          }
      
          public void setPassword(String password) {
              this.password = password;
          }
      
          public String getRealname() {
              return realname;
          }
      
          public void setRealname(String realname) {
              this.realname = realname;
          }
      
          public int getAge() {
              return age;
          }
      
          public void setAge(int age) {
              this.age = age;
          }
      
          public Date getBirthday() {
              return birthday;
          }
      
          public void setBirthday(Date birthday) {
              this.birthday = birthday;
          }
      
          public Date getRegTime() {
              return regTime;
          }
      
          public void setRegTime(Date regTime) {
              this.regTime = regTime;
          }
      }
      

编写映射配置文件

​ 要求也是一个xml文件,命名无所谓,位置无所谓。一般叫xxxMapper.xml




<mapper namespace="abc">
    
    <select id="selAll" resultType="com.bjsxt.pojo.User">
        select * from tb_user
    select>
mapper>

注意点:namespace属性必须添加,不然会出现错误在这里插入图片描述

需要在核心配置文件中进行映射文件的扫描配置



<configuration>
    
    <environments default="dev">
        
        <environment id="dev">
            
            <transactionManager type="JDBC">transactionManager>
            
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver">property>
                <property name="url" value="jdbc:mysql://localhost:3306/db_ssm">property>
                <property name="username" value="root">property>
                <property name="password" value="123456">property>
            dataSource>
        environment>
    environments>
    
    <mappers>
        <mapper resource="UserMapper.xml">mapper>
    mappers>
configuration>

编写测试代码

  1. 导入了junit-4.12.jar

  2. 新建TestMyBatis类

    package com.bjsxt.test;
    
    import com.bjsxt.pojo.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;
    
    
    /**
     * @auther gerry
     * @date 2020/6/12- 18:32
     */
    public class TestMyBatis {
        @Test
        public void testSelAll() throws IOException {
            //Resources -- 资源加载工具,默认去classpath加载资源
            InputStream is = Resources.getResourceAsStream("mybatis.xml");
            //SqlSessionFactoryBuilder --工厂构建者
            //SqlSessionFactory --会话工厂
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
            //SqlSession --会话,用于所有mybatis中操作方法的调用
            SqlSession sqlSession = factory.openSession();
            List<User> list = sqlSession.selectList("selAll");
            for (User user : list) {
                System.out.println(user);
            }
            //关闭资源
            sqlSession.close();
    
        }
    }
    

总结

1. 配置文件详解

a) 核心配置文件

  • 根标签:

  • 环境管理标签: , 用于管理多个环境配置, 其中default属性用于指定当前使用哪个环境, 配置的是子标签的id;

  • 环境配置标签: , 用于配置一个环境, ,其中, id属性用于进行唯一标识, 可以区分多个环境;

  • 事务管理器标签: , 用于指定mybatis使用何种方式进行事务的管理, type的可选值有: JDBC | MANAGED;

    • JDBC: 表示mybatis采用和JDBC一致的方式进行事务的管理;

    • MANAGED: 表示MyBatis不对事务管理, 交给容器管理;

  • 数据源标签: , 用于配置数据源(数据库连接池), type的可选值有: POOLED | UNPOOLED | JNDI;

    • POOLED, 表示采用连接池技术获取数据库连接;

    • UNPOOLED, 表示不采用连接池, 每次都物理开关连接;

    • JNDI, Java Naming and Directory Interface, java命名和目录接口.

  • 映射扫描标签: ,

    • class: 该属性用于扫描类的时候使用

    • url: 该属性用于扫描远程的映射信息

    • resource: 用于扫描本地类路径下的资源文件

b) 映射配置文件

  • 根标签: , namespace必须要配置. 命名空间有点类似于java中的package. 在MyBatis中, 命名空间用于管理sql语句对应的id. MyBatis中定位sql语句的方式是namespace.id

  • 子标签: , 用于定义查询sql语句

    • id: 在同一个namespace中进行唯一标识;
    • resultType: 表名查询结果的类型. 应该写类型的全限定路径. 同时, 如果返回结果是集合, ,应该写集合泛型的类型.
效果图

在这里插入图片描述
参考视频:https://www.bilibili.com/video/BV14J411K745?p=4

你可能感兴趣的:(mybatis,mysql,java)