书签 分享 收藏 举报 版权申诉 / 20
上传文档赚钱

类型《基于新信息技术的Java-EE应用开发实训》课件第十章.pptx

  • 上传人(卖家):momomo
  • 文档编号:7669667
  • 上传时间:2024-06-24
  • 格式:PPTX
  • 页数:20
  • 大小:127.12KB
  • 【下载声明】
    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(

    9、);finally session.close();第10章 MyBatis DAO开发10.3 Mapper接口开发方法第10章 MyBatis DAO开发10.3.1 实现原理Mapper接口开发方法只需要程序员编写Mapper接口(相当于DAO接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边DAO接口实现类方法。Mapper接口开发需要遵循以下规范:(1)Mapper.xml文件中的namespace与mapper接口的类路径相同。(2)Mapper接口方法名和Mapper.xml中定义的每个statement的id相同。(3)Mapper接口方法的

    10、输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同。(4)Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同。10.3.2 Mapper.xml(映射文件)定义Mapper映射文件UserMapper.xml(内容同Users.xml),需要将namespace的值修改为UserMapper接口路径。将UserMapper.xml放在classpath的mapper目录下。select*from user where id=#id select*from user where username li

    11、ke%$value%第10章 MyBatis DAO开发 select LAST_INSERT_ID()insert into user(username,birthday,sex,address)values(#username,#birthday,#sex,#address)10.3.3 Mapper.java(接口)/*用户管理Mapper*/第10章 MyBatis DAO开发Public interface UserMapper /根据用户id查询用户信息 public User findUserById(int id)throws Exception;/查询用户列表 public

    12、List findUserByUsername(String username)throws Exception;/添加用户信息 public void insertUser(User user)throws Exception;接口定义有如下特点:(1)Mapper接口方法名和Mapper.xml中定义的statement的id相同。(2)Mapper接口方法的输入参数类型和mapper.xml中定义的statement的parameterType的类型相同。(3)Mapper接口方法的输出参数类型和mapper.xml中定义的statement的resultType的类型相同。第10章 M

    13、yBatis DAO开发10.3.4 加载UserMapper.xml文件修改SqlMapConfig.xml文件:10.3.5 测试Public class UserMapperTest extends TestCase private SqlSessionFactory sqlSessionFactory;protected void setUp()throws Exception /MyBatis配置文件 String resource=sqlMapConfig.xml;第10章 MyBatis DAO开发 InputStream inputStream=Resources.getRes

    14、ourceAsStream(resource);/使用SqlSessionFactoryBuilder创建sessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);Public void testFindUserById()throws Exception /获取session SqlSession session=sqlSessionFactory.openSession();/获取Mapper接口的代理对象 UserMapper userMapper=session.getMappe

    15、r(UserMapper.class);/调用代理对象方法 User user=userMapper.findUserById(1);System.out.println(user);第10章 MyBatis DAO开发 /关闭session session.close();Test public void testFindUserByUsername()throws Exception SqlSession sqlSession=sqlSessionFactory.openSession();UserMapper userMapper=sqlSession.getMapper(UserMap

    16、per.class);List list=userMapper.findUserByUsername(张);System.out.println(list.size();Public void testInsertUser()throws Exception /获取session SqlSession session=sqlSessionFactory.openSession();第10章 MyBatis DAO开发 /获取Mapper接口的代理对象 UserMapper userMapper=session.getMapper(UserMapper.class);/要添加的数据 User user=new User();user.setUsername(张三);user.setBirthday(new Date();user.setSex(1);user.setAddress(北京市);/通过Mapper接口添加用户 userMapper.insertUser(user);/提交 mit();/关闭session session.close();

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《基于新信息技术的Java-EE应用开发实训》课件第十章.pptx
    链接地址:https://www.163wenku.com/p-7669667.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库