mybatis官方网址:mybatis – MyBatis 3 | 简介
mybatis框架是一个给予ORM的优秀的持久化框架
- mybatis框架三个基本要素:
- 1.核心接口和类
- 2.核心配置文件
- 3.SQL映射文件
创建一个mybatis项目:
①WEB-INF下添加架包
②src文件下添加映射文件和数据库链接文件
mybatis-condig.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>
<!--引用数据库配置文件-->
<properties resource="database.properties"></properties>
<!--环境池-->
<environments default="mysql">
<!--具体环境配置-->
<environment id="mysql">
<!--事务管理器-->
<transactionManager type="JDBC"></transactionManager>
<!--数据源 values填写database里的名字-->
<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接口所在的包名 -->
<mapper resource="dao/BananaMapper.xml"></mapper>
<mapper resource="dao/WorkMapper.xml"></mapper>
</mappers>
</configuration>
③src下建立代码包
接口写方法
1.如果传入双参数必须使用@param取别名,否则为null
映射文件写实现方法
注:实体类要写包名点出来 增删改要写传入类型parameterType 查询要写返回类型resultType
mybatis中的sql语句不能使用?号只能使用#{}
测试类运行
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String[] args) {
//第一步读取mybatis核心配置文件
try {
InputStream is= Resources.getResourceAsStream("mybatis-config.xml");
//第二步 创建sqlsessionFactory
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(is);
//第三步 通过工厂生产一个具体的sqlsession SqlSession数据库的会话
SqlSession session=ssf.openSession();
//第四步:调用 利用反射生成接口的对象(底层寻找跟接口同名的xml映射文件来生成)
BananaMapper bm=session.getMapper(BananaMapper.class);
List<Banana> list=bm.findNcolor("帝王蕉","黄色");
for (Banana b:list) {
System.out.println(b.getBprice());
}
Map<String,Object> map=new HashMap<>();
map.put("1","黄色");
map.put("2","绿色");
List<Banana> list1=bm.findMap(map);
for (Banana b1:list1 ){
System.out.println(b1.getBname());
}
System.out.println("-------------------------------------------");
int begin=(2-1)*3;
List<Banana> list2=bm.findbyPage(begin,3);
for (Banana b1:list2 ){
System.out.println(b1.getBname());
}
Banana bb=new Banana();
bb.setBid(13);
bb.setBname("啦啦啦");
bb.setBprice(56);
bb.setBcolor("粉色");
bb.setBtime("2022-2-19");
int ll=bm.insert(bb);
session.commit();
} catch (IOException e) {
e.printStackTrace();
}
}
}