叨叨时刻:内容根据阿里云大学的MyBatis视频教程整理而成,有需要最好跟着视频教程走一遍

MyBatis 是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

其他说明:

(1)持久化:数据从瞬时状态变为持久状态,可以简单理解成和服务器端session一样的作用

(2)官网中文文档:mybatis中文文档

(3)其他参考网站:w3cshool的Mybatis教程

搭建框架步骤:

1.下载MyBatis的类包:mybatis-x.x.x.jar (内含官方文档)

2.新建java项目并将核心包和依赖包(bin内的jar)、数据库驱动包导入

3.根据官方文档,新建配置xml文件,以官方文档(2.1.2 Building SqlSessionFactory from XML)为模板修改相关的数据库连接信息。例如:

<?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>
<!---->
<typeAliases> </typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="myPassword"/>
</dataSource>
</environment>
</environments>
//这里的mapper路径包名要以斜杆分,且这里的内容要以后面编写的mapper文件相对应
<mappers>
<mapper resource="cn/aaa/entity/User.mapper.xml"/>
</mappers>
</configuration>

4.建立对应MyBatis工具类,参考官方文档内容(2.1.2 Building SqlSessionFactory from XML),例如:

public class MyBatisUtil {
public static SqlSessionFactory getSqlSessionFactory() throws IOException {
//注意:这里的recource内容请更改成自己的mybatis配置的xml名字,如果xml文件名字是aaaa.xml,以下内容也写成aaaa.xml
String resource = "mybatis.config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
//记得返回对象
return sqlSessionFactory;
}
public static SqlSession getSession() throws IOException {
SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
return sqlSessionFactory.openSession();
}
}

5.建立实体类User

6.建立实体类sql语句的映射xml文件(最好与实体类处于同一目录下,显得更加清晰),参考官方文档(2.1.5 Exploring Mapped SQL Statements),例如:

<mapper namespace="cn.aaa.entity.UserMapper">
<!--此处的resultType最好写成包名+类名的形式,这样更准确>
<select id="selectUser" resultType="cn.aaa.entity.User">
<!-- sql映射语句 -->
select * from users where id = #{id}
</select>
</mapper>

7.新建测试类,主方法里获取MyBatis的session赋值给User,调用该user的方法测试即可

public class test {
public static void main(String[] args) throws IOException {
SqlSession sqlSession= MyBatis.getSqlSession();
//selectOne的第一个参数:mapper文件里namespace+select语句的id
//第二个参数就是语句内的参数值
User user=sqlSession.selectOne("com.lxy.entity.UserMapper.selectUser",1);
System.out.println(user.getId()+","+user.getName()+","+user.getPwd());
}
}

数据库持久化框架——MyBatis(1)的更多相关文章

  1. android数据库持久化框架

    android数据库持久化框架

  2. android数据库持久化框架, ormlite框架,

    前言 Android中内置了SQLite,但是对于数据库操作这块,非常的麻烦.其实可以试用第3方的数据库持久化框架对之进行结构上调整, 摆脱了访问数据库操作的细节,不用再去写复杂的SQL语句.虽然这样 ...

  3. Java EE数据持久化框架mybatis练习——获取id值为1的角色信息。

    实现要求: 获取id值为1的角色信息. 实现思路: 创建角色表sys_role所对应的实体类sysRole. package entity; public class SysRole { privat ...

  4. 基于MyBatis的数据库切分框架,可实现数据的水平切分和垂直切分。 http://www.makersoft.org

    https://github.com/makersoft/mybatis-shards MyBatis-Shards 专业的MyBatis数据库切分框架 MyBatis Shards简介 MyBati ...

  5. Spring学习之旅(十二)--持久化框架

    对于本职工作来说 JDBC 就可以很好的完成,但是当我们对持久化的需求变得更复杂时,如: 延迟加载 预先抓取 级联 JDBC 就不能满足了,我们需要使用 ORM框架 来实现这些需求. Spring 对 ...

  6. SpringBoot之持久化框架

    在之前的 Spring学习之旅(十二)--持久化框架 中我们介绍了 JPA 的使用,今天我们就来了解下另一种持久化框架 Mybatis. 一.集成 Mybatis 1.1 准备工作 新建用户表 CRE ...

  7. 【持久化框架】Mybatis与Hibernate的详细对比

        前言 这篇博文我们重点分析一下Mybatis与hibernate的区别,当然在前面的博文中我们已经深入的研究了Mybatis和Hibernate的原理. Mybatis [持久化框架]Myba ...

  8. 【持久化框架】Mybatis与Hibernate的详细对比(转发)

    前言 这篇博文我们重点分析一下Mybatis与Hibernate的区别,当然在前面的博文中我们已经深入的研究了Mybatis和Hibernate的原理. Mybatis [持久化框架]Mybatis简 ...

  9. 浅谈Mybatis持久化框架在Spring、SSM、SpringBoot整合的演进及简化过程

    前言 最近开始了SpringBoot相关知识的学习,作为为目前比较流行.用的比较广的Spring框架,是每一个Java学习者及从业者都会接触到一个知识点.作为Spring框架项目,肯定少不了与数据库持 ...

随机推荐

  1. 修改json数据中key(键值)

    //方法一:修改JSONObject的键 public static JSONObject changeJsonObj(JSONObject jsonObj,Map<String, String ...

  2. 共享v2射线局域网http代理方法

    问题描述 默认v节点大部分是socks代理,实际使用过程中存在以下问题: 部分浏览器无法支持socks需要走http代理. 局域网内其他设备(手机.PS4等)需要配置代理. 解决方法 1.在PC托盘图 ...

  3. CrystalDecisions.Windows.Forms文件

    1.CrystalDecisions.Windows.Forms 相关dll文件 CrystalDecisions.Crystalreports.Engine.dllCrystalDecisions. ...

  4. 点击事件后根据url保持相应导航高亮

    直接上代码吧!!! HTML页面: <div class="nav"> <ul class="sub-tit"> <li>& ...

  5. 1.game.h

    game.h //以后会一直更新的呢. /*2020.2.4 更新了文件输入输出模板 @Bill_liu2020 加入了visual.h @bingogyz(orz) 代码:https://blog. ...

  6. 微信小程序前台的用户数据入库(后台Laravel)

    首先 我们可以看到微信小程序官方 文档 wx.login   api-login.jpg 通过此图 我们知道 前台要传 一个 code给后台,后台拿到code 并结合appid和appsecret请求 ...

  7. Request原理

  8. 2. 移动端测试工具 :bugtags

    http://blog.csdn.net/objectivepla/article/details/51037804   Bugtags 使用说明 https://www.bugtags.com/   ...

  9. idea tomcat启动无效

    今天换了台电脑,用idea 部署tomcat启动死活启动不了,报 Application Server was not connected before run configuration stop, ...

  10. wget 显示网页内容到控制台

    wget -q -O -  http://www.microsoft.com