MyBatis

MyBatis学习理解

本小妞迷上赌 提交于 2020-03-01 21:21:43
数据库操作无非就是通过sql语句增删改查(或者复杂的增删改查) 通过Mapper接口(或称为Dao)表述需要什么功能,在接口对应的xml文件中给出与功能相对应的sql语句,再将xml文件与接口类绑定 然后将所有的xml文件注册到mybatis-config.xml配置文件中(同时在该配置文件中完成JDBC连接数据库的配置,在整合Spring之后,这些配置就交由Spring完成) 创建一个MybatisUtils工具类,在其中通过inputStream读取该配置文件,通过SqlSessionFactoryBuilder()创建SqlSessionFactory工厂,将所有的对数据库的操作放到SqlSessionFactory工厂中 需要时再从SqlSessionFactory工厂中拿出一个SqlSession(Sql会话),来对数据库进行操作(需要注意,SqlSession会默认开启事务管理,进行完数据库操作之后要commit提交事务),用完就close。 另外,数据库中的数据在项目中以POJO的形式展现。 实际上,SqlSession不会直接执行sql语句,而是委托Executor执行,SqlSession类似于JDBC的Connection。 来源: CSDN 作者: L123_0 链接: https://blog.csdn.net/L123_0/article/details

作为一名程序员找到一份java的工作需要学习哪些知识?

若如初见. 提交于 2020-03-01 20:50:31
首先是Javase作为Java最基本的学习内容,不在多说。 然后是掌握JavaScript的基本原理,因为做Java编程开发必须学会JavaScript,用到JavaScript非常多,但是现在很多公司是不用去写原生的JavaScript,但是如果你想成为一个厉害的Java开发者,JavaScript必须从理论到实际操作中都要非常得心应手。 现在公司是必须要求会用框架的,所以取代JavaScript的就是jQuery,这是一个非常简易的框架,学jQuery的时候你就会觉得它比JavaScript好用的多。所以jQuery是你必须掌握的。 还有必须学一些框架,比如SpringMVC、Spring、Mybatis、Struts、Hibernate等等,这些就会难理解一些,但是公司是需要要求你会框架的,目前国内的公司应用SSH比较多,建议至少学三个框架,这是找到工作的基本需求。 数据库技术是Java工作者必须掌握的技能常用就是Mysql。 Javaweb的内容还有html、css、jsp、Servlet等技术,这些都是现在找Java开发必须掌握的东西。 第一阶段:三年 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发。我们知道如何团队协作、如何使用项目管理工具

spring-mybatis与mybatis区别

