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

赌博网站做代理微信群卖房卡/有创意的营销策划案例

赌博网站做代理微信群卖房卡,有创意的营销策划案例,2024年春节还有疫情吗,平面设计零基础难学吗文章目录Mybatis核心文件概述MyBatis常用配置解析Mybatis核心配置文件常用配置MybatisAPI概述Mybatis的dao层开发Mybatis基于接口代理方式的内部执行原理Mybatis核心文件概述 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。配置文档的顶层结构如下&#…

文章目录

    • Mybatis核心文件概述
    • MyBatis常用配置解析
    • Mybatis核心配置文件常用配置
    • MybatisAPI概述
    • Mybatis的dao层开发
    • Mybatis基于接口代理方式的内部执行原理

Mybatis核心文件概述

  1. MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。
  2. 配置文档的顶层结构如下:

这里是引用

在这里插入图片描述

MyBatis常用配置解析

  1. environments标签:数据库环境的配置,支持多环境配置

    <!--环境配置-->
    <environments default="development"><!--使用MySQL环境--><environment id="development"><!--使用JDBC类型事务管理器--><transactionManager type="JDBC"></transactionManager><!--使用连接池--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment>
    </environments>
    
    1. 事务管理器(transactionManager)类型有两种:
      1. JDBC:这个配置就是直接使用了JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
      2. MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期。
    2. 数据源(dataSource)常用类型有三种:
      1. UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。
      2. POOLED:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来。
      3. JNDI :这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用
  2. properties标签:通常将数据源的配置信息单独抽取成一个properties文件,该标签可以加载额外配置的properties:

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql:///数据库名
    jdbc.username=用户名
    jdbc.password=密码
    
  3. typeAliases标签:使用typeAliases标签可以为使用别名。

    <!--设置别名-->
    <typeAliases><!--方式一:给单个实体起别名--><!-- <typeAlias type="com.code.entity.User" alias="user"></typeAlias>--><!--方式二:批量起别名 别名就是类名,且不区分大小写--><package name="com.code.entity"/>
    </typeAliases>
    
  4. mappers标签:该标签的作用是加载映射的,加载方式有如下几种:

1. 使用相对于类路径的资源引用,例如:
<mappers><mapper resource="mapper/UserMapper.xml"></mapper>
</mappers>
2. 使用完全限定资源定位符(URL),例如:
<mapper url="file:///var/mappers/userMapper.xml"/>

Mybatis核心配置文件常用配置

  1. properties标签:该标签可以加载外部的properties文件

    <properties resource="jdbc.properties"></properties>
    
  2. typeAliases标签:设置类型别名

    <typeAlias type="com.lagou.domain.User" alias="user"></typeAlias>
    
  3. mappers标签:加载映射配置

    <mapper resource="com/lagou/mapper/UserMapping.xml"></mapper>
    
  4. environments标签:数据源环境配置

<environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment>
</environments>

MybatisAPI概述

SqlSession工厂构建器SqlSessionFactoryBuilder

  1. 常用API:SqlSessionFactory build(InputStream inputStream),通过加载mybatis的核心文件的输入流的形式构建一个SqlSessionFactory对象

    // 加载核心配置文件
    InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
    // 获取SqlSessionFactory工厂对象
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
    // 获取SqlSession会话对象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    
  2. Resources 工具类,这个类在 org.apache.ibatis.io 包中。Resources 类可以从类路径下、文件系统或一个 web URL 中加载资源文件。

SqlSession工厂对象SqlSessionFactory

  1. SqlSessionFactory 有多个个方法创建SqlSession 实例。常用的有如下两个:
方法描述
openSession()会默认开启一个事务,但是事务不会自动提交,需要手动提交该事务,提交后,数据操作才会持久化到数据库中
openSession(boolean autoCommit)参数为是否自动提交,如果设置为true,那么不需要手动提交事务

SqlSession会话对象

  1. SqlSession 实例在 MyBatis 中是非常强大的一个类。在这里可以看到所有执行语句、提交或回滚事务和获取映射器实例的方法。

  2. 执行语句的方法主要有:

    <T> T selectOne(String statement, Object parameter)
    <E> List<E> selectList(String statement, Object parameter)
    int insert(String statement, Object parameter)
    int update(String statement, Object parameter)
    int delete(String statement, Object parameter)
    
  3. 操作事务的方法主要有:

    void commit()
    void rollback()
    

Mybatis的dao层开发

