ssm框架操作mysql_SSM框架-----Mybatis篇

三.Mybatis

1.SpringJdbc

1.1 SpringJdbc是什么?

是Spring框架对jdbc的封装.目的是为了简化代码,提高质量效率,比如访问数据库要先连接跟关闭连接都已经写好了。

1.2 怎么用?

step1.导spring-webmvc,spring-jdbc,ojdbc,dbcp,junit

step2.添加配置文件,spring容器表配置JdbcTemplate

配置就相当于调用JdbcTemplate的方法访问连接了数据库. Dao封装一个内部类实现RowMapper< T >接口,有结果集,查询语句必用

jt.update(sql,args); ++ jt.query(sql,new EmpRowMapper());返回一个集合

jt.queryForObject(sql, args,new EmpRowMapper());返回一个员工数据

89b2de63b1c79af377a4118a69183d48.png

bf7a9604f34d07d43fa37c057934dee7.png

ec9c45852c4df06b4d407dadaffcdf20.png

2 Mybatis

2.1 Mybtis是什么?——是对jdbc的封装,开源的持久层框架

2.2 怎么用?

step1.导mybatis,ojdbc,junit

step2.添加配置文件

step3.实体类(属性名跟表的字段名一样,不计大小写)

step4.添加一个映射文件(主要是一些sql语句)

step5.调用SqlSession提供的方法来访问数据库

a1a100ba6796305b965ec755cde249e5.png

c6359dc27c2a7d75ef79692dd54c7bb3.png

921210b6f63556c16e0c3d3b277850c3.png

2e2e8356d8ff2f3395e57764bb649db9.png

没有entity也可以通过返回的Map类型获得,Map封装的都是大写的key,如map.get("NAME"),resultType可以=m(简写)

d4708f5e8c7539548e7f847901bf3457.png

2.2 Mybatis的基本原理

a.SqlSessionFactory通过读取MyBatis配置文件(SqlMapConfig.xml),创建一个Map(key是sql的id,值是PreparedStatement对象)

b.调用SqlSession对象提供的方法来执行sql,SqlSession对象会依据 sqlId在Map中找到对应的PreparedStatement对象,然后执行相应的方法(比如executeUpdate等)

c.如果执行的是查询,对结果的处理分两步:.

第一步,是将一条记录中存放的数据先添加到一个对应的Map对象里面(以字段名作为key,以字段值作为value)

第二步,会将Map对象存放的数据添加到对应的实体对象里面(这也是为什么要求实体类的属性名必须与表的字段名要求一致的原因)

9268378.html

e1d64cdedd98235538dedb9a8717f3c2.png

解决entity实体类属性名跟数据库表的字段不一样的情况

方法一: 使用别名 select id empNo,name ename,salary,age from lin_emp where id=#{num}

方法二: 使用resultMap

1ff76425c8df45b4d053232521d67241.png

2.3 Mapper映射器

2.3.1Mapper映射器是什么?

是一个符合映射文件要求的接口,它跟上面讲的映射文件是互相关联的叫映射器。MyBatis会自动生成一个符合该接口要求的对象,只需要调用该对象的方法,就可以访问数据库

2.3.2如何写?

step1.方法名必须跟sqlId一样

step2.参数类型必须跟parameterType一样

step3.返回类型必须跟resultType一样

7990e0ab95457aacc8cfcd24024c6cdf.png

cf0cee3aa61f0d4aaefd6f37b387d12a.png

0d7838794c897ee92081a21976387c9d.png

2.4 Spring集成MyBatis(使用Mapper映射器,没有附上映射文件跟映射器图片,上面有这2图)

step1.导spring-webmvc,mybatis,mybatis-spring,spring-jdbc,ojdbc,dbcp,junit

step2.添加Spring配置文件,MyBatis配置文件就不需要了,使用SqlSessionFactoryBean来代替

step3.实体类 + 映射文件 + Mapper映射器 + 配置MapperScannerConfigurer该bean会调用sqlsession的getMapper方法来获得映射器的实现对象,并且会将这些对象添加到Spring容器里面(默认id是首字母小写的接口名,或者加个持久注解)

97f2b249c132cf899fd916f295d55e0b.png

f8da8bddb7121678b2b743e63d995c0b.png

8b67fd896661bdf3df572043078280ca.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值