Mybatis--01

今天开始SSM框架的学习,首先我们先来了解下到底什么是框架。

  • 什么是框架:

    它是我们软件开发过程中的一套解决方案,不同的框架解决不同的问题。

  • 使用框架的好处:

    框架封装了很多的细节,使开发者可以使用极简的方式实现功能。大大提高开发效率。

其中三层架构就是一种典型的架构

  • 表现层:对应的有SpringMVC框架
  • 业务层: Spring
  • 持久层:和数据库进行交互的,对用的有Mybatis框架

与数据库交互的传统技术就是JDBC,但JDBC太过于步骤过于繁琐且具有大量重复性的代码,我们曾经使用过一些工具类对它就行简单的封装。

  • 比如Apache的DBUtils

    但它也仅仅是简单的封装,是一种工具类,算不上框架。

1.Mybatis的概述

在这里插入图片描述
ORM(Object Relational Mapping)对象关系映射。简单地说,就是把数据库表和实体类及实体类的属性对应起来,让我们可以通过操作实体类来操作数据库表。

2.Mybatis的环境搭建

  • 2.1建立数据库和表

Mybatis框架是和数据库进行交互的,我们先创建数据库和表方便一会进行测试。

-- 创建数据库
CREATE DATABASE IF NOT EXISTS db_mybatis CHARACTER SET utf8;
-- 创建数据表
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`(`id`,`username`,`birthday`,`sex`,`address`) values (41,'老王','2018-02-27 17:47:08','男','北京'),(42,'小二王','2018-03-02 15:09:37','女','北京金燕龙'),(43,'小二王','2018-03-04 11:34:34','女','北京金燕龙'),(45,'传智播客','2018-03-04 12:04:06','男','北京金燕龙'),(46,'老王','2018-03-07 17:37:26','男','北京'),(48,'小马宝莉','2018-03-08 11:44:00','女','北京修正');

  • 2.2创建Maven工程,导入Mybatis的所需依赖(pom.xml)。
<dependencies>
		<!-- Mybatis所需要的jar包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <!-- 连接数据库所需要的jar包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.26</version>
        </dependency>
        <!-- 进行单元测试所需要的jar包,这里可以徐泽不导入 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>
  • 2.3编写User实体类 (实体类的属性要和数据中的列名保持一致)
/**
 * 用户实体类
 */
public class User implements Serializable {
   
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;
    //以下get和set、toString方法还需自己添加上,这里不过多叙述,自动生成即可
  • 2.4编写持久层接口IUserDao
/**
 * 持久层的接口
 */
public interface IUserDao {
   
    /**
     * 查找所有的用户
     */
    List<User> findAllUser();
}
  • 2.5 编写持久层接口的映射文件IUserDao.xml

创建位置:必须和持久层接口在相同的包中
名称:必须以持久层接口命名文件名,扩展名为.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.zut.dao.IUserDao">
    <!-- 配置查询所有 -->
    <!-- 这里的id必须和接口中的方法名一致 -->
    <select id="findAllUser" resultType="com.zut.damain.User">
        select * from user
    </select>
</mapper>
  • 2.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">
<!-- Mybatis的主配置文件 -->
<configuration>
   <!-- 配置环境 -->
   <environments default="mysql">
       <!-- 配置mysql的环境 -->
       <environment id="mysql">
           <!-- 配置事务的类型 -->
           <transactionManager type="JDBC"></transactionManager>
           <!-- 配置数据源(连接池) -->
           <dataSource type="POOLED">
               <!-- 配置连接数据库的基本信息 -->
               <property name="driver" value="com.mysql.jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://localhost:3306/db_mybatis"/>
               <property name="username" value="root"/>
               <property name="password" value="ljt074517"/>
           </dataSource>
       </environment>
   </environments>

   <!-- 一些注意事项:
        1.mybatis的映射配置文件必须和dao接口的包结构相同
   		2.映射配置文件的mapper标签的namespace属性的取值必须是dao接口的全限定类名
        3.映射配置文件的操作配置,id的属性取值必须是dao接口的方法名
   -->

   <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
   <mappers>
       <mapper resource="com/zut/dao/IUserDao.xml"></mapper>
   </mappers>
</configuration>
  • 2.7编写测试类
/**
 * mybatis入门案例
 */
public class MybatisTest {
   
    public static void main(String[] args) throws Exception {
   
        //1.读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂生产SqlSession对象
        SqlSession session = factory.openSession();
        //4.使用SqlSession创建Dao接口的代理对象
        IUserDao iUserDao = session.getMapper(IUserDao.class);
        //5.使用代理对象执行方法
        List<User> us
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值