MyBatis快速入门
2023-02-18 16:36:20 时间
MyBatis快速入门
一、导包
- 将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。
- 使用Maven构建项目时,将以下依赖置于pom.xml文件中
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
二、配置SQL映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test">
<select id="selectBlog" resultType="User">
select * from User where id = #{id};
</select>
</mapper>
配置字段解释:
- mapper : namespace:名称空间,通常情况下,一个项目的数据库不只有一张表,而操作不同表的SQL语句的id(下方解释id)的有可能重复,如查询所有用户信息和查询所有管理员信息,SQL语句的id可都为 selectAll 此时,名称空间便可对此进行区分,就像3班的张三和4班的张三。
- select(不只有select,还有insert,update等):
- id:在同一名称空间内,一条SQL语句的唯一标识。
- resultType:返回结果的类型,类似于泛型中尖括号中的内容的作用。
三、配置核心配置文件以及在核心配置文件中加载SQL映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
设置别名
-->
<typeAliases>
<package name="com.cikian.pojo"/>
</typeAliases>
<environments default="development">
<!--
配置数据库连接环境信息,可以配置多个environment,使用不同的id区分,可通过上方的default属性选择使用相应的环境
-->
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///mybatis?useSSL=False"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--加载SQL映射文件,两种方式-->
<mapper resource="com/cikian/mapper/UserMapper.xml"/>
<package name="com.cikian.mapper"/>
</mappers>
</configuration>
核心配置文件中,<dataSource> 标签中的内容……..(一看就懂0.0)
加载SQL映射文件的两种方式:
- 第一种方式resource字段的值即为SQL映射文件的相对路径。
- 第二种方式为“包扫描”方式,如上,会加载com/cikian/mapper目录中所有的SQL映射文件(有条件,如下)
在代理开发中,Mapper接口名和SQL映射文件名称相同,并且在同一目录下,推荐使用第二种方式加载映射文件,如果使用第一种方式,有多少SQL映射文件就需要写多少次,比较繁琐,而第二种方式只需要写一次。
四、在Java中使用
public class MyBatisDemo {
public static void main(String[] args) throws IOException {
// 1.加载配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 2.获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 3.执行SQL
List<User> users = sqlSession.selectList("test.selectAll");//这里就是名称空间和id的使用
System.out.println(users);
// 4.释放资源
sqlSession.close();
};
};
五、代理开发
要求:
- 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放在同一目录下;
- 设置SQL映射文件的namespace属性为Mapper接口全限定名;
- 在Mapper接口中定义方法,方法名就是SQL映射文件中SQL语句的id,并保持参数类型和返回值类型一致;
public class MyBatisDemo2 {
public static void main(String[] args) throws IOException {
// 1.加载配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 2.获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 3.执行SQL
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);// 获取接口的代理对象
List<User> users = userMapper.selectAll();
System.out.println(users);
// 4.释放资源
sqlSession.close();
};
};
代理开发中,通过SqlSession的getMapper方法获取Mapper接口的代理对象,代理对象再调用相关方法(方法名与SQL语句id相同)即可完成SQL的执行。
相关文章
- 0停机迁移Nacos?Java字节码技术来帮忙
- 视频 | ZYNQ开发板深度评测:高性能FPGA和双核ARM的强强联合!
- I²C协议官方标准文档2021最新版本下载
- 国产FPGA开发板上手体验:不足百元,集成ARM硬核处理器!
- 业内首发!感芯MC3172硬实时RISC-V芯片,还用啥RTOS!
- 从汇率转换通用解决方案到可复用设计思想
- 顶流选手专访 - 最具推广价值作品 - 背后故事
- 顶流选手专访 - 最佳展现创意作品 - 背后故事
- 【精华】顶流选手专访-最佳可视化展现作品(冠军)
- 冠军作品背后的故事会是什么呢
- IBM 人力资源综合分析案例
- 世界五百强财务高管数字化战群雄经典案例
- ZebraBI 6.0 发布,更高更快更强大
- DAX 引擎之父揭秘 DAX 引擎内部细节
- 脑图PPT - 让大脑高效流淌内容
- 融合最佳展现创意的企业智慧经营分析看板
- ArcPy将HDF格式栅格文件批量转为TIFF格式
- 用AvaSpec 2048便携式光谱仪测定地物高光谱曲线
- ArcPy依据成像时间分别批量拼接不同时相的遥感影像
- ArcMap实现栅格遥感影像监督分类