Mybatis -> 创建第一个项目,连接数据库,select数据

步骤:
1.导包jar
2.创建mybatis配置类,配置类中的第一步就是连接配置文件xml,所以第三步写配置文件
3.数据库的配置文件,连接数据库,会在第二步的配置类中加载他
4.创建一个对应数据库的java类,类中的属性对应着数据库中的字段
5.操作数据库的接口和实现类(这里的实现类用xml方式实现了,结果都是要在实现类中写sql语句,操作数据库的)
6.完成

mybatis官网有入门的简介
https://mybatis.org/mybatis-3/zh/getting-started.html

1.maven导入jar包,mybatis,mysql,junilt–配置完以后都不会变

        <!--mybatis包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--mysql包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.8</version>
        </dependency>
        <!--junit包-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

2.创建mybatis配置类,配置类中的第一步就是连接配置文件xml,所以第三步写配置文件

package com.rod;

import com.dao.UserI;
import com.mysqlclass.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;
import java.util.List;

/**
 * 功能描述:
 */
public class Mybatisconfig {
  public void getSqlSession() {
    try {
      //获取连接数据库配置文件的位置信息
      String resource = "mybatis-config.xml";
      //读取配置文件中的数据库中的数据,将类路径上的资源作为流对象返回
      InputStream inputStream = Resources.getResourceAsStream(resource);
      //这里官网说最好不要多次创建sqslsession,使用单例模式,我用了方法创建,第一次用有点错误,应该使用静态的方式创建的
      SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      //通过工厂创建session,session用来获取读取数据库类的实例,getmapper
      try (SqlSession session = sqlSessionFactory.openSession()) {
        UserI mapper = session.getMapper(UserI.class);
        //获取实例以后调用方法,输出数据库数据
        List<Mybatis> mybatis = mapper.mybatisList();
        for (Object obj : mybatis) {
          System.out.println(obj);
        }
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

3.数据库的配置文件,连接数据库,会在第二步的配置类中加载他

<?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>
    <!--development:表示可以连接多个数据库,这里的名字代表一个数据库-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--
        注册useri.xml;所有用来从数据库获取数据的
        实现接口的xml都需要在连接数据库这里注册,这些xml相当于实现类
        都是用来操作数据库中的数据的,sql语句都写在这些xml里面
        -->
        <mapper resource="com/dao/UserI.xml"/>
    </mappers>
</configuration>

4.创建一个对应数据库的java类,类中的属性对应着数据库中的字段

package com.mysqlclass;

/**
 * 功能描述:
 */
public class Mybatis {
  private int id;
  private String idname;
  private int psw;

  public Mybatis(int id, String idname, int psw) {
    this.id = id;
    this.idname = idname;
    this.psw = psw;
  }

  public Mybatis() {
  }

  public void setId(int id) {
    this.id = id;
  }

  public void setIdname(String idname) {
    this.idname = idname;
  }

  public void setPsw(int psw) {
    this.psw = psw;
  }

  public int getId() {
    return id;
  }

  public String getIdname() {
    return idname;
  }

  public int getPsw() {
    return psw;
  }

  @Override
  public String toString() {
    return "Mybatis{" +
            "id=" + id +
            ", idname='" + idname + '\'' +
            ", psw=" + psw +
            '}';
  }
}

5.操作数据库的接口和实现类(这里的实现类用xml方式实现了,结果都是要在实现类中写sql语句,操作数据库的)

package com.dao;

import com.mysqlclass.Mybatis;

import java.util.List;

/**
 * 功能描述: mapper接口
 */
public interface UserI {
  List<Mybatis> mybatisList();
}

<?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是需要绑定到对应的接口
本来应该是实现接口的类中写sql语句,获取数据库中的数据的
现在使用xml文件了.所以要给个名字,相当于implements 接口
只不过变成了namespace="接口全路径"
-->
<mapper namespace="com.dao.UserI">
    <!--
    这里是id就是调用接口的方法,实现类实现接口还行要重写方法的,这里用id表示方法
    resulttype:就是返回类型,方法中select了数据库的所有数据,要再在控制台输出,
    就需要有一个对应着数据库的类,去接受这些查询到的数据,所以result就是要接受数据库数据的类的全路径
    -->
    <select id="mybatisList" resultType="com.mysqlclass.Mybatis">
        select * from mybatis.mybatis_1
  </select>
</mapper>

6.test,测试一下,结果是什么

package com;

import com.rod.Mybatisconfig;
import org.junit.Test;

/**
 * 功能描述:
 */
public class MybatisTest {
  @Test
  public void test(){
    //直接new一个创建mybatis工厂的类,因为里面已经操作完了所有数据,直接调用方法就可以
    new Mybatisconfig().getSqlSession();
  }
}

结果:

Mybatis{id=1, idname='a', psw=1}
Mybatis{id=2, idname='b', psw=2}
Mybatis{id=3, idname='c', psw=3}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程简介:历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。 其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,Debug还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程! 核心技术栈列表: 值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、MybatisMybatis-Plus、Shiro(身份认证与资源授权跟会话等等)、Spring AOP、防止XSS攻击、防止SQL注入攻击、过滤器Filter、验证码Kaptcha、热部署插件Devtools、POI、Vue、LayUI、ElementUI、JQuery、HTML、Bootstrap、Freemarker、一键打包部署运行工具Wagon等等,如下图所示: 课程内容与收益: 总的来说,本课程是一门具有很强实践性质的“项目实战”课程,即“企业应用员工角色权限管理平台”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于Shiro的资源授权实现员工-角色-操作权限、员工-角色-数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图: 以下为项目整体的运行效果截图: 值得一提的是,在本课程中,Debug也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值