mybatis初始

 MyBatis简介

1: MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架
2: MyBatis 避免了几乎所有    的 JDBC 代码和手动设置参数以及获取结果集
3:MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录
4:Mybatis 是一个 半自动的ORM(Object   Relation  Mapping)框架

 

如何下载MyBatis

1:下载网址

https://github.com/mybatis/mybatis-3/

 

2:github

 

 

 

 

 

 

 

 

 

大家可以考虑下为什么要使用mybatis?

为什么要使用MyBatis? 与现有持久化技术的对比

 

1: JDBC
        a:SQL夹在Java代码块中,耦合度高导致硬编码内伤
        b:维护不易,且实际开发需求中有SQL变化,频繁修复的情况多见
        c:部署不易,如果配置和sql都在java代码中,如果要修改配置或者sql不易


2:Hibernate和JPA
        ①长难复杂SQL,对于Hibernate而言处理也不容易
        ②内部自动生产的SQL,不容易做特殊优化
        ③基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。导致数据库性能下降    

3: MyBatis
    
        ①对开发人员而言,核心sql还是需要自己优化
        ②sql和java编码分开,功能边界清晰,一个专注业务、一个专注数据
        ③:如果是实施部署的情况下,我们的配置都在xml中,而不是在java代码中,那么有利于实施人员部署代码


也就是使用mybatis会将sql和java代码分开,那样功能界面更清晰,各司其职

 

 

MyBatis HelloWorld

 

mybatis的搭建过程

mybatis搭建过程:
1、导入jar
2、创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置
3、创建映射文件XxxMapper.xml,并配置
4、创建mapper接口,实现两个绑定:
    (1)接口全限定名要和映射文件的namespace保持一致
    (2)接口中方法名和SQL语句的id保持一致
5、获取mybatis操作数据库的会话对象SqlSession,通过getMapper()获取接口的动态代理实现类
6、测试

 

 

1 开发环境的准备(导入所需第三方jar包)

1) 导入MyBatis框架的jar包、Mysql驱动包、log4jjar

 

myBatis-3.4.1.jar
mysql-connector-java-5.1.37-bin.jar
log4j.jar

 

2) 导入log4j 的配置文件

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <param name="Encoding" value="UTF-8"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n"/>
        </layout>
    </appender>
    <logger name="java.sql">
        <level value="debug"/>
    </logger>
    <logger name="org.apache.ibatis">
        <level value="info"/>
    </logger>
    <root>
        <level value="debug"/>
        <appender-ref ref="STDOUT"/>
    </root>
</log4j:configuration>
log4j.xml

 

 

2:创建所需的数据库和表:(如果已经有了表和数据库就忽略)

--创建t_mybatis库

     create database test_mybatis;

-- 创建user表
CREATE TABLE USER (
    id INT ( 11 ) PRIMARY KEY auto_increment,
    user_name VARCHAR ( 32 ),
    email VARCHAR ( 32 ),
gender CHAR ( 1 ) 
)

insert into user(id,user_name,email,gender) VALUES(null,"老王","1425252@163.com",1)
创建数据库和表

 

 

3:创建MyBatis的全局配置文件

1: 如果是使用maven建立的项目可以直接添加项目依赖

 

<dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>x.x.x</version>
</dependency>

 

 

 

 

 

2: 如果是非maven的项目可以添加mybatis-config.xml 

 参考MyBatis的官网手册

 

 

<?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">  <!--  environments 连接数据库的环境  default代表你使用的数据库  与下面的id相对应-->
        <environment id="development"><!--environment 指设置某个具体的数据库环境  id数据库的唯一标识-->
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc://mysql://localhost:3306"/ssm>
                <property name="username" value="zhao"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>
简易的mybatis-config.xml

 

 

4: 创建Mybatis的sql映射文件

参考MyBatis的官方手册

<?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="org.mybatis.example.BlogMapper">
    <select id="selectBlog" resultType="Blog">
 select * from Blog where id = #{id}
 </select>
</mapper>
mybtis的映射文件XxxMapper.xm

 

 

 

 

 

 

 

1: mvn  clean  清除编译的target 环境配置

 

 

 

 

 

 

 

.

posted @ 2020-11-17 18:12  可爱的红领巾  阅读(99)  评论(0编辑  收藏  举报