关于mybatis搭建(xml方式)

什么是mybatis

     mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
     mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回.
     我们以前没学mybatis的时候用的jdbc,一句一句的写的挺头疼的,用了框架之后我们就开发更快,缩短开发时间,这里所说的持久层是三层架构的一层,三层架构是:表现层,业务层,持久层,三层是一种软件架构,而MVC是一种模式,后面这几句话是我自己的理解

本文摘自源地址
在这里插入图片描述

为什么要学习mybatis

     因为 框架帮我们做了底层的事情,我们不需要关注底层代码的编写,让我们开发更加方便

mybatis环境搭建

这里采用了maven来搭建,如果还没学maven的话就是下载jar包导入jar包了,可以去mybatis官网去下载他们的jar包

  • 开发工具 IDEA2018
  • 构建工具maven3.5
  • mysql-5.7
  • mybatis-3.5.4
    我们可以按照 官网所说的一步步来,你百度搜索mybatis官网也可以
    mybatis官网官方文档
    点击入门
    在这里插入图片描述
    这里首先,打开你的编辑器,我这里用的是IDEA,这个界面怎么打开的我真的不想再说了但是啊,我的同学既然发问过我,我就写下吧
    在这里插入图片描述
    你们以前创建好的项目,都是每次默认,打开的以前写的项目
    在这里插入图片描述
    你只需要呢,点击关闭,这个项目就可以了,close project
    在这里插入图片描述
    这里,就不用采用骨架了,因为,只需要查查,数据库,到控制台看下就可以了

在这里插入图片描述
这里因为怕录制的GIF大小超过5M就节约了点等待的时间,因为CSDN上面是不能上传5M以上的GIF

在这里插入图片描述
上面有版本信息,用最新的也没事,如果你想用旧版本可以去maven仓库去找,当然你也可以用国内的仓库地址,至于怎么找到这个连接地址,只需要去百度搜索 maven repository,如果需要你安全验证的话,你就输入验证码就可以了,进去自己搜索
maven仓库地址
这里多提一嘴,这里是看以前版本的自己点击第一个就可以找pom依赖了
在这里插入图片描述
   如果上面有说错的请联系我QQ 1423228256,因为你要查数据库肯定少不了,连接驱动mysql-connect-java,上面那个有一个springboot整合mybatis的启动器,不是springboot的启动器,也懒得改了,当你学到springboot的时候会发现一个新大陆
在这里插入图片描述

 <!-- 导入依赖 -->
   <dependencies>
       <!-- mybatis依赖跟版本 -->
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.5.4</version>
       </dependency>
       <!-- 因为自己要测试就导入junit -->
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
       </dependency>
       <!-- 驱动 -->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.6</version>
       </dependency>
   </dependencies>

在这里插入图片描述
   这里给大家看一个IDEA连接 连接数据库的方便,这张GIF录好被压缩过,如果你不知道这个东西的话,第一次使用,点击的下面的一个,什么反正差不多意思是下载的意思,我忘记了,点他一下就可以跟我一样了,位置我忘记了,是为了大家方便,就给大家演示了下,怕小白不知道
在这里插入图片描述
在这里插入图片描述
到这里我们去创建一个数据库,复制粘贴SQL语句就可以了
在这里插入图片描述

create database mybatis;
use mybatis;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(32) NOT NULL COMMENT '用户名称',
  `birthday` datetime default NULL COMMENT '生日',
  `sex` char(1) default NULL COMMENT '性别',
  `address` varchar(256) default NULL COMMENT '地址',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert  into `user`(`username`,`birthday`,`sex`,`address`) values ('adger','2020-04-03 16:47:15','男','长沙');

   我下面 使用的 快捷键是 Alt + Insert(笔记本上面可能是Alt + Fn + F12),实体类,已经创建好了,顺便扩展下,实体类 != javaBean,Bean 在计算机中是有可重复使用组件的意思,我决定还是再给大家扩展下,关于这个实体类,我记得还有一个插件,可以加上几个注解,就可以生成一个实体类,那个插件的名字叫,Lombok,关于这个实体类,有很多叫法,有的叫,domain,pojo等等
