MyBatis入门介绍(超简单)

网友投稿 358 2023-04-24


MyBatis入门介绍(超简单)

MyBatis 简介

MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录。

首先介绍一下Mybatis是什么?mybatis是Java的持久层框架, JAVA操作数据库是通过jdbc来操作的,而mybatis是对jdbc的封装。

使用mybatis之后,开发者只需要关注sql语句本身,而不必花时间去注册驱动、创建connection、statement、手动设置参数,结果集检索等jdbc繁琐的代码。

mybatis基本过程:Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

下面通过一个根据用户id查询用户信息来学习mybatis:

先介绍一下mybatis的两种主要的配置文件:

SqlMapConfig.xml(mybatis全局配置文件,名称不固定,用来配置运行环境(数据源、事务)

类名+mapper.xml 主要用来配置sql语句

一、首先我们需要在mybatis的全局配置文件(SqlMapConfig.xml)中配置jdbc连接池,和加载mapper.xml.

当系统启动时,会加载这个全局配置文件,然后通过全局配置文件加载到mapper.xml文件。mapper.xml文件中配置了sql语句。

二、编写SqlSessionFactory。mybatis的核心就是这个SqlSessionFactory。通过这个SqlSessionFactory将配置文件以参数的形式传入之后,创建了一个会话。

然后通过sqlsession来操作数据库,进行增删改查。

下面来对第一步和第二步分别做个细致的分析。首先贴上代码:

sqlMapperConfig.xml

通过这个配置文件可以看出总的配置文件是配置一些主要信息和加载别的配置文件。当mybatis和Spring整合之后,environment就会被废除。同时,这种全局配置文件只会有一个。而 "表名+mapper.xml"这种配置文件则会有很多。

下面来分析 "表名+mapper.xml"

select * from user where username like '%${value}%'

但是上面这种方法是不加任何修饰的拼接在sql中的,也就是不能防止sql注入,所以这种方法也不能应用到实际项目中!

所以,我在百度上搜到了另一种方式来进行模糊查询,不知道有没有什么bug,但是我测试是可以用的。

SELECT

FROM employee a where a.name like concat(concat('%',#{name}),'%')

下面来看看sqlsessionFactory会话工厂的代码:

public class MybatisFirst {

// 会话工厂

private SqlSessionFactory sqlSessionFactory;

// 创建工厂

@Before

public void init() throws IOException {

// 配置文件(SqlMapConfig.xml)

String resource = "SqlMapConfig.xml";

// 加载配置文件到输入 流

InputStream inputStream = Resources.getResourceAsStream(resource);

// 创建会话工厂

sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

}

// 测试根据id查询用户(得到单条记录)

@Test

public void testFindUserById() {

// 通过sqlSessionFactory创建sqlSession

SqlSession sqlSession = sqlSessionFactory.openSession();

// 通过sqlSesshttp://ion操作数据库

// 第一个参数:statement的位置,等于namespace+statement的id

// 第二个参数:传入的参数

User user = null;

try {

user = sqlSession.selectOne("test.findUserById", 2);

} catch (Exception e) {

e.printStackTrace();

} finally {

// 关闭sqlSession

sqlSession.close();

}

System.out.println(user);

}

会话工厂的代码很简单,就是:家在配置文件、创建会话工厂、通过会话操作数据库、关闭会话:

但是请注意第35行的参数。就是我们前面提到的namespace的test,是为了隔离sql而写的,这里体现的它的作用!

还有就是selectOne这两个参数各自的意义:第一个参数就是我们所说的“表名+mappe.xml”中定义的sql语句,其实就是一个statement.第二个参数就是sql语句需要传入的参数,也就是id

总结

以上所述是给大家介绍的MyBatis入门介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用重写url机制实现验证码换一张功能
下一篇:Angular4 中内置指令的基本用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~