Mybatis是什么?Mybatis入门程序

本文介绍了Java中的框架概念,如SSM(Spring+Mybatis+SpringMvc)以及框架的本质。重点讲解了Mybatis作为持久层框架相对于JDBC的优势,如动态SQL和对象映射。还详细阐述了Mybatis的入门步骤,包括创建数据库、配置Maven项目、引入依赖、配置核心XML文件以及编写测试用例进行数据插入操作。
摘要由CSDN通过智能技术生成

一、框架是什么?

1.java常见框架:   
        SSM三大框架:Spring+Mybatis+SpringMvc

2.什么是框架?
        框架本身就是对于通用代码的封装,提前写好的类和方法,我们在做项目的时候直接引入这些框架(本质就是引入类和接口),基于这些框架,简化我们的开发。框架一般都以jar包的形式存在。

3.mvc三层架构
        这里引用动力节点的一张图

 

表现层:它直接和前端打交道,一方面接收ajax请求,一方面返回json数据给前端。
业务逻辑层:它一方面处理表现层转发过来的请求,一方面将持久层处理的数据返回给表现层。
持久层:它直接和数据库打交道,就是完成crud操作的,并且将数据返回给业务逻辑层。
我们的mybatis就属于Java持久层框架。

二.JDBC有哪些不足/为什么开发中用Mybatis而不是JDBC?

1.sql语句写死在Java程序中,修改sql文件就要去修改java文件,这明显违背了开闭原则。
2.给占位符?传值操作是繁琐的,而Mybatis可以帮我们自动传值
3.JDBC将查询结果集封装成Java对象繁琐,Mybatis帮我们将结果集自动封装成对象。

三.Mybatis本质?

1.可以理解为Mybatis是升级版的JDBC,它本质上就是对JDBC的封装,使开发者只需要关注SQL语句,而不用关注JDBC的代码,使开发变得更加的简单。

2. MyBatis通过XML或者注解的方式将要执行的各种Statement对象配置起来,通过Java对象和statement中SQL的动态参数进行映射,并最终执行SQL语句。执行SQL后,最终将结果已Java对象返回。

3. 采用了半个ORM的思想。hibernate 完全的ORM思想

四.Mybatis入门程序

1.创建数据库和表结构

create database mybatis_demo;
use mybatis_demo;
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 (1,'老王','2018-02-27
17:47:08','男','北京'),(2,'熊大','2018-03-02 15:09:37','女','上海'),(3,'熊二','2018-03-04
11:34:34','女','深圳'),(4,'光头强','2018-03-04 12:04:06','男','广州');

2.创建Maven工程,创建java项目即可。

3.引入坐标

        3.1引入Mybatis的jar包 
        3.2引入MySQL驱动的jar包
        3.3引入Junit单元测试的jar包
        3.4引入log4j的jar包

<dependencies>
<!--mybatis核心包--> 
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!--mysql驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>

4.在rescources下新建mybatis-config.xml,这个是mybatis的核心配置文件
        这里mybatis-config.xml名字不是必须的,但是最好遵循规范。
        这里创建在rescources目录下,表示mybatis-config.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">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--这里写自己的数据库连接信息-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/powernode"/>
                <property name="username" value="root"/>
                <property name="password" value="2020"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--sql映射文件创建好之后,需要将该文件路径配置到这里-->
        <mapper resource=""/>
    </mappers>
</configuration>

5.在rescources下新建CarMapper.xml文件,这里写我们的sql语句
        这里sql语句结尾可以不写";" 
        CarMapper.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">
<!--namespace先随意写一个-->
<mapper namespace="car">
    <!--insert sql:保存一个汽车信息-->
    <insert id="insertCar">
        insert into t_car
            (id,car_num,brand,guide_price,produce_time,car_type) 
        values
            (null,'102','丰田mirai',40.30,'2014-10-05','氢能源')
    </insert>
</mapper>

6.将CarMapper.xml文件路径配置到mybatis-config.xml文件中
        <mapper resource="CarMapper.xml"/>

7.编写测试文件
 

public class MyBatisIntroductionTest {
    public static void main(String[] args) {
        // 1. 创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        // 2. 创建SqlSessionFactory对象
        InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
        // 3. 创建SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 4. 执行sql
        int count = sqlSession.insert("insertCar"); // 这个"insertCar"必须是sql的id
        System.out.println("插入几条数据:" + count);
        // 5. 提交(mybatis默认采用的事务管理器是JDBC,默认是不提交的,需要手动提交。)
        sqlSession.commit();
        // 6. 关闭资源(只关闭是不会提交的)
        sqlSession.close();
    }
}

运行即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值