mybatis

mybatis框架

1.简介:mybatis是支持sql查询,存储过程(https://baike.baidu.com/item/%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/1240317?fr=aladdin)和高级映射(https://blog.csdn.net/liweizhong193516/article/details/53688995?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2)的优秀持久层框架。使用xml配置编写sql语句,将java代码和sql语句分离,避免像jdbc一样硬编码,sql的拼接也变得简便,支持自定义sql语句。

2.主配置文件的编写:

<?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">

 <!--dtd约束文档,用来约束当前xml文档能够使用的标签和属性  -->

<configuration>

<!--配置mybatis使用的数据库环境  -->

 <environments default="development">

 <environment id="development">

 <transactionManager type="JDBC"/>

 <!--表示mybatis管理事务的方式,依赖于jdbc管理事务  -->

 <!--数据源配置  -->

 <dataSource type="POOLED">

 <property name="driver" value="com.mysql.jdbc.Driver"/>

 <property name="url" value="jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=utf-8"/>

 <property name="username" value=" "/>

 <property name="password" value=" "/>

 </dataSource>

 </environment>

 </environments>

 <!--加载映射配置文件  -->

 <mappers>

 <mapper resource="com/offcn/mapper/*.xml"/>

 </mappers> </configuration>

3.映射配置文件的配置

<?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">

 <!--namespace:表示命名空间,如果要使用接口代理的方式操作数据库,

 必须保证接口的全限定名称和namesapce一致

必须保证接口方法名称和sql语句id值一致 -->

 <mapper namespace="对应的接口全类名">

 <select id="findPersonByPid"  resultType="对应返回的实体全类名">

 sql查询语句

 </select>

...

 </mapper>

4.使用mybatis提供的API(应用程序接口)操作数据库

//加载主配置文件

InputStream inputStream = Resources.getResourceAsStream("主配置文件名.xml");

//构建SqlSessionFactory

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

//获取sqlsession

SqlSession sqlSession = sessionFactory.openSession();

PersonMapper personMapper = sqlSession.getMapper(接口.class);

Person person = personMapper.方法名;

//提交事务

sqlSession.commit();

//关闭session

sqlSession.close();

原文地址:https://www.cnblogs.com/seaWaveQin/p/13152143.html