当前位置: 首页 > news >正文

开封网站建设中心宣武富阳网站建设

开封网站建设中心,宣武富阳网站建设,如何查看一个网站的所有二级域名,国内的优秀设计网站文章目录前言一、mybatis工作原理1.1 流程图1.2 步骤解析1.3 代码实现前言 本文记录 Mybatis 的工作原理#xff0c;做到知识梳理总结的作用。 一、mybatis工作原理 Mybatis 的总体工作原理流程图如下图所示 1.1 流程图 1.2 步骤解析 Mybatis 框架在工作时大致经过8个步骤… 文章目录前言一、mybatis工作原理1.1 流程图1.2 步骤解析1.3 代码实现前言 本文记录 Mybatis 的工作原理做到知识梳理总结的作用。 一、mybatis工作原理 Mybatis 的总体工作原理流程图如下图所示 1.1 流程图 1.2 步骤解析 Mybatis 框架在工作时大致经过8个步骤如下 读取 Mybatis 配置文件 mybatis-config.xml该配置文件作为 Mybatis 的全局配置文件配置了 Mybatis 的运行环境和数据库连接等信息。 加载映射文件 mapper.xml该文件中配置了操作数据库的 sql 语句需要在mybatis-config.xml中加载才能执行。mybatis-config.xml 可以加载多个配置文件每个配置文件对应数据库中的一张表。 通过 SqlSessionFactoryBuilder 对象的 build() 方法构建会话工厂且 build() 方法参数为 mybatis-config.xml 配置文件的输入流通过 Mybatis 的环境等配置信息构建会话工厂 SqlSessionFactory - 工厂设计模式。 //build方法源码将mybatis-config.xml 配置文件输入流解析成xml配置对象 XMLConfigBuilder parser new XMLConfigBuilder(inputStream, environment, properties);创建 SqlSession 对象由会话工厂创建 SqlSession 对象该对象中包含了执行 SQL 的所有方法。 Mybatis 的底层定义了一个 Executor 接口来操作数据库它会根据 SqlSession 传递的参数动态的生成需要执行的 SQL 语句同时负责查询缓存的维护。 在 Executor 接口的方法中包含一个 MappedStatement 类型的参数该参数是对映射信息的封装用于存储要映射的 SQL 语句的 id、参数等。Mapper.xml 文件中的一个SQL对应一个 MappedStatement 对象SQL 的 id 即是 MappedStatement 的 id。 输入映射参数在执行方法时 MappedStatement 对象会对用户执行 SQL 语句的输入参数进行定义可以定义为 Map、List 类型、基本类型和 POJO 类型Executor 执行器会通过 MappedStatement 对象在执行 SQL 前将输入的 java 对象映射到 SQL 语句中。这里对输入参数的映射过程就类似于 JDBC 编程中对 preparedStatement 对象设置参数的过程。 输出结果映射在数据库中执行完SQL语句后 MappedStatement 对象会对 SQL 执行输出的结果进行定义可以定义为 Map、List 类型、基本类型、POJO类型Executor 执行器会通过 MappedStatement 对象在执行 SQL 语句后将输出结果映射到 java 对象中。这种将输出结果映射到 java 对象的过程就类似于 JDBC 编程中对结果的解析处理过程。 1.3 代码实现 mybatis 数据库的 user 表数据 Mybatis 的 mybatis-config.xml 配置文件 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtdconfigurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/mybatis?useSSLfalseamp;useUnicodefalseamp;characterEncodingutf8;serverTimezoneGMT%2B8/property nameusername valueroot/property namepassword valueroot//dataSource/environment/environments!--每一个Mapper.xml都需要在mybatis核心配置文件中注册--mappers!--resource要用 /--mapper resourcecom/kuang/dao/UserMapper.xml//mappers /configurationMybatisUtils 获取 sqlSession 对象工具类 public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory;static{try {//访问mybatis 读取User数据//mybatis全局配置文件名定义String resource mybatis-config.xml;//读取这个resource表示的文件并将其转化为输入流InputStream inputStream Resources.getResourceAsStream(resource);//sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}/***既然有了SqlSessionFactory顾名思义,我们可以从其中获得SqlSession的实例了* Session完全包含了面向数据库执行sql命令的所有方法*/public static SqlSession getSqlSession(){return sqlSessionFactory.openSession();} }UserMapper 操作数据库的方法定义 public interface UserMapper{/***查询全部用户*/ListUser getUserList();/***根据id查询用户 传递参数id*/User getUserById(int id); } UserMapper.xml 操作数据库的 SQL 语句 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.kuang.dao.UserMapper !-- id就是UserMapper中的方法名 resultType sql语句的返回值类型 parameterType参数类型--select idgetUserList resultTypecom.kuang.pojo.Userselect *from mybatis.user;/selectselect idgetUserById parameterTypeint resultTypecom.kuang.pojo.Userselect *from mybatis.user where id #{id};/select /mapper 获取所有数据单元测试 Test public void test() {//获得SqlSession对象SqlSession sqlSession MybatisUtils.getSqlSession();try{//方式一获得getMapperUserMapper userDao sqlSession.getMapper(UserMapper.class);ListUser userList userDao.getUserList();for (User user : userList) {System.out.println(user);}} catch (Exception e) {e.printStackTrace();}finally{//关闭sqlsqlSession.close();} }测试结果 根据 id 获取用户数据单元测试 Test public void getUserById(){//获得SqlSession对象SqlSession sqlSession MybatisUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);User user mapper.getUserById(3);System.out.println(user);//关闭sqlsqlSession.close(); }测试结果
http://www.dnsts.com.cn/news/74813.html

相关文章:

  • 电商网站开发开题报告网站和网络有什么区别
  • 宿迁做网站需要多少钱如何做网络推广优化
  • 建设全球购多用户商城网站中国国家人事人才培训网
  • 邗江建设局网站谷歌浏览器网页版
  • 企业建站用什么主机必应网站提交入口
  • 不花钱的做网站wordpress数据卡
  • 部门网站建设存在的问题网站首页做了一下调整会被k吗
  • 合肥做网站的网络公司古代中国建筑网站
  • 旅游网站ppt应做的内容下载应用
  • 5000元网站seo推广百度网站上做推广受骗
  • 优秀网站设计 pdf线上推广话术
  • 网站建设收费标准报价站长工具ip地址查询域名
  • 我的文档上传到网站 做链接手机网站特效
  • 城北区工程建设信息网站买个网页多少钱
  • 交易类网站做支付宝功能做推广网站哪家好
  • app需要网站有哪些二级域名查询网站
  • 建网站找兴田德润咸阳网站建设
  • 滕州网站建设招聘wordpress静态网站博客
  • 网站备案多久可以注销网站做缓存
  • 沧州网站建设优化公司孵化器网站建设方案
  • 网站建设 软件开发的公司哪家好建设部的网站首页
  • 网站内容页显示不出来的服务平台app
  • 营销网站占用多少m空间泰州seo网站推广
  • 大城县有做网站的吗如何做网页游戏
  • 网站的建设与规划方案营销方案包括哪些内容
  • 网站商城注意事项国外最新设计产品
  • 天猫折扣店网站建设产品设计方案模板范文
  • 网站建设phpcms潍坊seo
  • 如何dns解析网站html做旅游网站
  • 保定网站建设公司排名wordpress主题在哪个文件夹