------------恢复内容开始------------

商品数据表 goods 商品编号(id) 商品名称(goodsname) 商品单价(price) 商品数量(quantity) 1 电视机 5000 100

在My Sql数据库中:

create database goodsdb;
use goodsdb;
create table goods(
id int(11) not null,-- 商品编号(id)
goodsname varchar(50) default null,-- 商品名称(goodsname)
price int(10) default null,-- 商品单价(price)
quantity int(11) default null, -- 商品数量(quantity)
primary key(id)
);
-- 新增数据
insert into goods (id,goodsname,price,quantity)values
(1,"电视机",5000,100),(2,"电冰箱",4000,200),(3,"空调",3000,300),(4,"洗衣机",3500,400);
select * from goods;

1. 创建项目后,需要导入对应的jar
2. 创建一个log4j.propertis属性文件:记录我们的MyBatis执行日志
3. 创建MyBatis的主配置文件
4. 创建一个对应数据库中表的实体类
5. 创建一个接口,定义一个方法用于查询所有的学生信息
接口前边添加上 I 操作数据库 Dao结尾
查询所有的学生信息 List<商品>
7. 创建一个与实体类+Mappr.xml文件,主要用于配置我们查询的SQL语句
6. 创建一个接口的实现类,用于实现该查询方法
8. MyBatis的主配置文件 将第7步中的映射添中到主配置文件中
9. 测试

controller

Dao

IGoodsDao.java:

package com.shh.dao;

import java.util.List;

import com.shh.entity.Goods;

/**
* 定义操作商品执行化的接口 主要包括的方法有:
* 1.查询所有的商品
* @author huden
*/
public interface IGoodsDao {
// 查询所有的商品信息
public List<Goods> findAll();
}

 

GoodsMapper.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">
<!-- 这里MyBatis对应操作表的Mapper文件
namespace=""命名空间,对应我们定义的接口:具体需要操作的是那一个接口 -->
<mapper namespace="com.shh.dao.IGoodsDao">
<!-- 查询 select标签
id=""这里ID可以是你们定义接口中的方法的名字
resultType=""反回的类型,也是ORM对象与关系的映射
-->
<select id="findAll" resultType="com.shh.entity.Goods">
<!-- 实体类中的名字与数据库查询表的字段不相同时,如何解决
查询的Sql语句:把他们的字段名改为相同的就可以
-->
select * from goods;
</select>
</mapper>

 

Dao.impl

GoodsDaolmpl.java:

package com.shh.dao.impl;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.apache.ibatis.session.SqlSession;

import com.shh.dao.IGoodsDao;
import com.shh.entity.Goods;
import com.shh.utils.MyBatisUtil;

public class GoodsDaoImpl implements IGoodsDao {
@Override
public List<Goods> findAll() {
// 定义一个反回商品信息的类型
List<Goods> list = new ArrayList<Goods>();
SqlSession session = MyBatisUtil.getSession();
// 4执行查询 selectList返回的是一个List集合
// 前边是接口的完整路径:+ 需要调用的方法的名字
list = session.selectList("com.shh.dao.IGoodsDao.findAll");
// 关闭session
MyBatisUtil.closeSession();
return list;
}

}

entity

Goods.java:

package com.shh.entity;

import java.io.Serializable;

//实体类就对应你们的数据库中的表
public class Goods implements Serializable {
private int id;
private String goodsname;
private int price;
private int quantity;
// 隐式构造方法
public Goods() {
super();
}

public Goods(int id, String goodsname, int price, int quantity) {
super();
this.id = id;
this.goodsname = goodsname;
this.price = price;
this.quantity = quantity;
}

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 getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
//toString
@Override
public String toString() {
return "Goods [id=" + id + ", goodsname=" + goodsname + ", price="
+ price + ", quantity=" + quantity + "]";
}


}

service

test

Test.java:

package com.shh.test;

import java.util.List;

import com.shh.dao.IGoodsDao;
import com.shh.dao.impl.GoodsDaoImpl;
import com.shh.entity.Goods;

public class Test {
public static void main(String[] args) {
// 使用接口的方式来创建对象
IGoodsDao dao = new GoodsDaoImpl();
List<Goods> list = dao.findAll();
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}

utils

MyBatisUtil.java

package com.shh.utils;

import java.io.Reader;

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

public class MyBatisUtil {
private MyBatisUtil() {
}

private static final String RESOURCE = "mybatis-config.xml";
private static SqlSessionFactory sqlSessionFactory = null;
private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
static {
Reader reader = null;
try {
reader = Resources.getResourceAsReader(RESOURCE);
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
sqlSessionFactory = builder.build(reader);
} catch (Exception e1) {
e1.printStackTrace();
throw new ExceptionInInitializerError("初始化MyBatis错误,");

}
}

public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}

public static SqlSession getSession() {
SqlSession session = threadLocal.get();
if (session == null) {
session = (sqlSessionFactory != null) ? sqlSessionFactory.openSession() : null;
threadLocal.set(session); // 5
}
return session;
}

public static void closeSession() {
SqlSession session = (SqlSession) threadLocal.get(); // 2
threadLocal.set(null);
if (session != null) {
session.close();
threadLocal.remove();
}
}
}

------------恢复内容结束------------

posted on 2022-04-16 16:39  税hh  阅读(812)  评论(0)    收藏  举报