欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    mybatis从入门到精通.docx

    • 资源ID:1762048       资源大小:349.72KB        全文页数:25页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    mybatis从入门到精通.docx

    1、mybatis从入门到精通1、对原生态的jdbc程序问题总结 1.1 jdbc程序:使用jdbc查询mysql数据库中用户表的记录 1.2 问题: 1)数据库连接使用时创建、不使用时就释放:对数据库进行频繁的连接的创建和释放,造成数据库资源浪费,影响数据库性能-使用数据库连接池管理数据库连接 2)将sql语句硬编码到java代码中,如果sql语句修改,需要重新编译java代码,不利于系统维护-将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译 3)向prepareStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护-

    2、将sql语句及占位符和参数全部配置在xml文件中 4)从resultSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护-将结果集自动映射成java对象2、mybatis框架原理 2.1 mybatis是什么? mybatis是一个持久层框架,是apache下的顶级项目 github下: mybatis让程序员将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足sql需要的sql语句 mybatis可以将向preparestatement输入的参数自动进行输入映射,将查询结果集灵活映射成java对象(输出映射)。 2.2 mybatis框架 3、

    3、mybatis入门程序 3.1 需求 根据主键查询用户信息 根据用户名模糊查询用户信息 怎删改查. 3.2 mybati运行环境(jar包):从 下载 lib下:依赖包 mybatis-3.4.1.jar:核心包 3.3 log4j.properties#Global logging configuration log4j.rootLogger=ERROR, stdout #MyBatis logging configuration.log4j.logger.org.mybatis.example.BlogMapper=TRACE #Console output.log4j.appender.

    4、stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p%t-%m%n 3.4 工程目录结构 3.5 根据用户id查询用户信息、通过用户名模糊查询用户信息 3.5.1 编写映射文件(包括对应的实体类:User.java) 映射文件命名:User.xml(原始的ibatis命名方式),mapper代理的映射文件名称叫做XXXMapper.xml SELECT

    5、* FROM USER WHERE uid=#id SELECT * FROM USER WHERE name LIKE %$value% 3.5.2 将映射文件加载到SqlMapConfig配置文件中 3.5.3 程序编写Test publicvoid findUserByIdTest()throwsIOException / mybatis配置文件 String resource =SqlMapConfig.xml; InputStream input =Resources.getResourceAsStream(resource); / 创建会话工厂 SqlSessionFactory

    6、sqlSessionFactory =newSqlSessionFactoryBuilder() .build(input); / 通过工厂得到SqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); / 通过SqlSession操作数据库 User user = sqlSession.selectOne(test.findUserById,23); System.out.println(user.getName(); / 释放资源 sqlSession.close(); / 根据name查询用户信息,得到一条记录的

    7、结果 Test publicvoid findUserByNameTest()throwsIOException / mybatis配置文件 String resource =SqlMapConfig.xml; InputStream input =Resources.getResourceAsStream(resource); / 创建会话工厂 SqlSessionFactory sqlSessionFactory =newSqlSessionFactoryBuilder() .build(input); / 通过工厂得到SqlSession SqlSession sqlSession =

    8、sqlSessionFactory.openSession(); / 通过SqlSession操作数据库 List list = sqlSession.selectList(test.findUserByName,李); System.out.println(list.size(); / 释放资源 sqlSession.close(); 3.6 插入用户信息 3.6.1 User.xml映射文件: insert into user(username,password) value(#username,#password) 3.6.2 测试代码: Test publicvoid insertUs

    9、erTest()throwsIOException / mybatis配置文件 String resource =SqlMapConfig.xml; InputStream input =Resources.getResourceAsStream(resource); / 创建会话工厂 SqlSessionFactory sqlSessionFactory =newSqlSessionFactoryBuilder() .build(input); / 通过工厂得到SqlSession SqlSession sqlSession = sqlSessionFactory.openSession()

    10、; / 通过SqlSession操作数据库 User user =newUser(); user.setUsername(ll); user.setPassword(123456); sqlSession.insert(test.insertUser,user); /提交事务 sqlSmit(); / 释放资源 sqlSession.close(); 3.7 自增主键返回 mysql自增主键,执行insert提交之前自动生成一个自增主键。 通过mysql函数获取到刚刚插入的记录的自增主键last_insert_id() ,是在insert之后调用此函数 3.7.1 User.xml映射文件配置

    11、: SELECT LAST_INSERT_ID() insert into user(username,password) value(#username,#password) 3.7.2 程序代码中直接获取 Test publicvoid insertUserTest()throwsIOException / mybatis配置文件 String resource =SqlMapConfig.xml; InputStream input =Resources.getResourceAsStream(resource); / 创建会话工厂 SqlSessionFactory sqlSessio

    12、nFactory =newSqlSessionFactoryBuilder() .build(input); / 通过工厂得到SqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); / 通过SqlSession操作数据库 User user =newUser(); user.setUsername(ll); user.setPassword(123456); sqlSession.insert(test.insertUser,user); /提交事务 sqlSmit(); System.out.println(us

    13、er.getUid(); / 释放资源 sqlSession.close(); 3.8 非自增主键的返回 使用mysql的uuid()函数生成主键,需要修改表中uid字段类型为string,长度为35 执行的思路: 先通过uuid()查询到主键,将主键输入到sql语句中 执行uuid语句的顺序相对于insert语句之前 SELECT uuid() insert into user(uid,username,password) value(#uid,#username,#password) 3.9 删除和更新用户 delete from user where uid =#id update us

    14、er set username=#username,password=#password where uid=#uid 3.10 #和$ 3.11 mybatis和hibernate的区别 hibernate:是一个标准的ORM框架(对象关系映射)。不需要写sql,都是自动生成的。对sql语句进行优化、修改比较困难 适用于需求变化不多的中小型项目,比如:后台管理项目 mybatis:专注是sql本身,在映射文件中需要程序员自己编写sql语句,优化比较方便。mybatis是一个不完全的ORm框架;虽然程序员自己写sql,也可以实现映射(输入、输出映射)。 适用于需求变化较多的项目,比如:互联网项

    15、目。4、mybatis开发dao两种方法: 1)原始dao开发方法(程序需要编写dao接口和dao实现类) 2)mybatis的mapper接口(相当于dao接口)代理开发方法 4.1 SqlSession使用范围 / mybatis配置文件String resource =SqlMapConfig.xml;InputStream input =Resources.getResourceAsStream(resource);/ 创建会话工厂SqlSessionFactory sqlSessionFactory =newSqlSessionFactoryBuilder().build(input

    16、);/ 通过工厂得到SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession(); 4.1.1 通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory 4.1.2 通过SqlSessionFactory创建SqlSession,使用单例模式管理sqlsessionFactory 4.1.3 sqlSession是一个面向用户的接口:SqlSession中提供了很多操作数据库的方法;是线程不安全的;Sqlsession最佳适用场合在方法体内,定义成局部变量使用。 4.2 原始dao的

    17、开发方法(程序员需要写dao接口和dao实现类) 4.2.1 程序员需要向dao实现类中注入SqlSessionFactory UserDao接口:定义方法(抛异常) UserDaoImpl类:实现接口UserDao,并通过构造函数的方法向UserDaoImpl类注入SqlSessionFactory; UserDaoImplTest类:创建SqlSessionFactory实例,在创建UserDao对象 4.2.2 总结原始dao开发问题 1)dao接口实现类方法中存在大量模板代码,设想能否将这些代码提取出来,大大减少程序员的工作量 2)调用sqlSession的方法时将statement的

    18、id硬编码了 3)调用sqlSession的方法时传入的变量,由于sqlSession方法使用泛型,即使变量传入错误,在编译阶段也不会报错 4.3 mapper代理方法(程序员只需要mapper接口相当于dao接口) 思路: 4.3.1 程序员还需要编写mapper.xml映射文件 4.3.2 程序员编写mapper.java接口需要遵循一些开发规范,mtbatis可以自动生成mapper接口实现类代理对象 开发规范: 1)在mapper.xml中namespace等于mapper接口地址 2)mapper.java接口中的方法名和mapper.xml中statement的id一致 3)map

    19、per.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致 4)mapper.java接口中的方法返回值的类型和mapper.xml中statement的resultType指定的类型一致/ 根据用户id查询用户信息 publicUser findUserById(int uid)throwsException; SELECT * FROM USER WHERE uid=#id 总结:以上开发规范主要对下边的代码进行统一生成, User user = sqlSession.selectOne(test.findUserById, uid); 4.3.4 最后还要将mapper.xml映射文件添加到SqlMapConfig.xml配置文件中 5、mybatis配置文件SqlMapConfig.xmlmybatis的全局配置文件SqlMapConfig.xml。配置内容如下: propert


    注意事项

    本文(mybatis从入门到精通.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开