最全【SSM框架】Mybatis详解06(源码自取)之动态代理的实现,javaio面试题面试题

最后

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性

Java面试宝典2021版

最常见Java面试题解析(2021最新版)

2021企业Java面试题精选

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

在这里插入图片描述

新建maven工程,这里就不在显示创建过程了,如果有需要请查找 mybatis框架详解04

3)修改目录


这里就不再显示修改目录过程了,如果有需要请查找 mybatis框架详解04

4)修改pom.xml文件,添加依赖


这里并没有添加新的依赖哦,具体解释请查找 mybatis框架详解04


<dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.11</version>

      <scope>test</scope>

    </dependency>

    <dependency>

      <groupId>org.mybatis</groupId>

      <artifactId>mybatis</artifactId>

      <version>3.5.6</version>

    </dependency>

    <dependency>

      <groupId>mysql</groupId>

      <artifactId>mysql-connector-java</artifactId>

      <version>8.0.15</version>

    </dependency>

  </dependencies>



  <build>

    <resources>

      <resource>

        <directory>src/main/java</directory>

        <includes>

          <include>**/*.xml</include>

          <include>**/*.properties</include>

        </includes>

      </resource>



      <resource>

        <directory>src/main/resources</directory>

        <includes>

          <include>**/*.xml</include>

          <include>**/*.properties</include>

        </includes>

      </resource>

    </resources>

  </build>



5)添加jdbc.propertis文件到resources目录下



jdbc.driverclassName=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8

jdbc.username=root

jdbc.password=********



![]( )

6)添加SqlMapConfig.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>

<!--   读取属性文件(jdbc.properties)

    属性:

        resources:从resouces目录下找指定名称的文件加载

        url:使用绝对路径加载属性文件

-->

<properties resource="jdbc.properties"></properties>



<!--    设置日志输出-->

    <settings>

        <setting name="logImpl" value="STDOUT_LOGGING"/>

    </settings>

<!--注册实体类-->

    <typeAliases>

        <package name="com.longlong.pojo"/>

    </typeAliases>



    <!--    配置数据库的环境变量(数据库链接配置)

        default:使用下面的environment标签下的id属性进行指定配置

-->

    <!--    <settings>-->

    <!--        <setting name="" value=""/>-->

    <!--    </settings>-->

<environments default="development">

<!--    开发时再公司使用的数据库配置

        id;就是提供给environment的default属性使用

        -->

    <environment id="development">

<!--        配置事务管理器

            type:指定事务管理的方式

                JDBC:事务的控制交给管理员来处理

                MANAGED:由容器(Spring)来管理事务

-->

        <transactionManager type="JDBC"></transactionManager>

<!--        配置数据源:

            type:指定不同的配置方式

                JNDI:java命名目录接口,在服务器端进行数据库连接池的管理

                POOLED:使用数据库连接池

                UNPOOLED:不使用数据库连接池



-->

        <dataSource type="POOLED">

<!--      配置数据库连接的基本参数

            private String driver;

            private String url;

            private String username;

            private String password;

-->

            <property name="driver" value="${jdbc.driverclassName}"/>

            <property name="url" value="${jdbc.url}"/>

            <property name="username" value="${jdbc.username}"/>

            <property name="password" value="${jdbc.password}"/>

        </dataSource>

    </environment>

<!--在家时候数据库配置-->

<!--    <environment id="home">-->

<!--        <transactionManager type=""></transactionManager>-->

<!--        <dataSource type=""></dataSource>-->

<!--    </environment>-->

<!--&lt;!&ndash;上线的数据库配置&ndash;&gt;-->

<!--    <environment id="online">-->

<!--        <transactionManager type=""></transactionManager>-->

<!--        <dataSource type=""></dataSource>-->

<!--    </environment>-->

</environments>

<!--    注册mappe.xml文件

        resouces:从resouces目录下找指定名称的文件注册

        url:使用绝对路径注册

        class:动态代理方式下的注册

-->

    <mappers>

<!--        <mapper class="com.longlong.mapper.UserMapper"></mapper>-->

        <package name="com.longlong.mapper"/>

    </mappers>

</configuration>



需要注意的是:在注册mapper的时候一定要选择类注册,或者包批量注册,否则无法检测到哦,包批量注册默认名称为首字母小写的驼峰命名法的类名

7)添加实体类


在这里插入图片描述

实体类,最好按照数据库的类名写哦,可以自动识别并且装配。当然不一样也是可以的,后续介绍哦


package com.longlong.pojo;



import java.util.Date;



/**

 * @Author DELL longlong

 * @Date 2022/7/3 15:59

 * @Version 1.0

 * @Function users实体类

 */

public class Users {

    private Integer id;

    private String userName;

    private Date birthday;

