zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    hdu1698(线段树区间更新)
    js数组的操作
    grunt构建一个项目
    JS获取当前时间
    页面打开后,几秒后自动跳转
    设置网页图片热点链接
    mongodb的安装
    Linux,activemq-cpp之消息过滤器
    Linux 命令行输入
    第五篇——Spring音乐播放界面设计(C#)
  • 原文地址:https://www.cnblogs.com/zhouyongyin/p/13453262.html
Copyright © 2011-2022 走看看