zoukankan      html  css  js  c++  java
  • 一、Mybatis基本入门

    1. 原始JDBC存在如下问题:

      ① 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能
      ② sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变java代码。
      ③ 查询操作时,需要手动将结果集中的数据手动封装到实体中。插入操作时,需要手动将实体的数据设置到sql语句的占位符位置
    上述问题给出的解决方案:

      ① 使用数据库连接池初始化连接资源
      ② 将sql语句抽取到xml配置文件中
      ③ 使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射

    2. Mybatis开发步骤:

      ①添加mybatis坐标依赖

      ②创建实体类及对应表

      ③编写映射文件xxxMapper.xml

      ④配置核心文件SqlMapConfig.xml

     1 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN“ "http://mybatis.org/dtd/mybatis-3-config.dtd">
     2 <configuration>
     3     <environments default="development">
     4         <environment id="development">
     5             <transactionManagertype="JDBC"/>
     6             <dataSourcetype="POOLED">
     7                 <property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///test"/>
     8                 <property name="username" value="root"/><property name="password" value="root"/>
     9             </dataSource>
    10         </environment>
    11     </environments>
    12     <mappers> <mapper resource="com/itheima/mapper/UserMapper.xml"/> </mappers>
    13 </configuration>

    测试代码:

     1 // 加载核心配置文件
     2 InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
     3 // 获得 sqlSession 工厂对象
     4 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
     5 // 获得 sqlSession 对象
     6 SqlSession sqlSession = sqlSessionFactory.openSession();
     7 // 执行 sql 语句
     8 List<User> userList = sqlSession.selectList("userMapper.findAll");
     9 // 打印结果
    10 System.out.println(userList);
    11 // 释放资源
    12 sqlSession.close();

    3. mybatis映射文件概述:

    4. Mybatis的增删改查操作:

    • 使用insert,delete,update,select标签
    • parameterType属性指定要插入的数据类型
    • SQL语句中使用#{实体属性名}方式引用实体的属性值
    • 插入操作使用的API是sqlSession.insert(“命名空间.id”,实体对象)
    • 操作涉及数据库数据变化,要使用sqlSession对象显示的提交事务,即sqlSession.commit()

    #{实体属性名}方式引用实体的属性值同样也用在update,delete

    例如:update user set username=#{username},password=#{password} where id=#{id}

  • 相关阅读:
    微博(MicroBlog)
    面试题网站目录
    html 打印代码,支持翻页
    C#日期格式化
    职位英语简称注解
    专业术语:闭包、网站优化 Gzip 服务器端文件压缩
    1,由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。
    JSON-JSON 百科
    api.js
    Android消息处理机制
  • 原文地址:https://www.cnblogs.com/elian91/p/15355946.html
Copyright © 2011-2022 走看看