    private String sex;

    private String address;



    public Users(Integer id, String userName, Date birthday, String sex, String address) {

        this.id = id;

        this.userName = userName;

        this.birthday = birthday;

        this.sex = sex;

        this.address = address;

    }



    public Users(String userName, Date birthday, String sex, String address) {

        this.userName = userName;

        this.birthday = birthday;

        this.sex = sex;

        this.address = address;

    }



    public Users() {

    }



    @Override

    public String toString() {

        return "User{" +

                "id=" + id +

                ", userName='" + userName + '\'' +

                ", birthday=" + birthday +

                ", sex='" + sex + '\'' +

                ", address='" + address + '\'' +

                '}';

    }



    public Integer getId() {

        return id;

    }



    public void setId(Integer id) {

        this.id = id;

    }



    public String getUserName() {

        return userName;

    }



    public void setUserName(String userName) {

        this.userName = userName;

    }



    public Date getBirthday() {

        return birthday;

    }



    public void setBirthday(Date birthday) {

        this.birthday = birthday;

    }



    public String getSex() {

        return sex;

    }



    public void setSex(String sex) {

        this.sex = sex;

    }



    public String getAddress() {

        return address;

    }



    public void setAddress(String address) {

        this.address = address;

    }

}





8)添加mapper文件夹,新建UserMapper接口


重点来了,Usermapper文件和UserMapper接口一定要放在同级目录下,大家看到名字和文件位置都非常的像,就是为了方便框架可以把他们两个更好的对应起来。

在这里插入图片描述


package com.longlong.mapper;



import com.longlong.pojo.Users;

import org.apache.ibatis.annotations.Param;



import java.util.List;



/**

 * @Author DELL longlong

 * @Date 2022-08-05 16:26

 * @Version 1.0

 * @Function 数据访问层的接口,规定的数据库中可进行的各种操作

 */

public interface UserMapper {

    //查询全部用户信息

    List<Users> getAll();

}





9)在mapper文件夹下,新建UsersMapper.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.longlong.mapper.UserMapper">

   <!--    //查询全部用户信息-->

<!--    List<Users> getAll();-->

    <select id="getAll" resultType="users">

        select <include refid="allColumns"></include>



### 最后

> **针对以上面试题,小编已经把面试题+答案整理好了**
>

![最新大厂必问微服务面试题汇总:SpringCloud、Boot、Dubbo](https://img-blog.csdnimg.cn/img_convert/5151a9cb4d76dc87657f0c4585d2f007.webp?x-oss-process=image/format,png)

![最新大厂必问微服务面试题汇总:SpringCloud、Boot、Dubbo](https://img-blog.csdnimg.cn/img_convert/d2405733a6121ab7e6456c04739da9bb.webp?x-oss-process=image/format,png)

![最新大厂必问微服务面试题汇总:SpringCloud、Boot、Dubbo](https://img-blog.csdnimg.cn/img_convert/60e957e3257f216776724739c608f939.webp?x-oss-process=image/format,png)

# 面试专题

![image](https://img-blog.csdnimg.cn/img_convert/763c9758e1314deeecd1c9dbc5fd49dd.webp?x-oss-process=image/format,png)

**除了以上面试题+答案,小编同时还整理了微服务相关的实战文档也可以分享给大家学习**

![image](https://img-blog.csdnimg.cn/img_convert/5309cf75c3a2766afb71410480f54f41.webp?x-oss-process=image/format,png)

![image](https://img-blog.csdnimg.cn/img_convert/a01b85dbfac5445de70501c1948b12f7.webp?x-oss-process=image/format,png)

 ![image](https://img-blog.csdnimg.cn/img_convert/99cb55e560bae74a1b8871e979ca37cb.webp?x-oss-process=image/format,png)

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.youkuaiyun.com/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.youkuaiyun.com/forums/4f45ff00ff254613a03fab5e56a57acb)**

"></include>



### 最后

> **针对以上面试题,小编已经把面试题+答案整理好了**
>

[外链图片转存中...(img-PlSJs12o-1715589265846)]

[外链图片转存中...(img-8JoWJEGl-1715589265847)]

[外链图片转存中...(img-HbctJJVs-1715589265847)]

# 面试专题

[外链图片转存中...(img-AGmPOnLo-1715589265848)]

**除了以上面试题+答案,小编同时还整理了微服务相关的实战文档也可以分享给大家学习**

[外链图片转存中...(img-t683fnAT-1715589265848)]

[外链图片转存中...(img-AovGbvSK-1715589265849)]

 [外链图片转存中...(img-1IwkIomQ-1715589265849)]

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.youkuaiyun.com/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.youkuaiyun.com/forums/4f45ff00ff254613a03fab5e56a57acb)**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值