1.Mybatis框架的入门
1.创建一个mybatis项目
2.导入jar包
3.在src目录下创建mybatis.xml
4.建表 建实体类
5.写sql 写在xml中
在mybatis.xml文件中注册与实体类的映射文件.xml
<mapper resource="com/gxks/lcf/domain/GoodsType.xml"/>
6.测试
整体结构
1.domain层-实体类
我这里用了lombok
/**
*
*/
package com.gxks.lcf.domain;
import lombok.Data;
/**
* @author
* @version 创建时间:2019年9月8日 下午5:59:09
* 类说明
*/
/**
* @author YJ
*
*/
@Data
public class GoodsType {
private Integer type_id;// 如果写这个 typeId 要在数据库查询语句那里写别名
private String type_name;
}
2.GoodsType.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 namespace="com.gxks.lcf.domain.GoodsType">
<select id="findAll" resultType="com.gxks.lcf.domain.GoodsType">
select * from goods_type
<!-- 如果实体类的属性没有和数据库字段一样
就用这个查询语句 别名
select type_id as typeId,type_name as typeName from goods_type
-->
</select>
</mapper>
3.测试
/**
*
*/
package com.gxks.lcf.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.gxks.lcf.domain.GoodsType;
/**
* @author 小罗
* @version 创建时间:2019年9月8日 下午5:30:46
* 类说明
*/
/**
* @author YJ
*
*/
public class MyBatisT {
private SqlSession sqlSession;
public void test1() {
System.out.println("我在test1");
List<GoodsType> goodsTypeList = sqlSession.selectList("com.gxks.lcf.domain.GoodsType.findAll");
System.out.println("我在test11");
for (GoodsType goodsList : goodsTypeList) {
System.out.println(goodsList);
}
}
@Test
public void testF() {
test1();
System.out.println("this is sqlSession");
}
@Before
public void before() {
System.out.println("使用bfore会先执行before!");
//alt+shift+z 直接在try和catch之间填充需要捕获异常的代码
try {
String resource ="mybatis.xml";
//Resources读取配置文件
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
this.sqlSession=sqlSessionFactory.openSession();
} catch (IOException e) {
e.printStackTrace();
}
}
}
mybatis.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">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatist?serverTimezone=Asia/Shanghai"/>
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/gxks/lcf/domain/GoodsType.xml"/>
</mappers>
</configuration>
运行结果
我在test1
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
我在test11
GoodsType(type_id=1, type_name=沐浴用品)
GoodsType(type_id=2, type_name=床上用品)
GoodsType(type_id=3, type_name=运动类型)
GoodsType(type_id=4, type_name=科技用品)
GoodsType(type_id=5, type_name=衣服用品)
this is sqlSession