------------恢复内容开始------------
商品数据表 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();
}
}
}
------------恢复内容结束------------
浙公网安备 33010602011771号