《基于新信息技术的Java-EE应用开发实训》课件第十章.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《基于新信息技术的Java-EE应用开发实训》课件第十章.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于新信息技术的Java-EE应用开发实训 基于 信息技术 Java EE 应用 开发 课件 第十
- 资源描述:
-
1、第10章 MyBatis DAO开发10.1 SqlSession的使用范围10.2 原始DAO开发方法10.3 Mapper接口开发方法第10章 MyBatis DAO开发10.1 SqlSession的使用范围第10章 MyBatis DAO开发10.1.1 SqlSessionFactoryBuilderSqlSessionFactoryBuilder用于创建SqlSessionFacoty,一旦SqlSessionFacoty创建完成就不需要SqlSessionFactoryBuilder了。此处可将SqlSessionFactoryBuilder当成一个工具类使用,其最佳使用范围是方
2、法范围即方法体内局部变量。10.1.2 SqlSessionFactorySqlSessionFactory是一个接口,接口中定义了openSession的不同重载方法,SqlSessionFactory的最佳使用范围是整个应用运行期间,一旦创建后可以重复使用,通常以单例模式管理SqlSessionFactory。10.1.3 SqlSessionSqlSession是一个面向用户的接口,定义了数据库操作,默认使用DefaultSqlSession实现类。执行过程如下:加载数据源等配置信息。Environment environment=configuration.getEnvironment
3、();创建数据库链接。第10章 MyBatis DAO开发 创建事务对象。创建Executor,SqlSession所有操作都是通过Executor完成。MyBatis源码如下:if(ExecutorType.BATCH=executorType)executor=newBatchExecutor(this,transaction);elseif(ExecutorType.REUSE=executorType)executor=new ReuseExecutor(this,transaction);else executor=new SimpleExecutor(this,transactio
4、n);if(cacheEnabled)executor=new CachingExecutor(executor,autoCommit);SqlSession的实现类即DefaultSqlSession,此对象中对操作数据库实质上用的是Executor。第10章 MyBatis DAO开发结论:每个线程都应该有它自己的SqlSession实例。SqlSession的实例不能共享使用,它也是线程不安全的。因此最佳的范围是请求或方法范围。绝对不能将SqlSession实例的引用放在一个类的静态字段或实例字段中。打开一个 SqlSession;使用完毕就要关闭它。通常把这个关闭操作放到 finall
5、y 块中以确保每次都能执行关闭。如下:SqlSession session=sqlSessionFactory.openSession();try /do work finally session.close();第10章 MyBatis DAO开发10.2 原始DAO开发方法第10章 MyBatis DAO开发10.2.1 映射文件select*from user where id=#id第10章 MyBatis DAO开发 select LAST_INSERT_ID()insert into user(username,birthday,sex,address)values(#userna
6、me,#birthday,#sex,#address)10.2.2 DAO接口Public interface UserDao public User getUserById(int id)throws Exception;public void insertUser(User user)throws Exception;Public class UserDaoImpl implements UserDao 第10章 MyBatis DAO开发 /注入SqlSessionFactory public UserDaoImpl(SqlSessionFactory sqlSessionFactory
7、)this.setSqlSessionFactory(sqlSessionFactory);private SqlSessionFactory sqlSessionFactory;Override public User getUserById(int id)throws Exception SqlSession session=sqlSessionFactory.openSession();User user=null;try /通过SqlSession调用selectOne方法获取一条结果集 /参数1:指定定义的statement的id,参数2:指定向statement中传递的参数 第10
8、章 MyBatis DAO开发 user=session.selectOne(test.findUserById,1);System.out.println(user);finally session.close();return user;Override Public void insertUser(User user)throws Exception SqlSession sqlSession=sqlSessionFactory.openSession();try sqlSession.insert(insertUser,user);第10章 MyBatis DAO开发 sqlSmit(
展开阅读全文