传统开发方式

  1. UserMapper接口

    public interface UserMapper {// 查询所有用户信息public List<User> findAll() throws Exception;
    }
    
  2. UserMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="UserMapper"><!--查询所有--><select id="findAll" resultType="user">select * from user</select>
    </mapper>
    
  3. UserMapper实现

    public class UserMapperImpl implements UserMapper {@Overridepublic List<User> findAll() throws Exception {// 加载配置文件InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");// 获取SqlSessionFactory工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);// 获取SqlSe会话对象SqlSession sqlSession = sqlSessionFactory.openSession();// 执行sqlList<User> list = sqlSession.selectList("UserMapper.findAll");// 释放资源sqlSession.close();return list;}
    }
    

代理开发方式

  1. 采用 Mybatis 的基于接口代理方式实现 持久层 的开发

  2. 基于接口代理方式只需要编写 Mapper 接口,Mybatis 框架会为我们动态生成实现类的对象。
    在这里插入图片描述

  3. 基于接口代理方式要求遵循一定的规范:

    1. Mapper.xml映射文件中的namespace与mapper接口的全限定名相同
    2. Mapper接口方法名和Mapper.xml映射文件中定义的每个statement的id相同
    3. Mapper接口方法的输入参数类型和mapper.xml映射文件中定义的每个sql的parameterType的类型相同
    4. Mapper接口方法的输出参数类型和mapper.xml映射文件中定义的每个sql的resultType的类型相同
  4. Mapper 接口开发方法只需要编写Mapper 接口(相当于Dao 接口),由Mybatis 框架根据接口
    定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。

UserMapper接口

public interface UserMapper {public List<User> findAll() throws Exception;
}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.code.mapper.UserMapper"><!--查询所有--><select id="findAll" resultType="user">select * from user</select>
</mapper>

测试类

@Test
public void testFindAll() throws Exception {// 加载核心配置文件InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");// 获得SqlSessionFactory工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);// 获得SqlSession会话对象SqlSession sqlSession = sqlSessionFactory.openSession();// 获得Mapper代理对象UserMapper userMapper = sqlSession.getMapper(UserMapper.class);// 执行查询List<User> list = userMapper.findAll();for (User user : list) {System.out.println(user);}// 释放资源sqlSession.close();
}

Mybatis基于接口代理方式的内部执行原理

  1. 持久层现在只有一个接口,而接口是不实际干活的,通过Mybatis通过追踪源码可知,我们使用的mapper实际上是一个代理对象,是由MapperProxy代理产生的。在这里插入图片描述
  2. 追踪MapperProxy的invoke方法会发现,其最终调用了mapperMethod.execute(sqlSession, args)在这里插入图片描述
  3. 进入execute方法会发现,最终工作的还是sqlSession

在这里插入图片描述

http://www.jmfq.cn/news/5297743.html

相关文章:

  • wordpress建站方法/seo顾问服务福建
  • 网页设计实验报告步骤/appstore关键词优化
  • 郑州电商公司排名前十有哪些/seo常用方法
  • 沈阳制作网站的公司有哪些/如何建立个人网址
  • 陕西省建设教育培训中心网站/云盘搜索
  • 苏州网站建设设计制作公司怎么样/外包平台
  • 广州 餐饮 网站建设/百度文库账号登录入口
  • 企业电子商务网站建设规划方案/seo网站优化教程
  • 梅州市网站制作/互联网营销师
  • 做网站在哪里做/电商引流推广方法
  • 如何做自己的网站系统/种子搜索器
  • 哈尔滨网站托管/html家乡网站设计
  • php做网站有哪些优点/小红书seo优化
  • 西宁网站建设公司排行/购物网站有哪些
  • 用jsp做网站的体会/企业营销模式
  • 注册网站邮箱发送的验证网页无法打开/最新百度新闻
  • 男和女做暖暖网站/网络营销方式有哪些?
  • 做网站最主要是什么/芜湖seo
  • 网站制作公司如何运作/国内新闻大事20条简短
  • 西班牙语网站建设/关键词查找网站
  • 怎样做网站教程/服装市场调研报告
  • vr网站开发技术/seo公司哪家好用
  • 西安市建设委员会的网站/广州谷歌推广
  • 科技节手抄报/百度seo培训班
  • php 网站缩略图/丹东网站seo
  • 网站地图对网站有什么意义/微信推广费用一般多少
  • seo做的比较牛的公司/seo公司培训课程
  • 建筑工程网站大全/建站软件
  • 温州市网站建设公司/sem竞价托管代运营
  • 企业服务 免费网站建设/昆明网络营销