




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章 MyBatis入门 课程地位 G1:282 CBT HTMLLogic JavaC#/WinForms C Language JavaScriptSQL AdvanceJava OOP G2:368 XHTML .NET/OOP Servlet/JSP Web 2.0 NTC G3:432 ASP.NET/MVC Oracle PS/Flash C# Advance Enterprise lib WCF/Silverlight .NET PRTLAMP Enterprise Develop MyBatis Struts/MVC Web 2.0 NTC Hibernate/EJBSpring J2EE PRT J2EE PMP PRT: B/S B2C .NET PMP SQL Base ADO.NET PRT1:ADO.Net+WinForms +SQL C/S 本章内容 u持久层与持久化 u介绍MyBatis u使用MyBatis操作数据 本章目标 u理解持久层与持久化的概念 u了解MyBatis框架 u掌握使用MyBatis操作数据 持久层与持久化 u知识点回顾 三层分为哪三层?每一层的作用是什么? 持久层 u所谓“持久层”,是指在系统逻辑层面上,专注于实现数据持久化的一个 相对独立的领域(Domain) u一个完善的持久化层应该能达到以下目标: n代码的可重用性高,能完成所有数据库的访问操作 n可以支持多种数据库平台 n具有相对独立性,当持久层的实现发生变化时,不影响上层的实现 持久化 u狭义的理解,“持久化”指将域对象永久保存至数据库中 u广义的理解,“持久化”包括与数据库相关的各种操作 n保存:将域对象永久保存至数据库中 n更新:更新数据库中域对象的状态 n删除:从数据库中删除一个域对象 n加载:根据特定的OID,将一个域对象从数据库加载至内存 n查询:根据特定的查询条件,将符合查询条件的一个或多个域对象从数据 库加载至内存 为什么需要MyBatis (1)系统的部分或全部数据来自现有数据库,出于安全性的考虑,只为开 发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表 结构不予公开。 (2)开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数 据库层由存储过程实现(对于金融行业而言,工商银行、中国银行和交 通银行,都在开发规范中严格指定)。 (3)系统数据处理量巨大,性能要求极为苛刻,这通常意味着我们必须由 经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。 什么是MyBatis uMyBatis是一个运用于持久层的数据操作框架 uMyBatis是从iBatis升级而来 u使用MyBatis提供的ORM机制,业务逻辑层实现人员操作的是JAVA 对象,该层面与Hibernate机制中的相同。对于具体的数据库操作而 言,Hibernate会自动生成SQL并执行,而MyBatis要求开发人员具 体编写SQL语句。MyBatis在数据库移植性和SQL开发工作量上进行 了让步,从而提升了系统设计的灵活性,扩展了其自由空间。 MyBatis的优势 u支持ORM u支持动态SQL u外部化SQL语句 u封装SQL语句 MyBatis使用入门 u准备软件开发环境 nMyBatis的源代码、所需的jar文件以及学习文档可以在 /p/mybatis网站上下载,推荐下载mybatis-3.1.1- bundle.zip 文件/文件夹说明 mybatis- 3.1.1.jar mybatis的核心jar包 lib文件夹Lib文件夹中包含mybatis所 依赖的其他jar文件 mybatis- 3.1.1.pdf mybatis的用户指南 Mybatis-3.1.1 -javadoc.jar Mybatis的API文档 Mybatis-3.1.1 -sources.jar Mybatis的源代码 MyBatis使用入门 u准备数据 列名类型说明约束 USER_IDint用户 ID 主键标识列(自 动增长) USER_NAM E varchar 用户 名 不能为空 USER_PAS SWORD varchar 用户 密码 不能为空 USER_BIRT H date用户 生日 USER_ADD RESS varchar 用户 地址 USER_PHO NE varchar 用户 电话 USER_STAT US int用户 类型 0为禁用;1为 普通用户(默认 );2为管理员 使用mybatis操作数据库 u操作步骤 n创建项目-导入jar包 n创建mybatis配置文件 n创建实体类 n创建实体类对应的映射器及其配置文件 n操作数据 n测试操作 创建mybatis配置文件 u创建mybatis-config.xml文件 配置数据源 创建实体类 public class User implements Serializable private static final long serialVersionUID = 1L; /属性字段 private int userId; private String userName; private String userPassword; private Date userBirth; private String userAddress; private String userPhone; private int userStatus; /无参数的构造函数 /getter和setter 创建映射器及其配置文件 public interface UserMapper /新增用户 public void insertUser(User user); /根据用户名和密码查询用户 public User selectUserByNameAndPassword(User user); /查询所有的用户 public List selectAllUsers(); 创建映射器的配置文件 SQL语句 SQL语句 创建映射器的配置文件 unamespace表示该配置文件对于映射器(UserMapper)接口的完全 路径。 uinsert 映射插入语句 Id表示在命名空间中唯一的标识符,可以被用于引用该语句,与映射器接口 中的方法一致时,会在该方法中使用该语句。 parameterType表示将会传入该语句的参数类的完全限定名或别名。 useGeneratedKeys表示使用JDBC的getGeneratedKeys方法取出由数据库内 部生成的主键(实现标识列自动增长)。 u select 映射查询语句 Id表示在命名空间中唯一的标识符,可以被用于引用该语句,与映射器接口 中的方法一致时会在该方法中使用该语句。 parameterType表示将会传入该语句的参数类的完全限定名或别名。 resultType表示从这条语句中返回的期望类型的类的完全限定名或别名,如 果返回的是集合,则应是集合中包含元素的类型,而并非集合本身。 操作数据 u步骤 n读取并解析配置文件,创建SqlSessionFactory。 n从SqlSessionFactory中获取SqlSession对象。 n使用SqlSession对象操作数据。 n提交事务(回滚事务)。 n关闭SqlSession对象。 创建SqlSessionFactory /配置文件的路径(在src下) String resource = “mybatis-config.xml“; /读取配置文件 Reader reader = Resources.getResourceAsReader(resource); /创建SqlSessionFactoryBuilder对象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); /解析配置,构建SqlSessionFactory对象 SqlSessionFactory factory = builder.build(reader); 获取SqlSession对象 SqlSession sqlSession = factory.openSession(); SqlSession的方法 T selectOne(String statement, Object parameter) List selectList(String statement, Object parameter) Map selectMap(String statement, Object parameter, String mapKey) int insert(String statement, Object parameter) int update(String statement, Object parameter) int delete(String statement, Object parameter) 使用SqlSession对象操作数据 uSqlSession对象封装了对数据的各种增加、删除、修改和查询操作 User user = new User(“汤姆“, “tom“, new Date(), “湖北武汉“, , 1); sqlSession.insert(“insertUser“, user); u使用映射器接口(推荐) User user = new User(“汤姆“, “tom“, new Date(), “湖北武汉“, , 1); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.insertUser(user ); 事务处理 u提交事务(回滚事务)。 sqlSmit(); (sqlSession.rollback();) u关闭SqlSession对象。 sqlSession.close(); 测试数据 创建工具类: public class MyBatisUtil private final static SqlSessionFactory sqlSessionFactory; static String resource = “mybatis-config.xml“; Reader reader = null; try reader = Resources.getResourceAsReader(resource); catch (IOException e) System.out.println(e.getMessage(); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); public static SqlSessionFactory getSqlSessionFactory() return sqlSessionFactory; 增加用户 Test public void testInsertUser() SqlSessionFactory factory = MyBatisUtil.getSqlSessionFactory(); SqlSession sqlSession = factory.openSession(); /构建SqlSession User user = new User(“杰克“, “jack“, new Date(), “ 湖北省武汉光谷xx号“, , 1); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.insertUser(user); /插入用户 sqlSmit(); /提交 sqlSession.close(); 查询用户 Test public void testSelectUsers() SqlSessionFactory factory = MyBatisUtil.getSqlSessionFactory(); SqlSession sqlSession = factory.openSession(); /构建SqlSession UserMapper userMapper = sqlSession.getMapper(UserMapper.class); /查询所有用户信息 List users = userMapper.selectAllUsers(); /输出结果 System.out.println(“所有用户的名字是:“); for (User user : users) System.out.println(user.getUserId()+“t“+user.getUserName(); sqlSession.cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考复习之文言文实词汇编
- 机械顶管专项施工方案
- 2026届贵州省施秉县九年级化学第一学期期中统考模拟试题含解析
- 2026届内蒙古开鲁县联考英语九上期末质量检测试题含解析
- 健康中国2030蓝图
- 2026届安徽省亳州市亳州市第一中学化学九年级第一学期期末教学质量检测模拟试题含解析
- 云南省陆良县2026届九年级化学第一学期期中复习检测试题含解析
- 项目总监工作总结
- 房屋植筋施工方案范文
- 北京市顺义区第一中学2025-2026学年高三上学期9月月考语文试题(含答案)
- (完整)注册安全工程师考试题库(含答案)
- 高考作文素材积累与写法总结27 自知与知人作文审题指导及素材积累
- 电子政务概论-形考任务5(在线测试权重20%)-国开-参考资料
- 2024年贵州省贵阳市中考生物地理合卷试题(含答案逐题解析)
- DNDC模型使用手册
- DL∕T 2487-2022 电力燃煤机械名词术语
- 起重机械生产单位质量安全总监-特种设备考试题库
- JBT 9189-2016 水基材料防锈试验方法 铸铁屑试验
- JJF 1064-2024 坐标测量机校准规范
- 《春江花月夜》省公开课金奖全国赛课一等奖微课获奖课件
- 人音版小学六年级上册音乐教案(本)
评论
0/150
提交评论