mybatis四天学习--第一天

1.什么是框架?

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

使用框架的好处:

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

2.三层架构

表现层:用于展示数据的

业务层:处理业务需求

持久层: 和数据库交互

3. 持久层技术解决方案

JDBC技术:Connection PreparedStatement ResultSet

Spring 的 JdbcTemplate:Spring中对jdbc的简单封装

Apache的DBUtils: 它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装

以上这些都不是框架,JDBC是规范,Spring的JdbcTemplate和Apache的DBUtils都只是工具类

mybaits是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需关注sql语句本身,

而不需要花费时间精力去处理加载驱动、创建连接、创建statement等复杂的过程。

mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并且返回。

4.mybatis的概述

mybatis是一个持久层框架,用java编写的。

它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身

它使用了ORM思想实现了结果集的封装。

ORM:

Object Relational Mapping 对象关系映射

简单的说:

就是把数据库表和实体类以及实体类的属性对应起来,让我们通过操作实体类就实现操作数据库表。

user   User

id    userId

user_name  userName

今天我们需要做到

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

user   user

id  id

user_name user_name

5. mybatis的入门

mybatis的环境搭建

   第一步:创建maven工程并导入坐标

   第二步:创建实体类和dao的接口

   第三步:创建Mybatis的主配置文件

                        SqlMapConfig.xml

   第四步:创建映射配置文件

                        IUserDao.xml

   环境搭建的注意事项:

第一个:创建IUserDao.xml和IUserDao.java时名称是为了和我们之前的知识保持一致。

                在Mybatis中它把持久层的操作接口名称和映射文件也叫做: Mapper

                所以:IUserDao 和 IUserMapper是一样的

第二个:在idea中创建目录的时候,它和包是不一样的

                包在创建时:com.itheima.dao它是三级结构

                目录在创建时:com.itheima.dao它是一级结构

第三个:mybatis的映射配置文件位置必须和dao接口的包结构相同

第四个:映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名

第五个:映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名

当我们遵从了第三、四、五点之后,我们在开发中无需再写dao的实现类。

mybatis入门案例

第一步:读取配置文件

第二步:创建SqlSessionFactory工厂

第三步:创建SqlSession

第四步:创建Dao接口的代理对象

第五步:执行dao中的方法

第六步:释放资源

注意事项:记得在映射配置文件中告知mybatis要封装到哪个实体类中

配置的方式;指定实体类的全限定类名

mybatis基于注解的入门案例:

把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句

同时需要在SqlMapConfig.xml中的mapper配置时,使用class属性指定dao接口的全限定类名

明确:

  我们在开发中,都是越简单越好,所以都是采用不写dao实现类的方式。

不管使用XML还是注解配置

但是Mybatis它是支持写dao实现类的。

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 userDao = session.getMapper(IUserDao.class);

// 5.使用代理对象执行方法

List<User> users = userDao.findAll();

for(User user: users){

  System.out.println(user);

}

// 6.释放资源

session.close();

in.close();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值