• mybatis 基本配置 学习总结01


    Mybatis

    1、什么是Mybatis

    1. Mybatis是一款优秀的持久层框架
    2. 几乎避免了所有JDBC代码和手动设置参数以及获取结果集的过程。
    3. Mybatis是一个半自动化的ORM框架(Object Relationship Mapping)

    持久化:将程序数据在持久状态和瞬时状态间转换的机制。(保存到可永久存储的设备中:磁盘...)


    什么是持久层?

    完成持久化工作的代码块:dao层【DAO (Data Access Object)数据访问对象】


    2、第一个程序:

    1、数据库

    CREATE DATABASE `mybatis`;
    
    USE `mybatis`;
    
    DROP TABLE IF EXISTS `user`;
    
    CREATE TABLE `user` (
    `id` int(20) NOT NULL,
    `name` varchar(30) DEFAULT NULL,
    `pwd` varchar(30) DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    insert  into `user`(`id`,`name`,`pwd`) values (1,'狂神','123456'),(2,'张三','abcdef'),(3,'李四','987654');
    

    2、IDEA创建项目

    Create New Project --> Maven -->Next -->Location(项目的位置) --> Finish


    3、导入所需的jar包

    找jar包例子:如:找mybatis的jar

    1. 百度 “mybatis mvn”
    2. 点击要用到的jar包名
    3. 选择版本
    4. 复制maven

    pom.xml:

    <!--总依赖标签-->
    <dependencies>
        <!--mybatis 使用所需的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--sql 连接的依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
    </dependencies>
    

    4、创建文件

    1、创建mybatis-config.xml

    右键resources --> new --> File --> 填“mybatis-config.xml”

    mybatis-congif.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> <!-- 配置标签 -->
    <environments default="development"> <!-- 总环境  默认:development -->
        <environment id="development"> <!-- 环境 名为:development -->
            <transactionManager type="JDBC"/> <!-- 事务管理器  类型:JDBC (事务:确保操作完整性,要么成功要么失败)-->
            <dataSource type="POOLED"> <!-- 数据源 类型:POOLED-->
                <property name="driver" value="com.mysql.jdbc.Driver"/> <!--属性 名:驱动 值:..mysql(使用的何种数据库).. -->
                <!-- 属性 名:url 值:数据连接地址+规则(如:字符集:UTF-8) -->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8"/>
                <property name="username" value="root"/> <!-- 属性 名:数据库用户名  值:root-->
                <property name="password" value="123"/> <!--属性 名:密码  值:123456 -->
            </dataSource>
        </environment>
    </environments>
    <mappers> <!--映射器 -->
        <mapper resource="com/dao/userMapper.xml"/> <!-- 映射  资源:userMapper.xml -->
    </mappers>
    </configuration>
    

    2、User 实体类

    点开java(文件是蓝色)--> 右键 --> new --> Package --> 填入“com.pojo” -- >

    右键:pojo文件 --> new --> Java Class --> 命名为“User”


    生成get、set的快捷键:Alt + Insert (如:选择了set后,Ctrl+A全选所有的成员生成set方法)


    User.java

    package com.pojo;
    
    public class User {
        private int id;
        private String name;
        private String pwd;
    
        public int getId() {
            return id;
        }
    
        public String getName() {
            return name;
        }
    
        public String getPwd() {
            return pwd;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
    }
    
    

    3、UserMapper.xml

    右键com --> New --> Package --> 填"com.dao"

    右键dao --> File --> 填“UserMapper.xml”

    这里将会有一个问题:IDEA不会编译src的main中java文件里的.xml文件(需要进行过滤放置)

    UserMapper.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">
    <mapper namespace="com.dao.UserMapper"> <!-- 映射器  命名空间:映射到那个类的地址  -->
        <select id="selectUser" resultType="com.pojo.User"> <!-- 查询  名:selectUser  结果类型:com.pojo.User -->
          select * from user
        </select>
    </mapper>
    

    4、UserMapper (接口)

    右键com (packge) --> new --> Packege --> 填“com.dao"

    右键 dao --> New -- >Class --> Interface --> 填“UserMapper”

    UserMapper

    package com.dao;
    
    import com.pojo.User;
    
    import java.util.List;
    
    public interface UserMapper {
        List<User> selectUser();
    }
    
    

    5、MyBatisUtils工具类

    右键目录java(蓝色)--> new --> Package --> utils

    右键utils ---> New -->Java Class ---> 填“MybatisUtils”

    MybatisUtils.java

    package utils;
    
    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 java.io.IOException;
    import java.io.InputStream;
    
    public class MybatisUtils {
        private static SqlSessionFactory sqlSessionFactory;
    
        static{
            try {
                String resource = "mybatis-config.xml"; // 获取资源文件路径
                InputStream inputStream = Resources.getResourceAsStream(resource); //读取文本数据
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 创造工厂
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public static SqlSession getSession() {
            return sqlSessionFactory.openSession();
        }
    }
    

    6、MyTest

    点击test --> 右键java(绿色) -->new --> Java Class --> 填“MyTest”

    import com.dao.UserMapper;
    import com.pojo.User;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    import utils.MybatisUtils;
    
    import java.util.List;
    
    public class MyTest {
        @Test
        public void selectUser() {
            SqlSession session = MybatisUtils.getSession();
    
            UserMapper mapper = session.getMapper(UserMapper.class);
            List<User> users = mapper.selectUser();
    
            for (User user: users){
                System.out.println(user);
            }
            session.close();
        }
    }
    
    

    7、静态资源过滤

    运行程序后出现异常:Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/dao/userMapper.xml


    原因:idea不会编译src的java目录的xml文件(被过滤掉)

    需要配置过滤文件,让其能够在src中使用.xml文件


    pom.xml

    <!--配置过滤器不过滤java文件里面的 .properties和 .xml文件
        不过滤resources文件里面的 .properties和 .xml文件  -->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
    
  • 相关阅读:
    POJ 2752 Seek the Name, Seek the Fame
    POJ 2406 Power Strings
    KMP 算法总结
    SGU 275 To xor or not to xor
    hihocoder 1196 高斯消元.二
    hihoCoder 1195 高斯消元.一
    UvaLive 5026 Building Roads
    HDU 2196 computer
    Notions of Flow Networks and Flows
    C/C++代码中的笔误
  • 原文地址:https://www.cnblogs.com/zhouyongyin/p/13453262.html
Copyright © 2020-2023  润新知