美文网首页
2、第一个MyBatis程序

2、第一个MyBatis程序

作者: 徒手說梦话 | 来源:发表于2020-02-09 22:05 被阅读0次

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

2.1、搭建实验数据库

CREATE DATABASE `mybatis`;

USE `mybatis`;

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` int(20) NOT NULL,
  `name` varchar(30) DEFAULT NULL,
  `pwd` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert  into `user`(`id`,`name`,`pwd`) values (1,'狂神','123456'),(2,'张三','abcdef'),(3,'李四','987654');

engine=innodb和engine=myisam区别:

1、myisam,默认类型。是存储记录和文件的标准类型,支持全文搜索,可以被压缩,与其他引擎相比,有检查和修复表格的大部分工具,不支持事务,不支持外键。强调的是性能,执行速度比较快,可以在不同的系统中迁移。如果执行大量 的SELECT,MyISAM是更好的选择。

2、innodb,支持事务处理等高级处理,支持外键,如果执行大量的select和update语句,出于性能考虑,使用innodb是最好的选择。


2.2、创建一个模块

  • 当前目录下的Mybatis-Study创建一个model-maven普通文件mybatis-01

  • 在resources文件下创建mybatis-config.xml

image-20200131100107659.png
  • 编写mybatis的核心配置文件

  • mapper配置实现Dao接口的xml,如果找不到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核心配置文件-->
    <configuration>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <!--mysql8 是com.mysql.cj.jdbc.Driver-->
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <!--mysql5.7.28,加入useSSl=true&amp;,导致链接失败-->
                    <!--MySQL8里还需要配置时区-->
                    <!--useSSL安全链接;useUnicode=true&amp;characterEncoding=UTF-8" 不添加这两句数据库写入数据将为问号-->
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="/UserMapper/userMapper.xml"/>
        </mappers>
    </configuration>
    
  • 编写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 Util{
        private static SqlSessionFactory sqlSessionFactory;
        // 根据mybatis-config的路径填写,默认路径是resorce里面
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    
      // 根据官方文档Acquiring a SqlSession from SqlSessionFactory 所以需要获取SqlSession
        public static SqlSession getSession(){
             return sqlSessionFactory.openSession();
        }
    }
    
  • 编写pojo(model)模块
public class User {
    
    private int id;  //id
    private String name;   //姓名
    private String pwd;   //密码
    
    //构造,有参,无参
    //set/get
    //toString()
    
}
  • 编写Dao层模块(Mapper)

    • 定义一个UserMapper接口
    import com.kuang.pojo.User;
    import java.util.List;
    
    public interface UserMapper {
        List<User> selectUser();
    }
    
    • 通过xml实现UserMapper接口
    <?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代表要实现的接口
    // id代表实现接口的方法
    // resultType代表sql语句返回值的类型,通常使用两种resultType、resultMap
    <mapper namespace="com.kuang.dao.UserMapper">
      <select id="selectUser" resultType="com.kuang.model.User">
        select * from mybatis.user
      </select>
    </mapper>
    
  • 编写测试类

    public class MyTest {
        @Test
        public void selectUser() {
            SqlSession session = MybatisUtils.getSession();
            //方法一:
            //List<User> users = session.selectList("com.kuang.mapper.UserMapper.selectUser");
            //方法二:
            // getMapper获取Dao层接口
            UserMapper mapper = session.getMapper(UserDao.class);
            List<User> users = mapper.selectUser();
    
            for (User user: users){
                System.out.println(user);
            }
            session.close();
        }
    }
    

相关文章

  • MyBatis记错本

    1.第一个简单的MyBatis程序 1.personMapper.xmlimage.png 2.config.xm...

  • MyBatis架构与基本配置

    【目录】1 MyBatis架构2 MyBatis基本配置3 搭建第一个MyBatis项目 1 MyBatis架构 ...

  • 新手如何快速简单自定义MyBatis框架

    MyBatis入门到自定义MyBatis框架 第一个 MyBatis 程序(XML配置) 在上一篇中,简单总结了一...

  • MyBatis之简介

    一、简介 目录:什么是MyBatis、持久化和持久层、第一个MyBatis程序 1.什么是MyBatis? 1)M...

  • Mybatis学习总结

    1、第一个Mybatis程序 思路:搭建环境->导入Mybatis->编写代码->测试 1.1搭建环境 搭建数据库...

  • 2、第一个MyBatis程序

    思路流程:搭建环境-->导入Mybatis--->编写代码--->测试 2.1、搭建实验数据库 engine=in...

  • 初识MyBatis

    MyBatis学习笔记(一) 1、什么是MyBatis2、安装3、第一个mybatis实例 前言 1、ORM:Ob...

  • MyBatis入门

    1、MyBatis 是优秀的持久层框架2、MyBatis 使用 XML 将 SQL 与程序解耦,便于维护3、MyB...

  • Mybatis----(1)

    主要内容1、对原生态jdbc程序(单独使用jdbc开发)问题总结2、mybatis框架原理3、mybatis入门程...

  • Mybatis的入门

    一.Mybatis介绍 二.Mybatis的架构 三.Mybatis入门程序开发 下载mybatis 导包核心+依...

网友评论

      本文标题:2、第一个MyBatis程序

      本文链接:https://www.haomeiwen.com/subject/qnrnxhtx.html