mybatis快速入门

mybatis是持久层的,它内部封装了jdbc,使得开发者只用关注sql本身


本篇文章主要说明了快速入门的方法

相应项目家电数据管理

目录

 

mybatis快速入门

一.  环境配置

二.  搭建MySQL数据库

三、实现Mybatis过程


 

一.  环境配置

1. 在我提供的项目中,导入这两个jar包,第一个是mybatis操作的jar包,第二个是数据库连接的架包

2. 导入好后,创建一个resources目录,在idea中将resources目录设置为资源目录

 

3. 在新创建的资源目录下,创建一个后缀名称为xml的mybatis配置文件,名称随意 mybatis-config.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">
  • 写入mybatis的配置
    <configuration>
        <!--配置环境命名随便 -->
        <environments default="mysql">
            <!--配置mysql环境-->
            <environment id="mysql">
                <!--配置事务类型-->
                <transactionManager type="JDBC"></transactionManager>
                <!--配置数据源-->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/english"/>
                    <property name="username" value="root"/>
                    <property name="password" value="ludashen"/>
                </dataSource>
            </environment>
        </environments>
      <mappers>
         <!--预留区,一会回来配置映射文件-->
     </mappers>
    </configuration>

4.  可以在资源目录下,创建多一个文件夹,里边,放每一个种操作的配置文件

二.  搭建MySQL数据库

1. 创建家具表

CREATE TABLE `furniture` (
  `furnitureId` int NOT NULL AUTO_INCREMENT,
  `furnitureName` varchar(200) DEFAULT NULL,
  `furnitureCount` int DEFAULT NULL,
  `furnitureSellCount` int DEFAULT NULL,
  `furniturePrice` int DEFAULT NULL,
  `describes` text,
  PRIMARY KEY (`furnitureId`)
) 

2. 创建用户表

CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `phone` varchar(20) NOT NULL,
  `address` varchar(200) DEFAULT NULL,
  `sex` tinyint(1) DEFAULT '0',
  PRIMARY KEY (`id`)
) 

3. 创建订单表

CREATE TABLE `other` (
  `otherId` int NOT NULL AUTO_INCREMENT,
  `otherCount` int NOT NULL DEFAULT '0',
  `userId` int NOT NULL,
  `furnitureId` int DEFAULT NULL,
  PRIMARY KEY (`otherId`,`otherCount`),
  KEY `fid` (`furnitureId`),
  KEY `uid` (`userId`),
  CONSTRAINT `fid` FOREIGN KEY (`furnitureId`) REFERENCES `furniture` (`furnitureId`),
  CONSTRAINT `uid` FOREIGN KEY (`userId`) REFERENCES `user` (`id`)
)

 

三、实现Mybatis过程

1. 在src目录下创建自己域名的包目录,最后有dao包,写数据操作方法接口的,model包,写实体类的,server写接口实现类的

2. 在model包写,三个实体类,成员变量分别对于MySQL 中表格的每个字段

  •  家电表
public class Furniture {
    private int furnitureId;
    private String furnitureName; // 家电名字
    private int furnitureCount; // 家电总数量
    private int furnitureSellCount; // 家电卖出数量
    private int furniturePrice; //家电价格
    private String describes; // 家电描述
}
  • 用户表
public class User {
    private int id; // 主键
    private String name;
    private String password;
    private String phone;
    private Boolean sex; // 0男, 1女
    private String address; // 0男, 1
}
  • 订单表
public class Other {
    private int otherId;
    private int otherCount;// 购买数量
    private User userId;//购买用户Id
    private Furniture furnitureId;// 购买物品IP
}

3. 接下来,为了是模块更加清晰,我们需要在资源目录下创建三个配置文件,这三个配置文件分别代码了,对数据库中,各自表的各种操作

接着创建3个相关接口,可以在接口前边加个I,方便区分,接口分别对应每个数据表的操作

4. 我举例furniture.xml文件的写法,其他类似;后边那两个可以自己举一反三进行模拟

  • 写入xml的约束头
<?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标签,之后,数据库的所有SQL操作都需要写在mapper标签里边
    • namespage的作用,主要是方便mybatis查找出相应的方法名称,并匹配相应的SQL语句,所有这里要指定对应的方法区即之前定义的接口
<mapper namespace="com.home.electric.dao.IFurniture">
 <!--SQL语句等配置预留区域-->
</mapper>

5. 在第三点mybatis配置文件预留区域哪里添加,第九点的映射文件路径

    <mappers>
        <mapper resource="dao/user.xml"/>
    </mappers>

6. 在server包写创建FurnitureServer 类继承 IFurniture接口

7. 实现查询全部内容方法,在IFurniture 接口中,定义 selectAll 方法,接着在实现类FurnitureServer 重写该方法

8. 接着可以在MySQL控制台或者其他软件上,写一个全部查询的SQL语句,如果能正确在SQL执行则可以复制过来了

SELECT * FROM `furniture`;

9. 之后在furniture.xml 中,上方第9点,SQL预留区,加入如下代码,完成查询操作

  • 每一个标签名称,代表要在数据库中执行什么操作,如select,则是执行查询操作
  • id代表着 mapper 标签作用域下,接口IFurniture里边的selectAll方法
  • resultType 代表了 selectAll 方法的返回值,如果是List列表,则代表List列表里边的泛型
  • 提示:这里的SQL语句结尾,可以加分号,也可以不加,但是如果用的一些分页插件的话,最好不加,不然分页插件会拼接数据库语句时会报错
<select id="selectAll" resultType="com.home.electric.model.Furniture">
   SELECT * FROM `furniture`;
</select>    

10.  到这里,可以实现一下,测试一下自己代码能不能查出数据了,先定义一个Utils 工具类,在里边写上一个静态的个对象共有的的方法,主要是负责,加载Mybatis的配置文件服务工厂的,之后的每个类都会通过它对数据库进行操作

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;

public class Utils {
    static SqlSessionFactory getSessionFactory() {
        SqlSessionFactory sessionFactory = null;
        try {
            sessionFactory = new SqlSessionFactoryBuilder().build(Resources
                    .getResourceAsReader("mybatis-config.xml"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sessionFactory;
    }

}

10. 最后在FurnitureServer类中,调用15的点的静态方法,实现出数据库的查询操作

import com.home.electric.dao.IFurniture;
import com.home.electric.model.Furniture;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class FurnitureServer {
    private SqlSession sqlSession = Utils.getSessionFactory().openSession();
    private IFurniture userMapper = sqlSession.getMapper(IFurniture.class);

    public List<Furniture> selectAllFurniture(){
        return userMapper.selectAll();
    }
}

11. 可以通过main方法打印出来看看Mybatis帮我们封装的数据

项目源码:家电数据管理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StarLightLu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值