商品的类别

一、步骤

1.引入相关依赖pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zjd</groupId><artifactId>Part4</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes></resource></resources></build></project>

2.导入数据库数据

1、新建数据库mybatis

CREATE DATABASE mybatis;

2、在mybatis数据库下创建表product

create table product(id int primary key auto_increment,goodsname varchar(20) not null ,price int not null ,typeid int not null
);

3、在product表中插入数据

insert into product(id, goodsname, price, typeid) VALUES
(1,'电视机',5000,1),
(2,'冰箱',4000,2),
(3,'空调',3000,2),
(4,'洗衣机',2000,4);

4、在mybatis数据库下创建表category

create table category(id int primary key auto_increment,typename varchar(20) not null
);

5、在category表中插入数据

insert into category(id, typename) VALUES
(1,'黑色电视'),
(2,'白色电视');

3.创建连接数据库配置文件db.properties

# MySQL的版本在8.0之下的,
mysql.driver=com.mysql.jdbc.Driver
# MySQL的版本在8.0之上的,
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=root

4.创建myBatis的核心配置文件mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="db.properties"/><settings><setting name="cacheEnabled" value="true"/><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"/></settings><typeAliases><package name="com.zjd.pojo"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${mysql.driver}"/><property name="url" value="${mysql.url}"/><property name="username" value="${mysql.username}"/><property name="password" value="${mysql.password}"/></dataSource></environment></environments><mappers><mapper resource="com/zjd/mapper/CategoryMapper.xml"/></mappers>
</configuration>

5.创建product的实体类Product.java

