- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Day01 mybatis的入门
Day01 课程安排(知识点多、重要)
原生jdbc开发程序的问题总结
Mybatis的介绍以及框架原理
Mybatis的入门程序(简单的crud)
Mybatis两种dao的开发方式
Mybatis的全局配置文件的讲解(SqlMapConfig.xml)
原生jdbc开发程序的问题总结
开发环境
Eclipse4.2 + jdk1.7 + mysql5.1
执行sql脚本
为了大家的开发方便,我已经相关的脚本写好,只要大家执行脚本就可获取测试数据
需要的jar包
只需要mysql的驱动包即可
程序代码
问题总结
每执行一次程序都需要去获取connection,而且使用完之后再释放在资源,从而导致频繁的访问数据库,这样会降低数据库的性能
不易维护性(硬编码,也就是程序中的一些变量都用了固定值来代替)
sql硬编码,如果客户的需求更改,我们还需要通过修改原代码来实现,然后再次编译并部署上线
查询列硬编码,如果客户的需求,如商品的展示的列表中可能会包括其他的商品信息,还是得修改源码
参数的硬编码,如果查询条件发生改变,还是需要修改源码
3、结果集处理比较麻烦
4、解决方案
connection连接我们可以通过连接池来实现(c3p0)
我们希望将返回的结果集封装成指定的pojo对象、集合或者其他类型(ORM-mybatis)
不易维护性上我们看出都是sql的问题,那么好如果我们不在源码中硬编码我们的sql是不是就可以呢?这样mybatis的这样的一个框架就出现了,它可以解决这样的问题,它是将sql配置到xml文件中,不用再将sql硬编码到源码中。
Mybatis的介绍及原理
Mybatis的介绍
Mybatis是一个持久层框架,它前身由Apache管理的一个顶级项目叫ibatis,但是在2010年后该项目交给Google code管理,并在2013年迁移到github上。Mybatis的前身就是ibatis,并在该基础上做了一些封装及优化。比如通过mapper代理的方式开发dao就是ibatis不能实现的;还比如mybatis可使用ognl的方式传递参数等。
Mybatis的特点是将程序员更多的关注sql本身,当然也要求对sql有一定的基础,mybatis的配置文件可以灵活的配置sql以满足需求,而且在需求多变的情况下我们只要修改配置文件即可。而且mybatis将jdbc中的preparestatement传递的参数作为输入映射,并将查询到的结果作为输出映射,并且可以映射到指定的Java对象中。
Hibernate框架回顾
Mybatis的架构
Mybatis的入门程序
需求
根据用户的id查询用户信息
根据用户的姓名查询用户信息
添加一条用户信息
修改一条用户信息
删除一条用户信息
环境搭建
开发环境
Eclipse4.2 + jdk1.7 + mysql5.1
工程的目录结构
Mybatis的jar包
Mybatis的全局配置文件
SqlMapConfig.xml文件配置,参照mybatis的开发文档
Log4j日志文件
Mybatis的默认使用的日志文件是log4j,因此我们的日志信息的配置亦可参照mybatis的官方开发文档
通过log.info等方法实现日志信息记录
映射文件存放目录
在mybatis的全局配置文件中,可以配置映射文件,也就是编写多个sql的文件,正常的开发环境下,都是一个模块一个映射文件,因此我们将所有的映射文件放入一个固定的目录下,这样方便管理。
目录结构
根据用户的id查询用户信息
编写pojo对象,User.java
我们刚框架讲过了,我们将查询的结果映射成我们需要的结果类型,那我们既然要查询用户信息,自然而然我们需要将查询的结果映射成User类型。
编写映射文件,UserMapper.xml
在mapper目录下编写UserMapper.xml映射文件
引入映射文件
Mybatis框架启动时加载全局配置文件,所需我们需要将该映射文件加入到全局文件中用于启动时加载。
测试
根据用户的姓名查询用户信息
编写映射文件
测试
插入用户信息
映射文件编写
测试
主键id的返回
场景:在企业开发中,经常会遇到类似这样的问题,在保存user表后继续保存role表,但是role表中有user_id外键是user表的主键,也就是说保存user表后需要获取其id主键,那么mybatis怎么实现呢?
自增主键的返回
要求:该表的主键必须是自增
映射文件的编写
测试
非自增主键的返回
略,就是通过uuid()这个函数获取值,并在执行插入前去执行该函数并将获取的值设置到resultType指定对象的对应的属性中。Insert语句中必须要插入id这个值。
如果是oracle使用序列生成主键,
文档评论(0)