Mybatis框架基础知识整理

框架(FramWork)

本质上就是一个应用,完成了部分功能,让使用者能少写代码,提高开发效率;

  1. 框架都是"不要重复造轮子",帮我们将公用的基础功能已经封装好了;
  2. 框架制定了一套规则,使用该框架的开发人员,都需要遵守该规则,代码的形 式就会规范和统一起来,代码就会好维护

Mybatis:是一个持久层的框架

  1. 轻量级的持久层框架,只需要导入一个jar包即可
  2. 自己定制SQL语句
  3. SQL和代码松耦合
  4. 动态SQL可以让SQL语句更加灵活

ORM框架:对象关系映射 将java对象映射成数据库需要的数据格式;也可以将数据库的数据映射成java对象

mybatis提供强大的高级映射 多表联查时的场景

mybatis

配置文件和映射文件

配置文件 配置数据源、设置、java类型别名、插件等待

映射文件

mybatis 面向接口的开发

  1. 创建dao接口
  2. 将该接口和某个映射文件关联起来
  3. 使用动态代理的方式,在运行时根据接口和映射文件生成该接口的实现类

mybatis的加载过程

获取配置文件

InputStream in = Resources.getResourceAsStream("config.xml");

创建session工厂构建器对象

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

通过构建器对象加载配置文件,并且构建工厂对象

SqlSessionFactory factory = builder.build(in);

通过工厂对象,获取SqlSession对象

SqlSession session = factory.openSession();

通过session对象的API方法来执行映射文件中的SQL语句

1.要执行的SQL语句的标识:namespace.id 2.要传递的参数

int row = session.update("first.update", student);

config.xml配置

将此行代码复制粘贴在config,xml文件中
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

配置文件详情

<configuration>标签中配置

<settings>标签中配置来负责开启日志

<setting name="logImpl" value="STDOUT_LOGGING"/>

<environments>标签中进行环境配置 以及设置连接数据库的相关配置,此标签可以写多个数据库的环境配置,此处为mysql数据库的环境配置

<environment id="mysql">标签中表明要连接的数据库

<transactionManager type="JDBC">
</transactionManager>
  <dataSource type="POOLED">
    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
    <property name="username" value="数据库名称"/>
    <property name="password" value="数据库密码"/>
    <property name="url" value="数据库的url/>
  </dataSource>

<mappers>
<!-- 配置映射文件 -->
</mappers>

映射文件

id(必须):SQL语句的唯一标识,通过id可以找到该语句
parameterType(可选):参数类型
useGeneratedKeys:true代表添加记录时,返回自增的主键值
keyColumn:自增主键的字段名
keyProperty:将主键值赋值给参数对象的哪个成员变量

 <insert id="add" 
   parameterType="com.lanou.model.Student"
   useGeneratedKeys="true"
   keyColumn="id"
   keyProperty="id">
 <!-- 
 #{属性名}:获取到参数对象对应名称的属性值,
	 例如#{name}就是获取到Student对象的name属性的值
 -->
 insert into student (name,age) values (#{name},#{age})
</insert>
<!-- 
默认使用的是PreparedStatement对象执行SQL语句 
statementType:设置执行SQL的对象类型
STATEMENT:Statement
PREPARED(默认):PreparedStatement
CALLABLE:CallableStatement  执行存储过程的
-->
<update id="update" statementType="PREPARED">
 update student set name=#{name} where id=#{id}
</update>

<delete id="del">
 delete from student where id=#{id}
</delete>

<!-- 
 查询时resultType属性是必须指定的
 resultType:结果集要映射成的java类型	
-->
<select id="query" resultType="com.lanou.model.Student">
 select * from student where id=#{id}
</select>

<!-- 
 如果查询结果为多条记录,resultType处填写的类型是集合中的元素类型
-->
<select id="queryAll" resultType="com.lanou.model.Student">
select * from student
</select>
</mapper>

结束之后便可以在main方法中用session调用配置文件中的sql语句对数据库进行操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值