版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、我蜡染的第一天我蜡染的基本知识课程安排:Mybatis和springmvc是由订购商品的案例研究驱动的。第一天:基础知识(重点,大量内容)原始jdbc程序概要(仅用jdbc开发)Mybatis框架原则(硕士)Mybatis入门程序添加、删除、修改和检查用户mybatis开发dao的两种方式:原始的dao开发方法(程序需要编写dao接口和dao实现类)(主)我的诱饵映射器接口(相当于dao接口)代理开发方法(主)XmlMybatis核心:Mybatis输入映射(主)Mybatis输出映射(主)mybatis (master)的动态sql第二天:高级知识订单商品数据模型分析高级结果集映射(一对一、
2、一对多、多对多)Mybatis延迟装载Mybatis查询缓存(一级缓存,二级缓存)我的诱饵和弹簧集成(主)Mybatis逆向工程1原jdbc程序中的问题总结1.1环境Java环境:jdk1.7.0_72eclipse:indigomysql:5.11.2创建mysql数据导入以下脚本:Sql_table.sql:记录表结构记录测试数据,并在实际的企业开发中提供一个初始化数据脚本。1.3 jdbc程序使用jdbc查询mysql数据库中用户表的记录。创建java项目,添加jar包:数据库驱动程序包(mysql5.1)上面是mysql驱动程序。以下是甲骨文的驱动程序。程序代码:1.4问题总结1.数据
3、库连接是在使用时创建的,不会立即释放。数据库经常连接打开和关闭,造成数据库资源浪费,影响数据库性能。假设:使用数据库连接池来管理数据库连接。2.将sql语句硬编码成java代码。如果sql语句被修改,java代码需要重新编译,这不利于系统维护。假设:sql语句是在xml配置文件中配置的,即使sql发生变化,java代码也不需要重新编译。3.在准备状态中设置参数。java代码中的硬代码占位符位置和参数值不利于系统维护。假设:sql语句、占位符和参数都是用xml配置的。4.当遍历result set中的结果集数据时,存在硬编码。获取表的字段是硬编码的,不利于系统维护。假设查询的结果集被自动映射到j
4、ava对象中。2 mybatis框架2.1什么是肌炎?Mybatis是apache下的一个持久层框架和顶级项目。Mybatis由goolecode托管,后来由github托管(/my batis/my batis-3/releases)。Mybatis允许程序专注于sql。通过mybatis提供的映射方法,它可以自由灵活地生成sql语句(半自动,其中大部分需要程序员编写sql)来满足需求。Mybatis可以自动将输入参数映射到preparedStatement,并灵活地将查询结果集映射到java对象中。(输出映射)2.2 mybatis框架3入门程序3.1要求
5、根据用户id(主键)查询用户信息根据用户名模糊查询用户信息添加用户删除用户更新用户3.1环境Java环境:jdk1.7.0_72eclipse:indigomysql:5.1Mybatis运行时环境(jar包):从/mybatis/mybatis-3/releases, 3 . 2 . 7版下载在库下:依赖包Mybatis-3.2.7.jar:核心包Mybatis-3.2.7.pdf,操作指南驱动程序包加入mysql3.2 perties3.3工程结构3.4 SqlMapConfig.xml配置mybatis的运行环境、数据源、事务等。3.5
6、基于用户id(主键)查询用户信息3.5.1创建采购订单类别3.5.2映射文件映射文件命名:User.xml(最初名为ibatis),映射程序代理开发映射文件名为XXMapper.xml,例如:UserMapper.xml、ItemsMapper.xml在映射文件中配置sql语句。3.5.3在SqlMapConfig.xml中加载映射文件sqlMapConfig.xml中的User.xml:3.5.4编程3.6基于用户名的用户信息模糊查询3.6.1映射文件使用User.xml添加基于用户名模糊查询用户信息的sql语句。3.6.2程序代码3.7添加用户3.7.1映射文件配置在用户. xml中添加用
7、户的语句3.7.2程序代码3.7.3添加主键返回Mysql会自动添加一个主键,并在插入提交之前自动生成一个自添加主键。新插入记录的自增主键是通过mysql函数获得的:最后_插入_标识()此函数在插入后调用。修改插入用户定义:3.7.4非自增主键返回(uuid()要使用mysql的uuid()函数生成主键,您需要将表中的id字段类型修改为字符串,并将长度设置为35位。实施理念:首先,通过uuid()查询主键,然后将主键输入到sql语句中。uuid()语句的执行顺序相对于insert语句之前的顺序。从oracle序列生成主键:选择序列名称。nextval()插入用户(id、用户名、生日、性别、地址
8、)值(#id、# 用户名、# 生日、# 性别、# 地址)3.8删除用户3.8.1映射文件3.8.2代码:3.9更新用户3.9.1映射文件3.9.2代码3.10摘要3.10.1参数类型通过参数类型在映射文件中指定输入参数的类型。3.10.2结果类型通过映射文件中的结果类型指定输出结果的类型。指定对应于返回结构的单个记录的java对象类型3.10.3 #和$ # 代表一个占位符,# 接收输入参数,可以是简单类型,pojo,hashmap。如果收到一个简单的类型,可以在# 中写入值或其他名称。# 接收pojo对象值,通过OGNL读取对象中的属性值,并通过属性的方法获取对象的属性值。属性。属性.$ 代
9、表引用sql注入的串联符号,因此不建议使用$ 。$ 接收输入参数,可以是简单类型,pojo,hashmap。如果接收到一个简单类型,则只有值可以用$ 写入。$ 接收pojo对象值,通过OGNL读取对象中的属性值,并通过属性获取对象属性值。属性。属性.3.10.4选择一个并选择列表选择一个表示查询一条记录进行映射。如果您可以使用选择一个,您可以使用选择列表(列表中只有一个对象)。选择列表意味着查询一个列表(多个记录)进行映射。如果使用选择列表查询多条记录,则不能使用选择一条。如果使用选择一个来报告错误:预期selectOne()将返回一个结果(或null),但发现: 4myatis和hibern
10、ate的本质区别和应用场景Hibernate:是一个标准的ORM框架(对象关系映射)。进入门槛相对较高。编写sql不需要任何程序。sql语句会自动生成。很难优化和修改sql语句。应用场景:适用于需求变化不大的中小型项目,如:后台管理系统、erp、orm、oa。Mybatis:重点是sql本身。程序员需要自己编写sql语句。修改和优化sql非常方便。Mybatis是一个不完整的ORM框架。尽管程序员自己编写sql,mybatis也可以实现映射(输入映射、输出映射)。应用场景:适用于需求变化较大的项目,如互联网项目。企业根据低成本、高回报的原则,根据项目团队的技术实力选择技术。4 .开发dao的m
11、ybatis方法4.1会话使用范围4.1.1 SqlSessionFactoryBuilder通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory使用SqLSsionFactoryBuilder作为工具类,而不是使用单个实例来管理SqLSsionFactoryBuilder。当您需要创建SqlSessionFactory时,您只需要新建一次。4.1.2 SqlSessionFactory通过SqLSsionFactory创建SqlSession,并使用单一模式来管理SqLSsionFactory(一旦创建了工厂,就使用一个实例)。将来,在我的bat
12、is和spring集成之后,sqlSessionFactory将由单例模式管理。4.1.3会话SqlSession是一个面向用户(程序员)的界面。SQL会话提供了许多操作数据库的方法:例如:选择一个(返回单个对象)、选择列表(返回单个或多个对象)等。SqlSession是线程不安全的,在SqlSesion实现类中除了有接口中的方法(操作数据库的方法)还有数据域属性。SqlSession最佳应用场合在方法体内,定义成局部变量使用。4.2原始刀开发方法(程序员需要写刀接口和刀实现类)4.2.1思路程序员需要写刀接口和刀实现类。需要向刀实现类中注入SqlSessionFactory,在方法体内通过S
13、qlSessionFactory创建SqlSession4.2.2刀接口4.2.3刀接口实现类公共类UserDaoImpl实现用户道/需要向刀实现类中注入SqlSessionFactory/这里通过构造方法注入私有sqlssionFactory;公共用户导入(SqLSissionFactory SqLSissionFactory)这个。SQLSsionFactory=SQLSsionFactory;覆盖公共用户查找用户标识(int id)引发异常SqLSsession=SqLSissionFactory。OpenSession();用户用户=SqL会话。选择一个(“test.findUserById”,id);/释放资源SQL会话。关闭();返回用户;覆盖公共无效插入用户(用户用户)引发异常SqLSsession=SqLSissionFactory。OpenSession();/执行插入操作SQL会话。插入(“测试。插入用户”,用户);/提交事务SQL会话。commit(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 节能减排事业长期责任书3篇
- 确认订购数量确认函6篇范本
- 环保实践:从我做起小学主题班会课件
- 健康生活:促进身心健康发展小学主题班会课件
- 确认邮件营销计划函(4篇范文)
- 营销策划活动效果评估模板
- 上班族时间管理技巧指导书
- 工业机器人控制系统维护与故障排除指南
- 环境保护责任承诺书范例6篇
- 活动参与者拥挤踩踏现场疏散活动主办方预案
- 衡阳县岣嵝峰林场招聘社区网格员考试试题附答案详解
- 视频监控系统技术规范书
- 2026云南昆明市国和勘察规划设计院有限公司招聘工作人员3人考试备考试题及答案解析
- 低碳城市智慧路灯节能改造升级方案
- 第二轮土地承包到期后再延长30年试点工作意见政策解读
- 2026年监考人员培训试题及答案
- 2026年上海市奉贤区高三二模数学试卷及答案解析
- 医院屋顶光伏施工造价预算方案模板
- 从创意到创业知到智慧树章节测试课后答案2024年秋湖南师范大学
- 被动语态游戏教育课件
- 火花源原子发射光谱分析课件
评论
0/150
提交评论