Mybatis项目笔记(一)简单创建mybatis项目

Mybatis项目笔记(一)简单创建mybatis项目

Myeclipse2016 +jre1.8+MySQL5.7

1 myeclipse进入创建java project

2 导入mybatis框架相关jar包:

需要用到的jar包先放置在项目目录下lib文件夹里边,没有此文件夹则新建

3 选择这些jar包,右击build path 选择Add to ….. :

4 在src目录下,创建mybatis配置文件(.xml文件)

5 从参考文档中复制示例配置到mybatis.xml再另外根据实际情况进行修改,Ctrl+A全选Ctrl+i格式化:

<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>

 

6 准备数据库:t1数据库 goods商品表,goods_type商品类型表

7 将用于数据库连接的:driver、URL、username、password修改完整。

<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://localhost:3306/t1?useUnicode=true&amp;characterEncoding=utf8" />
				<property name="username" value="root" />
				<property name="password" value="123456" />
			</dataSource>

 

8 创建实体类,ORM映射

package com.mybatis.lzy.domain;

public class Goods {
	
//	goods_id	int
	private int goodsId;
//	goods_name	varchar
	private String goodsName;
//	goods_price	double
	private double goodsPrice;
//	goods_num	int
	private int goodsNum;
//	goods_type	int
	private int goodsType;
	public int getGoodsId() {
		return goodsId;
	}
	public void setGoodsId(int goodsId) {
		this.goodsId = goodsId;
	}
	public String getGoodsName() {
		return goodsName;
	}
	public void setGoodsName(String goodsName) {
		this.goodsName = goodsName;
	}
	public double getGoodsPrice() {
		return goodsPrice;
	}
	public void setGoodsPrice(double goodsPrice) {
		this.goodsPrice = goodsPrice;
	}
	public int getGoodsNum() {
		return goodsNum;
	}
	public void setGoodsNum(int goodsNum) {
		this.goodsNum = goodsNum;
	}
	public int getGoodsType() {
		return goodsType;
	}
	public void setGoodsType(int goodsType) {
		this.goodsType = goodsType;
	}
	public Goods() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Goods(int goodsId, String goodsName, double goodsPrice,
			int goodsNum, int goodsType) {
		super();
		this.goodsId = goodsId;
		this.goodsName = goodsName;
		this.goodsPrice = goodsPrice;
		this.goodsNum = goodsNum;
		this.goodsType = goodsType;
	}
	@Override
	public String toString() {
		return "Goods [goodsId=" + goodsId + ", goodsName=" + goodsName
				+ ", goodsPrice=" + goodsPrice + ", goodsNum=" + goodsNum
				+ ", goodsType=" + goodsType + "]";
	}
	

}

9 创建mapper接口(映射器),定义想要实现的方法、函数

package com.mybatis.lzy.mapper;

import java.util.List;

import com.mybatis.lzy.VO.GoodsGroupVO;
import com.mybatis.lzy.VO.GoodsSearchVO;
import com.mybatis.lzy.domain.Goods;

public interface GoodsMapper {
//  查找所有商品
	public List<Goods> findAll();
//  通过Id查找商品
	public Goods findById(int id);
//  插入商品
	public void save(Goods goods);
}

(另一个表的方法接口类似)

10 在与mapper接口同一包下创建XXXMaper.xml文件实现XXXMapper接口的方法,即sql语句会写在此配置文件里面

<?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 namespace="com.mybatis.lzy.mapper.GoodsMapper">

	<select id="findAll" resultMap="resultGoods">
		select * from goods
	</select>

	<select id="findById" resultMap="resultGoods" parameterType="int">
		select * from goods where goods_id = #{id}
	</select>

	<insert id="save" parameterType="com.mybatis.lzy.domain.Goods">
		insert into
		goods(goods_id,goods_name,goods_price,goods_num,goods_type)
		values(#{goodsId},#{goodsName},#{goodsPrice},#{goodsNum},#{goodsType})
	</insert>


	<resultMap type="com.mybatis.lzy.domain.Goods" id="resultGoods">
		<id property="goodsId" column="goods_id" javaType="int" />
		<result property="goodsName" column="goods_name" javaType="java.lang.String" />
		<result property="goodsPrice" column="goods_price" javaType="double" />
		<result property="goodsNum" column="goods_num" javaType="int" />
		<result property="goodsType" column="goods_type" javaType="int" />
	</resultMap>
</mapper>

12 同时记得注册XXXMapper文件:在mybatis.xml文件的<mappers>标签中添加<mapper>注册!注意路径使用“/”分开

11 编写测试类

package com.mybatis.lzy.test;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

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 org.junit.Before;
import org.junit.Test;

import com.mybatis.lzy.VO.GoodsGroupVO;
import com.mybatis.lzy.VO.GoodsSearchVO;
import com.mybatis.lzy.domain.Goods;
import com.mybatis.lzy.domain.GoodsType;
import com.mybatis.lzy.mapper.GoodsMapper;
import com.mybatis.lzy.mapper.GoodsTypeMapper;

public class MybatisTest {

	private SqlSession sqlsession;
	//	测试查找所有Goods
	public void findAllGoods(){
		System.out.println("是否进到该方法");
		try {
			GoodsMapper goodsMapper = this.sqlsession.getMapper(GoodsMapper.class);
			System.out.println(goodsMapper);
			List<Goods> goodsList = goodsMapper.findAll();
			System.out.println("是否执行完查找所有");
			System.out.println(goodsList.size());
			for (Goods goods : goodsList) {
				System.out.println(goods);
			}
		} catch (Exception e) {
			sqlsession.close();
		}
	}
	//	测试查找所有GoodsType
	public void findAllGoodsType(){
		try {
			GoodsTypeMapper goodsTypeMapper = this.sqlsession.getMapper(GoodsTypeMapper.class);
			List<GoodsType> goodsTypeList = goodsTypeMapper.findAll();
			for (GoodsType goodsTypes : goodsTypeList) {
				System.out.println(goodsTypes);
			}
		} catch (Exception e) {
			sqlsession.close();
		}
	}
	//	测试Goods findById
	public void findGoodsById(){
		try {
			GoodsMapper goodsMapper = this.sqlsession.getMapper(GoodsMapper.class);
			Goods good = goodsMapper.findById(3);
			System.out.println(good);
		} catch (Exception e) {

		}finally{
			sqlsession.close();
		}
	}
	//	插入商品Good
	public void saveGood(){
		//		创建一个Goods对象并赋值
		Goods goods = new Goods();
		goods.setGoodsId(2);
		goods.setGoodsName("测试save商品方法的商品A");
		goods.setGoodsNum(40);
		goods.setGoodsPrice(10);
		goods.setGoodsType(1);
		try {
			GoodsMapper goodsMapper = this.sqlsession.getMapper(GoodsMapper.class);
			goodsMapper.save(goods);
			//			提交事务
			this.sqlsession.commit();
			System.out.println("save成功插入一件商品");
		} catch (Exception e) {
			e.printStackTrace();
			this.sqlsession.rollback();
			throw new RuntimeException(e);
		}finally{
			//			释放资源
			this.sqlsession.close();
		}
	}

	@Test
//测试方法
	public void testF(){
		saveGood();
	}

	@Before
//放在测试方法执行前执行的before方法
	public void bofore(){
		String resource="mybatis.xml";
		try {
			Reader reader = Resources.getResourceAsReader(resource);
			SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
			//			System.out.println("获取前的sqlsession:" + sqlsession);
			sqlsession = ssf.openSession();
			//			System.out.println("获取后的sqlsession:" + sqlsession);
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

asjodnobfy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值