允我心安 提交于 2020-03-01 20:22:14
1,spring-mybatis一级缓存失效,因为是sqlsesstionTemplate,其使用了一个代理proxysession,每次请求都会关闭session; spring-mybatis扩展了一个类sqlsessiontemplate,这个类在spring容器启动时被注入给mapper, 这个类替代了原来的mybatis的DefaultSqlSession,sqlsessiontemplate的所有查询并不直接查询,而是经过一个代理对象,代理对象增加了查询方法,主要是每次关闭了session public SqlSessionTemplate(SqlSessionFactory sqlSessionFactory, ExecutorType executorType, PersistenceExceptionTranslator exceptionTranslator) { Assert.notNull(sqlSessionFactory, "Property 'sqlSessionFactory' is required"); Assert.notNull(executorType, "Property 'executorType' is required"); this.sqlSessionFactory = sqlSessionFactory; this

IDEA下mybatis逆向工程

喜你入骨 提交于 2020-03-01 16:47:14
pom文件下引入的插件 <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <configurationFile>${basedir}/src/main/resources/generatorConfig.xml </configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> <!--这里数据版本要和你引入的一致--> </dependency> </dependencies> </plugin> </plugins> resources下的 generatorConfig.xml <?xml version="1.0" encoding=

mybatis 一级缓存 二级缓存

筅森魡賤 提交于 2020-03-01 12:29:27
1.一级缓存 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。 Mybatis默认开启一级缓存。 一级缓存的作用域是同一个SqlSession,在同一个sqlSession中两次执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查询效率。当一个sqlSession结束后该sqlSession中的一级缓存也就不存在了。 @Test public void testCache1() throws Exception{ SqlSessionsqlSession = sqlSessionFactory.openSession();//创建代理对象 UserMapperuserMapper = sqlSession.getMapper(UserMapper.class); //下边查询使用一个SqlSession //第一次发起请求,查询id为1的用户 Useruser1 = userMapper.findUserById(1); System.out.println(user1); //

MyBatis配置文件(七)--environments运行环境

大兔子大兔子 提交于 2020-03-01 12:26:02
一、environments配置信息: environments的作用是用来配置数据库信息,可以配置多个,其有两个可配的子元素,分别是:事务管理器transactionManager和数据源dataSource,先看一下我配置的例子: 1 <!-- 环境模式:development开发模式 work工作模式 --> 2 <environments default="development"> 3 <!--环境变量 --> 4 <environment id="development"> 5 <!--事务管理器 --> 6 <transactionManager type="JDBC" /> 7 <!--数据源 --> 8 <dataSource type="POOLED"> 9 <property name="driver" value="${db.driver}" /> 10 <property name="url" value="${db.url}" /> 11 <property name="username" value="${db.username}" /> 12 <property name="password" value="${db.pwd}" /> 13 </dataSource> 14 </environment> 15 </environments>

《深入理解mybatis原理》 Mybatis数据源与连接池

穿精又带淫゛_ 提交于 2020-03-01 10:36:33
对于ORM框架而言,数据源的组织是一个非常重要的一部分,这直接影响到框架的性能问题。本文将通过对MyBatis框架的数据源结构进行详尽的分析,并且深入解析MyBatis的连接池。 本文首先会讲述MyBatis的数据源的分类,然后会介绍数据源是如何加载和使用的。紧接着将分类介绍UNPOOLED、POOLED和JNDI类型的数据源组织;期间我们会重点讲解POOLED类型的数据源和其实现的连接池原理。 以下是本章的组织结构: 一、MyBatis数据源DataSource分类 二、数据源DataSource的创建过程 三、 DataSource什么时候创建Connection对象 四、不使用连接池的UnpooledDataSource 五、为什么要使用连接池? 六、使用了连接池的PooledDataSource 一、MyBatis数据源DataSource分类 MyBatis数据源实现是在以下四个包中: MyBatis把数据源DataSource分为三种: ž UNPOOLED 不使用连接池的数据源 ž POOLED 使用连接池的数据源 ž JNDI 使用JNDI实现的数据源 即: 相应地,MyBatis内部分别定义了实现了java.sql.DataSource接口的UnpooledDataSource,PooledDataSource类来表示UNPOOLED、POOLED类型的数据源。

Mybatis事务管理

陌路散爱 提交于 2020-03-01 10:36:14
一、Mybatis事务 1、事务管理方式 Mybatis中的事务管理方式有两种: 1、JDBC的事务管理机制,即使用JDBC事务管理机制进行事务管理 2、MANAGED的事务管理机制,Mybatis没有实现对事务的管理,而是通过容器来实现对事务的管理 其中,Mybatis提供了事务的接口:Transaction,其代码如下: public interface Transaction { /** * Retrieve inner database connection * @return DataBase connection * @throws SQLException */ //获得数据库连接 Connection getConnection() throws SQLException; /** * Commit inner database connection. * @throws SQLException */ //提交 void commit() throws SQLException; /** * Rollback inner database connection. * @throws SQLException */ //回滚 void rollback() throws SQLException; /** * Close inner database

Mybatis数据源与连接池

落爺英雄遲暮 提交于 2020-03-01 10:25:39
对于ORM框架而言,数据源的组织是一个非常重要的一部分,这直接影响到框架的性能问题。本文将通过对MyBatis框架的数据源结构进行详尽的分析,并且深入解析MyBatis的连接池。 本文首先会讲述MyBatis的数据源的分类,然后会介绍数据源是如何加载和使用的。紧接着将分类介绍UNPOOLED、POOLED和JNDI类型的数据源组织;期间我们会重点讲解POOLED类型的数据源和其实现的连接池原理。 目录 一、MyBatis数据源DataSource分类 二、数据源DataSource的创建过程 三、 DataSource什么时候创建Connection对象 四、不使用连接池的UnpooledDataSource 五、为什么要使用连接池? 六、使用了连接池的PooledDataSource 一、MyBatis数据源DataSource分类 MyBatis数据源实现是在以下四个包中: MyBatis把数据源DataSource分为三种: UNPOOLED 不使用连接池的数据源 POOLED 使用连接池的数据源 JNDI 使用JNDI实现的数据源 即: 相应地,MyBatis内部分别定义了实现了java.sql.DataSource接口的UnpooledDataSource,PooledDataSource类来表示UNPOOLED、POOLED类型的数据源。 如下图所示:

《深入理解mybatis原理》 Mybatis数据源与连接池

独自空忆成欢 提交于 2020-03-01 10:20:22
对于ORM框架而言。数据源的组织是一个很重要的一部分。这直接影响到框架的性能问题。 本文将通过对MyBatis框架的数据源结构进行详尽的分析,而且深入解析MyBatis的连接池。 本文首先会讲述MyBatis的数据源的分类,然后会介绍数据源是怎样载入和使用的。紧接着将分类介绍UNPOOLED、POOLED和JNDI类型的数据源组织。期间我们会重点解说POOLED类型的数据源和事实上现的连接池原理。 下面是本章的组织结构: 一、MyBatis数据源DataSource分类 二、数据源DataSource的创建过程 三、 DataSource什么时候创建Connection对象 四、不使用连接池的UnpooledDataSource 五、为什么要使用连接池? 六、使用了连接池的PooledDataSource 一、MyBatis数据源DataSource分类 MyBatis数据源实现是在下面四个包中: MyBatis把数据源DataSource分为三种: ž UNPOOLED 不使用连接池的数据源 ž POOLED 使用连接池的数据源 ž JNDI 使用JNDI实现的数据源 即: 对应地,MyBatis内部分别定义了实现了java.sql.DataSource接口的UnpooledDataSource,PooledDataSource类来表示UNPOOLED、POOLED类型的数据源。