package com.zjd.pojo;public class Product {private int id;private String goodsname;private int price;private int typeid;@Overridepublic String toString() {return "Product{" +"id=" + id +", goodsname='" + goodsname + '\'' +", price=" + price +", typeid=" + typeid +'}';}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getGoodsname() {return goodsname;}public void setGoodsname(String goodsname) {this.goodsname = goodsname;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public int getTypeid() {return typeid;}public void setTypeid(int typeid) {this.typeid = typeid;}
}

6.创建category的实体类Category.java

package com.zjd.pojo;import java.util.List;public class Category {private int id;private String typename;private List<Product> product;@Overridepublic String toString() {return "Category{" +"id=" + id +", typename='" + typename + '\'' +", product=" + product +'}';}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getTypename() {return typename;}public void setTypename(String typename) {this.typename = typename;}public List<Product> getProduct() {return product;}public void setProduct(List<Product> product) {this.product = product;}
}

7.创建Category.java的映射文件CategoryMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zjd.pojo.Category"><select id="findProductWithCategory" parameterType="Integer"resultMap="ProductWithCategoryResult">SELECT c.*,p.id as typeid,p.goodsname,p.pricefrom category c,product pWHERE c.id=p.typeidand c.id=#{id}</select><resultMap type="com.zjd.pojo.Category"id="ProductWithCategoryResult"><id property="id" column="id"/><result property="typename" column="typename"/><collection property="product" ofType="com.zjd.pojo.Product"><id property="id" column="typeid"/><result property="goodsname" column="goodsname"/><result property="price" column="price"/></collection></resultMap>
</mapper>

8.将映射文件加载到mybatis-config.xml中

<!--  上图我已加载过  --><mappers><mapper resource="com/zjd/mapper/CategoryMapper.xml"/></mappers>

9.创建MyBatis的工具类MyBatisUtils.java

package com.zjd.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.Reader;public class MyBatisUtils {public static SqlSessionFactory sqlSession=null;static {try {Reader reader= Resources.getResourceAsReader("mybatis-config.xml");sqlSession=new SqlSessionFactoryBuilder().build(reader);}catch (IOException e){e.printStackTrace();}}public static SqlSession getSession(){return sqlSession.openSession();}
}

9.创建测试类CategoryTest.java测试运行

package Test;import com.zjd.pojo.Category;
import com.zjd.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;public class CategoryTest {SqlSession session=null;@Beforepublic void Before(){session= MyBatisUtils.getSession();}@Testpublic void findProductWithCategory(){Category category=session.selectOne("com.zjd.pojo.Category.findProductWithCategory",2);System.out.println(category);}@Afterpublic void After(){session.commit();session.close();}
}

二、项目结构


注意:这个项目文件里,除了我们上述的这类文件之外,还有一个log4j.properties文件,这个文件是方便大家查看sql语句运行的情况,下面是它的配置代码(配置时,需要现在pom.xml文件中引入jar包)

1、引入jar包:

<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>

2、配置代码:

#全局日志配置
log4j.rootLogger=DEBUG,Console
#控制台输出配置
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#日志输出级别
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

三、本次完成案例:商品的类别

通过MyBatis查询商品类别为白色家电的商品的所有信息

四、重要讯息!!!!!

各位小伙伴有疑问可以私聊我,我会在每周日统一查看回复

路过的小伙伴,该篇文章如果对你有帮助,请留下你的小手(

Mr.张小白(案例:商品的类别的MyBatis的实现)相关推荐

  1. Mr.张小白(案例:基于Spring MVC实现后台登陆系统验证)

    基于Spring MVC实现后台登陆系统验证 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8&qu ...

  2. Mr.张小白(案例:学生信息查询系统的MyBatis的实现)

    学生信息查询系统 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...

  3. Mr.张小白(案例:基于MyBatis注解的学生管理程序的实现)

    基于MyBatis注解的 学生信息查询系统 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8&quo ...

  4. 【自我介绍】------Mr.张小白(案例:员工管理系统的MyBatis的实现)

    @自我介绍 欢迎各位来看我的这篇文章 你好! 这是我第一次使用发表文章.操作的还不太熟练,在接下来的日子里,希望我能够和CSDN这个大家庭一起成长,一起进步. 新的改变(IDEA使用) 我现在是一名在 ...

  5. Mr.张小白(案例:基于Spring MVC实现文件上传和下载)

    基于Spring MVC实现文件上传和下载 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8&quo ...

  6. Mr.张小白【免安装版MySQL的相关配置】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.MySQL是什么? 二.配置步骤 1.以管理员身份打开cmd(命令行) 2.进入MySQL的bin目录 3.安装M ...

  7. 【通知】Mr.张小白

    通知!!!通知!!!通知!!! 重要的事情说三遍 一.本周由于要准备期末考试,暂缓更新,我将会在考试周结束后进行新一轮的更新,不好意思撒o,0' 下周我将要更新的内容是<图书馆管理系统>有 ...

  8. java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...

    0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...

  9. 张小白的渗透之路(二)——SQL注入漏洞原理详解

    SQL注入漏洞简介 乱七八糟的就不多说了,自己百度去 SQL注入原理 想要更好的学习SQL注入,那么我们就必须要深入的了解每种数据库的SQL语法及特性.下面通过一个经典的万能密码的例子带大家来拨开一下 ...

最新文章

  1. 言论丨李开复:中国在AI领域的优势与机会,现阶段AI领域的挑战
  2. crontab 案例
  3. 如何备考上海市高等学校计算机一级,如何备考全国计算机一级等级考试
  4. Linux运维:如何根据端口号查看哪个应用占用?
  5. php localtion,详解Nginx Location配置
  6. 成绩排序的c语言算法,成绩排序系统(练习排序算法和复习C语言)
  7. OpenCV在水平线上校准3个摄像机的实例(附完整源代码)
  8. java中vector容器,vector向量容器(常用的使用方法总结)
  9. html网页上传到服务器_JSP+Servlet实现文件上传到服务器功能
  10. YouTube-DNN优化原理推导
  11. Qt工作笔记-Qt仿大佬使用关键字(Q_DECL_OVERRIDE与override)
  12. win10操做系统恢复操做
  13. 电学 —— 家庭用电中的电学现象
  14. html空心字体怎么设置,Word或者WPS如何设置阴影空心的特大字体?
  15. wiznote can't networking
  16. CAD打印后图形不显示?
  17. uint8_t范围_uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结,看完全明白了...
  18. Silvaco TCAD仿真学习Lesson2——Athena仿真
  19. 微信 心理测试 软件,敢不敢做一份微信版心理测试?
  20. 计算机无法识别移动硬盘怎么办,移动硬盘不能识别,教您移动硬盘不能识别怎么办...

热门文章

  1. 无穷级数积分法:+一元微积分
  2. 电影赏析 003《斯蒂芬 · 乔布斯》
  3. 经典排序算法之:冒泡排序
  4. Python neo4j建立知识图谱,药品知识图谱,neo4j知识图谱,知识图谱的建立过程,智能用药知识图谱,智能问诊必备知识图谱
  5. 新中大SE(ngpower)凭证修改、删除
  6. dnf起源版本无限连接服务器,DNF起源版本BUG不断 爆出无限卡金币跨四已炸
  7. 16.隐函数及参数方程所确定的函数求导
  8. python对数坐标绘制
  9. 用JAVA实现一个简易的打砖块小游戏
  10. 红米note_标注2014916_官方线刷包_救砖包_解账户锁