首页 > 技术文章 > java框架Mybatis的第一个程序

yunjie0930 2021-02-24 15:35 原文

1:什么是MyBatis

  • MyBatis 是一款优秀的持久层框架

  • MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程

  • MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类映射成数据库中的记录。

  • 简化了JDBC的操作  

Mybatis官方文档 : http://www.mybatis.org/mybatis-3/zh/index.html  多看官方文档  

介绍一下Mybatis的优点:简单 上手难度小 解耦合 使用人数多

开始我们第一个Mybatis程序需要准备什么环境搭建

1:jdk8或以上- maven- idea- mysql

开始我的的第一步 :先准备数据库数据

开始我们的第二步:maven项目里面导入mysql依赖(我使用的是8.0以上的mysql) :

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>

2:再导入mybatis依赖

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

3:第三步开始:编写MyBatis核心配置文件:(可以查看官方文档参考):

<configuration>
 <properties resource="db.properties">
 </properties>
    <typeAliases>
        <package name="com.kuang.jieko"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <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>
<mappers>
<mapper resource="com\kuang\day1\UserMapper.xml"></mapper>
</mappers>
        </configuration>

因为我这边使用了roperties 来从外部导入的资源文件

资源文件:因为我是mysql8.0所以加了时区 8.0一下把去掉即可

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/luyunjie?useSSL=false&useUnicode=false&characterEncoding=UTF-8&serverTimezone=UTC
username=root
password=5825600

配置实体类和接口:我这边使用的是lombok工具所以可以不用重新构造方法 set get方法 toString方法

import lombok.Data;
@Data
public class User {
    private int id;//这边的属性名字最好和数据库里面的数据名字一样
   private String name;
   private String pwd;

lombok工具:

 <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
        </dependency>

写一个工具类来简化操作:(因为看的狂神mybatis视频 所以工具类几乎一模一样 )

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;
public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //获取SqlSession连接
    public static SqlSession getSession(){
        return sqlSessionFactory.openSession();//这里可以填true 默认为false 这里可以设置自动提交事务
    }
}

然后写接口方法:

public interface UserMapper {
        //查询
    List<User> getUserList();
}

最好在写接口的包中再写Mapper.xml配置文件 来执行mysql语句:

<?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">
<!--绑定对应的Dom-- 后面这个namespace绑定接口的地址>
<mapper namespace="com.kuang.day1.UserMapper">
    <select id="getUserList" resultType="User">
  select * from user
 </select>
</mapper>

也可以使用注解来执行mysql语句:

public interface UserMapper {
    @Select("select *from user")
    List<User> getUserList();//但写不了复杂的sql语句
}

最后一步编写测试类:(我使用的是junit驱动 )

public class UserDaoTset {
    @Test
    public void test(){
        SqlSession sqlSession= MybatisUtils.getSession();
        UserMapper userDao=sqlSession.getMapper(UserMapper.class);
        List<User> userList =  userDao.getUserList();
    for (User user : userList){
        System.out.println(user);
    }
    sqlSession.close();
    }
}

junit驱动:

 <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

java小白刚学mybatis 有些写的不好的地方多多包涵!

推荐阅读