初始MyBatis、SQL映射文件
MyBatis入门
1.MyBatis前身是iBatis,是Apache的一个开源项目,2010年这个项目迁移到了Google Code,改名为MyBatis,2013年迁移到GitHub。是一个基于DAO层ORM框架 ORM:Object Relational Mapping 对象关系映射 在mybatis中指的是sql语句与实体类之间的映射
2.MyBatis的优缺点
优点:减少代码量,小巧并且简单易学,SQL语句从程序代码中彻底分离,降低耦合度,便于管理和优化,并可重用,支持编写动态SQL语句。
缺点:SQL语句编写工作量大,对开发人员有一定的要求,数据库移植性差
适用场合:MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。对性能要求很高,或者需求变化多的项目,如互联网项目,适合适用MyBatis框架。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD
Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd
">
<configuration>
<!-- 引入外部properties文件 注意:引入外部文件属性的优先级高于内部设置的属性 -->
<properties resource="database.properties">
<property name="username" value="root"/>
<property name="password" value="123456"/>
</properties>
<!-- 设置mybatis运行的一些行为 -->
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<!-- 设置类型别名 -->
<typeAliases>
<package name="com.kawa.pojo"/>
</typeAliases>
<!-- 方式一:比较繁琐
<typeAliases>
<typeAlias alias="User" type="com.kawa.pojo.User"/>
</typeAliases>
-->
<!-- 配置mybatis多套运行环境 -->
<environments default="development">
<environment id="development">
<!-- 配置事务管理,采用JDBC的事务管理 mybatis提供了两种事务管理类型 JDBC、MANAGED-->
<transactionManager type="JDBC" />
<!-- POOLED:mybatis自带数据源,JNDI:基于tomcat的数据源 /UNPOOLED-->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 将mapper文件加入到配置文件中 -->
<mappers>
<!-- 1.使用类资源路径获取资源 -->
<mapper resource="com/kawa/dao/UserMapper.xml" />
<!-- 2.使用URL获取资源 -->
<!-- <mapper url="file:///E:/..."/> -->
</mappers>
</configuration>
3.4编写MyBatis 实体类的映射文件xxxMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD
Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd
">
<mapper namespace="com.kawa.dao.UserMapper">
<select id="count" resultType="int">
select count(1) as count from smbms_user
</select>
<select id="getUserList" resultType="User">
select * from smbms_user
</select>
</mapper>
3.5编写测试类测试
/**
* 测试查询用户列表 基于Mapper.xml方式操作
*/
@Test
public void testGetUserList() {
//获取SqlSession操作对象 步骤:
String resource = "mybatis-config.xml";
SqlSession sqlSession = null;
try {
//1.获取mybatis-config.xml文件的输入流
InputStream is = Resources.getResourceAsStream(resource);
//2.创建sqlSessionFactory对象
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//3.创建sqlSession对象
sqlSession = sessionFactory.openSession();
List<User> userList = sqlSession.selectList("com.kawa.dao.UserMapper.getUserList");
for (User user : userList) {
logger.debug("UserMapperTest userName --> "+user.getUserName());
}
} catch (IOException e) {
e.printStackTrace();
}finally{
sqlSession.close();
}
}
/**
* 测试查询用户列表 基于Mapper接口方式操作数据
*/
@Test
public void testGetUserList2() {
//获取SqlSession操作对象 步骤:
String resource = "mybatis-config.xml";
SqlSession sqlSession = null;
try {
//1.获取mybatis-config.xml文件的输入流
InputStream is = Resources.getResourceAsStream(resource);
//2.创建sqlSessionFactory对象
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//3.创建sqlSession对象
sqlSession = sessionFactory.openSession();
List<User> userList = sqlSession.getMapper(UserMapper.class).getUserList();
for (User user : userList) {
logger.debug("UserMapperTest userName --> "+user.getUserName());
}
} catch (IOException e) {
e.printStackTrace();
}finally{
sqlSession.close();
}
}
初始MyBatis、SQL映射文件的更多相关文章
- Mybatis sql映射文件浅析 Mybatis简介(三)
简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML为载体映射SQL 之前提到过,各项配置信息将Mybatis应用的整 ...
- Mybatis sql映射文件浅析 Mybatis简介(三) 简介
Mybatis sql映射文件浅析 Mybatis简介(三) 简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML ...
- Mybatis SQL映射文件详解
Mybatis SQL映射文件详解 mybatis除了有全局配置文件,还有映射文件,在映射文件中可以编写以下的顶级元素标签: cache – 该命名空间的缓存配置. cache-ref – 引用其它命 ...
- MyBatis -- sql映射文件具体解释
MyBatis 真正的力量是在映射语句中. 和对等功能的jdbc来比价,映射文件节省非常多的代码量. MyBatis的构建就是聚焦于sql的. sql映射文件有例如以下几个顶级元素:(按顺序) cac ...
- SSM - Mybatis SQL映射文件
MyBatis 真正的力量是在映射语句中.和对等功能的jdbc来比价,映射文件节省很多的代码量.MyBatis的构建就是聚焦于sql的. sql映射文件有如下几个顶级元素:(按顺序) cache配置给 ...
- MyBatis 创建核心配置文件和 SQL 映射文件
Mybatis 的两个配置文件(mybatis-config.xml 和 xxxMapper.xml)都为 xml 类型,因此在 eclipse 中创建 xml 文件命名为相应的 mybatis-c ...
- MyBatis 的基本要素—SQL 映射文件
MyBatis 真正的强大在于映射语句,相对于它强大的功能,SQL 映射文件的配置却是相当简单.对比 SQL 映射配置和 JDBC 代码,发现使用 SQL 映射文件配置可减少 50% 以上的代码,并且 ...
- Mybatis(二) SQL映射文件
SQL映射文件 单条件查询 1. 在UserMapper接口添加抽象方法 //根据用户名模糊查询 List<User> getUserListByName(); 2. 在UserMappe ...
- MyBatis学习-映射文件标签篇(select、resultMap)
MyBatis 真正的核心在映射文件中.比直接使用 JDBC 节省95%的代码.而且将 SQL 语句独立在 Java 代码之外,可以进行更为细致的 SQL 优化. 一. 映射文件的顶级元素 selec ...
随机推荐
- 关于MultipleActiveResultSets属性导致的There is already an open DataReader associated with this Command which must be closed first的解决方法
执行SqlDataReader.Read之后,如果还想用另一个SqlCommand执行Insert或者Update操作的话,会得到一个错误提示:There is already an open Dat ...
- jmeter-命令行执行脚本
日常测试过程中发现,在大数量并发时,jmeterGUI界面时长宕机.卡死,在这种情况下我们就需要使用命令行来执行脚本了(非GUI), 命令行执行首先就必须要配置环境变量,如同JAVA-HOME一样,这 ...
- Reverse bits - 按位反转一个int型数字
Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in ...
- documentsUI源码分析
documentsUI源码分析 本文基于Android 6.0的源码,来分析documentsUI模块. 原本基于7.1源码看了两天,但是Android 7.1与6.0中documentsUI模块差异 ...
- 使用Go和Let's Encrypt证书部署HTTPS
为什么要使用HTTPS?使用HTTPS的途径有哪些?如何用Go来部署HTTPS?拿出你的小本本,你要的干货都在这儿! HTTPS的好处我们已在之前的文章中提高好多.它加密浏览器和服务器之间的流量,保障 ...
- (转)每天一个linux命令(8):cp 命令,复制文件和文件夹
场景:自动部署脚本中为了部署方便,将配置文件放在服务器端,每次部署都使用服务端的配置文件覆盖上传上去的配置文件. cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一. 一般情况下,she ...
- 构建 MariaDB Galera Cluster 分布式数据库集群(一)
MariaDB Galera Cluster 介绍 简介 MariaDB集群是MariaDB同步多主机集群,仅支持XtraDB(详见本文结尾注释)/InnoDB存储引擎(虽然有对MyISAM实验支持 ...
- vue-cli的webpack模板项目配置文件分析
由于最近在vue-cli生成的webpack模板项目的基础上写一个小东西,开发过程中需要改动到build和config里面一些相关的配置,所以刚好趁此机会将所有配置文件看一遍,理一理思路,也便于以后修 ...
- 走进STM32世界之Hex程序烧写
多数51单片机(STC系列单片机)的初学者都知道,在51单片机初上电时,可以通过PC机上位机软件将程序引导至bootloader,从而将新程序的hex文件下载至单片机中,完成程序的升级或是更新.在32 ...
- C——Network Saboteur (POJ2531)
题目: A university network is composed of N computers. System administrators gathered information on t ...