在这里插入图片描述
   至于javaBean为什么一定写private,我觉得是一种javaBean的规范,再提供一个公开的set get 方法,然后再写一个dao接口,接口写完,就开始配置mybatis环境了
在这里插入图片描述
去官网,看这句话,先不要看上面的
在这里插入图片描述
去官网,复制,粘贴,就可以了,现在不要急,这些不用记,但是你必须得看的懂,记得下面的mapper中的resources自己改下,这里mybatis喜欢叫mapper我自己喜欢一致性,就叫这个名字了,如果你的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">
<!-- mybatis的主配置文件 -->
<configuration>
    <!-- 配置环境 -->
    <environments default="development">
        <!-- 配置mysql环境 -->
        <environment id="development">
            <!-- transactionManager 事务类型  -->
            <transactionManager type="JDBC"/>
            <!-- 配置数据源,也叫连接池,type="有三个类型"-->
            <dataSource type="POOLED">
                <!-- 配置连接数据库得基本信息 8.0的版本注意后面加上
                ?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true 	
					mysql jar包也要引入高版本的 
					<dependency>
					<groupId>mysql</groupId>
					<artifactId>mysql-connector-java</artifactId>
					<version>8.0.11</version>
					</dependency>
 				-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
    <mappers>
        <mapper resource="club/adger/dao/UserDao.xml"/>
    </mappers>
</configuration>

然后再去创建映射配置文件
在这里插入图片描述
复制粘贴,过去,自己改改就这么简单,双击类或者方法就可以了,复制全限定类名,对了Ctrl + / 快速生成注释,Ctrl + Shift + / 快速生成文档注释
在这里插入图片描述

<?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="club.adger.dao.UserDao">
    <!-- select 中的id 属性 不能随便乱写,必须是你dao接口中的方法名 -->
    <!-- resultType 是把结果集封装在你的实体类 -->
    <select id="findAll" resultType="club.adger.entity.User">
    select * from user
  </select>
</mapper>

再写一个测试类
在这里插入图片描述

		//1.读取配置文件
        InputStream in = Resources.getResourceAsStream("mybatis.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂生产SqlSession对象
        SqlSession session = factory.openSession();
        //4.使用SqlSession创建Dao接口的代理对象
        UserDao userDao = session.getMapper(UserDao.class);
        //5.使用代理对象执行方法
        List<User> users = userDao.findAll();
        for(User user : users){
            System.out.println(user);
        }
        //6.释放资源
        session.close();
        in.close();

注意事项

ORM:
Object Relational Mappging 对象关系映射
简单的说:
就是把数据库表和实体类及实体类的属性对应起来
让我们可以操作实体类就实现操作数据库表。

	实体类中的属性和数据库表的字段名称保持一致。
		user					User
		id						id
		username				username

总结

    mybatis的环境搭建
第一个:创建UserDao.xml 和 UserDao.java时名称是为了,(个人习惯)保持一致。
在Mybatis中它把持久层的操作接口名称和映射文件也叫做:Mapper
所以:UserDao 和 UserMapper是一样的,叫法
第二个:mybatis的映射配置文件位置必须和dao接口的包结构相同
第三个:映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
第四个:映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名

	当我们遵从了第2,3,4点之后,我们在开发中就无须再写dao的实现类。
  1. 创建maven工程并导入座标
  2. 创建实体类和dao的接口
  3. 创建Mybatis的主配置文件 mybais.xml
  4. 创建映射配置文件 UserDao.xml
  5. 测试

扩展

在这里插入图片描述
这是一个模板,怎么搞呢,打开设置

File and Code Templates
/**
 * Created with IntelliJ IDEA.
 * @Auther: Adger
 * @Date: ${YEAR}/${MONTH}/${DAY}/${TIME}
 */

**@Auther 后面改名字,自己的名字,注意类名第一个字母大写,我这里随便写的,加油,奥里给,有兴趣可以加我QQ群一起交流讨论 793858121 **
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章