JavaEE(Mybatis)—— 环境搭配、数据库连接、程序运行

文章介绍了Mybatis的主要特点,包括其简单易学、灵活且不干扰现有设计、支持SQL与代码分离等。然后,通过创建数据库、新建项目、导入Mybatis依赖、编写配置文件和相关代码,展示了如何搭建一个基本的Mybatis环境并编写第一个Mybatis程序,包括实体类、Mapper接口和XML映射文件的实现。
摘要由CSDN通过智能技术生成

Mybatis

Mybatis 特点

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个 jar 文件+配置几个 sql 映射文件。易于学习,易于使用。通过文档和源代码,可以比较完全的掌握它的设计思路和实现

  • 灵活:mybatis 不会对应用程序或者数据库的现有设计强加任何影响。 sql 写在 xml 里,便于统一管理和优化。通过 sql 语句可以满足操作数据库的所有需求

  • 解除 sql 与程序代码的耦合:通过提供 DAO 层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql 和代码的分离,提高了可维护性

  • 提供映射标签,支持对象与数据库的 ORM 字段关系映射

  • 提供对象关系映射标签,支持对象关系组建维护

  • 提供 xml 标签,支持编写动态 sql

第一个 Mybatis 程序

思路:搭建环境->导入 Mybatis->编写代码->测试

搭建环境

  • 搭建数据库

-- 创建数据库mybatiscreate database `mybatis`;-- 使用mybatis数据库use mybatis;-- 查看正在使用的数据库select database();
-- 创建表create table user(    id   int(20) not null primary key,    name varchar(30) default null,    pwd  varchar(30) default null) engine = innodb  default charset = utf8;# ENGINE=InnoDB  数据库存储引擎# DEFAULT 默认# CHARSET=utf8 数据库字符编码
-- 插入数据insert into user(id, name, pwd)VALUES (1, '魏硕', '123'),       (2, '李顺', '456'),       (3, '杜宫利男', '789'),       (4, '吕宗昂', '741')

  • 新建项目

<!--    导入依赖-->    <dependencies><!--        mysql驱动-->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.46</version>        </dependency><!--        mybatis-->        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>3.5.2</version>        </dependency><!--        junit-->        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>        </dependency>    </dependencies>

<!--    在build中配置resources,来预防我们资源导出失败的问题-->    <build>        <resources>            <resource>                <directory>src/main/resources</directory>                <includes>                    <include>**/*.properties</include>                    <include>**/*.xml</include>                </includes>                <filtering>true</filtering>            </resource>            <resource>                <directory>src/main/java</directory>                <includes>                    <include>**/*.properties</include>                    <include>**/*.xml</include>                </includes>                <filtering>true</filtering>            </resource>        </resources>    </build>

导入 Mybatis(创建一个模板)

创建模板

  • 编写 mybatis 的核心配置文件

  • 以下配置均在 mybatis 中文网中

入门_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核心配置文件--><configuration>
    <!--环境配置-->    <environments default="development">
        <environment id="development">            <!--事物管理-->            <transactionManager type="JDBC"/>            <dataSource type="POOLED">                <property name="driver" value="${driver}"/>                <property name="url" value="${url}"/>                <property name="username" value="${username}"/>                <property name="password" value="${password}"/>            </dataSource>        </environment>    </environments>
</configuration>

  • 编写 mybatis 工具类

package com.wei.utils;
import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;import java.io.InputStream;
//sqlSessionFactory  构造  sqlSessionpublic class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;   //将SqlSessionFactory调用成全局变量    static {        try {            //使用Mybatis第一步:获取sqlSessionFactory对象            String resource = "mybatis-config.xml";            InputStream inputStream = Resources.getResourceAsStream(resource);            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        } catch (IOException e) {            e.printStackTrace();        }    }
    //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。    //SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。    //你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句    public static SqlSession getSqlSession(){        return sqlSessionFactory.openSession();    }}

编写代码

  • 实体列

package com.wei.pojo;
//实体列public class User {    private int id;    private String name;    private String pwd;
    public User() {    }
    public User(int id, String name, String pwd) {        this.id = id;        this.name = name;        this.pwd = pwd;    }
    public int getId() {        return id;    }
    public void setId(int id) {        this.id = id;    }
    public String getName() {        return name;    }
    public void setName(String name) {        this.name = name;    }
    public String getPwd() {        return pwd;    }
    public void setPwd(String pwd) {        this.pwd = pwd;    }
    @Override    public String toString() {        return "User{" +                "id=" + id +                ", name='" + name + '\'' +                ", pwd='" + pwd + '\'' +                '}';    }}

  • Dao 接口

package com.wei.dao;
import com.wei.pojo.User;
import java.util.List;
public interface UserDao {    List<User> getUserList();}

  • 接口实现类

  • 由原来的 UserDaoImpl 转变为一个 Mapper 配置文件

<?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接口--><mapper namespace="com.wei.dao.UserDao"><!--select查询语句-->    <select id="getUserList" resultType="com.wei.pojo.User">        select * from mybatis.user;    </select></mapper>

测试

  • 运行测试包 test 下的 com.wei.dao 包下的 UserDaoTest 类

package com.wei.dao;
import com.wei.pojo.User;import com.wei.utils.MybatisUtils;import org.apache.ibatis.session.SqlSession;import org.junit.Test;
import java.util.List;
public class UserDaoTest {    @Test    public void test(){        //第一步,获取SqlSession对象        SqlSession sqlSession = MybatisUtils.getSqlSession();
        try {
            //方式一:getMapper            UserDao userDao = sqlSession.getMapper(UserDao.class);            List<User> userList = userDao.getUserList();
            //方式二://        List<User> userLists = sqlSession.selectList("com.wei.dao.UserDao.getUserList");
            for(User user: userList){                System.out.println(user);            }
        }catch (Exception e){            e.printStackTrace();        }finally {            //关闭SqlSession,避免造成内存出现问题            sqlSession.close();        }

    }}

  • 编写工具类 MybatisUtils 以及工具类需要配置文件

  • resources 中编写配置文件 mybatis.config.xml;

  • 环境准备编写实体类 pojo

  • 编写接口 dao,编写 UserMappper.xml

  • 最后测试,是否连接成功数据库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值