初始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 "-//
Config 3.0//EN"
"
">
<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 "-//
Mapper 3.0//EN"
"
">
<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 ...
随机推荐
- Linux 下搭建www服务器
偶然的机会接触了前端开发,尽管最初的意愿是后台. 不过现在看来,前端后台数据库密不可分! 回想起来感觉自己学习的层次也还很好,因为之前有学习c语言.c++的基础,所以在学习html,js的过程中感觉还 ...
- ftp站点密码破解
启动流光软件,在"F T P 主机"点击鼠标右键选择"编辑 | 添加",然后添加想要利用的那个 F T P 地址,然后在弹出的对话框添加欲利用的主机,FTP 主 ...
- kali ssh服务连接问题,无法远程管理
1.修改sshd_config文件,命令为:vi /etc/ssh/sshd_config 2.将#PasswordAuthentication no的注释去掉,并且将NO修改为YES 3.将#Per ...
- Abp(.NetCore)开发与发布过程2
在Abp(.NetCore)开发过程中遇到很多问题,今天记录下Abp的防CSRF功能(AntiForgeryToken ), 背景知识. AntiForgeryToken 可以说是处理/预防CSRF的 ...
- dotpeek的导出
在开始写之前先说明下,搜了很久的度娘,就是没找到dotpeek的导出功能,····,看来用的人不多, ------------------------------------------------- ...
- eclipse上传新项目到GitHub
1.登录gibhub,创建一个仓库 2.提交本地仓库 右键本地项目 选择git,然后点击next 如图: 再右键项目,commit项目,这是提交到本地git 3.接下来提交到github 输入gith ...
- 关于MUI集成微信分享遇到的坑
今天聊一下MUI这个框架吧! 首先,用这个框架也有很长一段时间了,项目不同,涉及到的功能也有不同,之前没有涉及到微信分享相关的内容!今天,遇到了,也解决了,分享出来. 下面是手顺: 1.分享的代码是参 ...
- Java之集合初探(二)Iterator(迭代器),collections,打包/解包(装箱拆箱),泛型(Generic),comparable接口
Iterator(迭代器) 所有实现了Collection接口的容器都有一个iterator方法, 用来返回一个实现了Iterator接口的对象 Iterator对象称作迭代器, 用来方便的实现对容器 ...
- 会话跟踪Cookie与Session
会话跟踪用来跟踪用户的整个会话,常用的是Session和Cookie.Cookie通过客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 1.Cookie 1.1概念及使 ...
- MySql 事务与锁
事务介绍 首先,什么是事务?事务就是一段sql 语句的批处理,但是这个批处理是一个atom(原子),不可分割,要么都执行,要么回滚(rollback)都不执行. MySQL 事务主要用于处理操作量大, ...