1.什么是mybatis?

  mybatis是一个基于Java的持久层框架。

2.持久化:数据从瞬时状态变为持久状态。

3.持久层:完成持久化工作的代码块。---dao

4.Mybatis是帮助程序员将数据存入数据库中,从数据库中取数据。

5.传统的jdbc操作:有很多重复代码块。比如:数据取出时的封装。数据库的建立连接等。通过框架可以减少重复代码,提高开发效率。

6.Mybatis是一个半自动化的ORM框架。O---object,R---relationship,M---mapping

7.Mybatis的功能:

  MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。

8.如何使用mybatis?

  1)导入mybatis相关jar包

    asm-3.3.1.jar

    cglib-2.2.2.jar

    commons-logging-1.1.1.jar

    javassist-3.17.1-GA.jar

    log4j-1.2.17.jar

    log4j-api-2.0-rc1.jar

    log4j-core-2.0-rc1.jar

    mybatis-3.2.7.jar

    slf4j-api-1.7.5.jar

    slf4j-log4j12-1.7.5.jar

    数据库驱动包

    如果使用maven构建项目,需要在pom.xml文件中插入以下代码:  

  1. <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
  2. <dependencies>
  3. <dependency>
  4. <groupId>org.mybatis</groupId>
  5. <artifactId>mybatis</artifactId>
  6. <version>3.3.</version>
  7. </dependency>
  8.  
  9. <dependency>
  10. <groupId>mysql</groupId>
  11. <artifactId>mysql-connector-java</artifactId>
  12. <version>8.0.</version>
  13. </dependency>
  14. </dependencies>

  2)编写mybatis核心配置

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <environments default="development">
  7. <environment id="development">
  8. <transactionManager type="JDBC"/>
  9. <dataSource type="POOLED">
  10. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  11. <property name="url" value="jdbc:mysql://localhost:3306/test"/>
  12. <property name="username" value="root"/>
  13. <property name="password" value=""/>
  14. </dataSource>
  15. </environment>
  16. </environments>
  17. <mappers>
  18. <mapper resource="userMapper.xml"/>
  19. </mappers>
  20. </configuration>

  3)创建SqlSessionFactory以及从 SqlSessionFactory 中获取 SqlSession

  1. public class MyBatisUtil {
  2. public static SqlSessionFactory getSqlSessionFactory() throws IOException {
  3. String resource = "mybatis-config.xml";
  4. InputStream inputStream = Resources.getResourceAsStream(resource);
  5. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  6. return sqlSessionFactory;
  7. }
  8.  
  9. public static SqlSession getSession() throws IOException {
  10. SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
  11. return sqlSessionFactory.openSession();
  12. }
  13. }

  4)创建实体类,定义属性与数据库一致

  1. public class User {
  2. private int id;
  3. private String name;
  4. private String age;
  5.  
  6. public int getId() {
  7. return id;
  8. }
  9.  
  10. public void setId(int id) {
  11. this.id = id;
  12. }
  13.  
  14. public String getName() {
  15. return name;
  16. }
  17.  
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21.  
  22. public String getAge() {
  23. return age;
  24. }
  25.  
  26. public void setAge(String age) {
  27. this.age = age;
  28. }
  29. }

  5)编写sql语句的映射文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="userMapper">
  6. <select id="selectUser" resultType="cn.sxt.entity.User">
  7. select * from student where id = #{id}
  8. </select>
  9. </mapper>

  6)进行测试

  1. public class Test {
  2. public static void main(String[] args) throws IOException {
  3. SqlSession session= MyBatisUtil.getSession();
  4. User user=session.selectOne("userMapper.selectUser",1002);
  5. System.out.println("id="+user.getId()+";"+"name="+user.getName()+";"+"age="+user.getAge());
  6. session.close();
  7. }
  8. }

表结构

idea结构

mybatis帮助文档:http://www.mybatis.org/mybatis-3/zh/configuration.html#typeAliases

Java框架-mybatis01查询单个数据的更多相关文章

  1. java调用scala 查询hbase数据

    问题:将scala打成jar包,提供给java调用,但是java一直提示找不到类 实现功能:利用spark查询hbase数据,然后提供给外部接口调用 我的方式:spark查询Hbase用scala实现 ...

  2. 【Java】数据库查询的数据直接以指定文件类型下载到本地(弹出下载框)

    欲实现的功能目标:当点击下图的导出数据文件时弹出文件下载框,默认csv格式,用户自定义下载的本地路径 遇到的问题: 1.项目之前做过一次下载,但是是使用了本地文件模板.用输入流读取文件模板,插入数据, ...

  3. java框架之SpringBoot(9)-数据访问及整合MyBatis

    简介 对于数据访问层,无论是 SQL 还是 NOSQL,SpringBoot 默认采用整合 SpringData 的方式进行统一处理,添加了大量的自动配置,引入了各种 Template.Reposit ...

  4. 用java api 实现查询 Hive 数据

    版本:cdh5.4.7, hive1.1.0 pom文件 <dependency> <groupId>org.apache.hive</groupId> <a ...

  5. 2016年7款最佳 Java 框架

    毫无疑问,Java 是目前最为流行的编程语言之一,这里我们挖掘出了一些比较受欢迎的框架的有效信息,它们可以减轻全球软件开发人员的日常工作. RebelLabs的一项调查显示,通过在线Java用户论坛( ...

  6. Java框架之MyBatis 06-全局配置-mapper映射-分步查询

    MyBatis MyBatis是Apache的一个开源项目iBatis, iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架. iBatis  提供的持 ...

  7. Java对MongoDB中的数据查询处理

    Java语言标准的数据库时MySQL,但是有些时候也会用到MongoDB,这次Boss交代处理MongoDB,所以讲代码以及思路记录下了 摸索的过程,才发现软件的适用还是很重要的啊!!! 我连接的Mo ...

  8. Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)

    jquery提供的serialize方法能够实现. $("#searchForm").serialize();但是,观察输出的信息,发现serialize()方法做的是将表单中的数 ...

  9. Java JDBC 模糊查询 避免输入_,%返回全部数据

    Java JDBC 模糊查询 避免输入_,%返回全部数据 "SELECT * FROM employees WHERE INSTR(first_name,?)>0 " 仅供参 ...

随机推荐

  1. fwrite与fread

    函数原型 size_t fread(void *buffer, size_t size, size_t count, FILE *stream);   size_t fwrite(const void ...

  2. 《html5 从入门到精通》读书笔记(二)

    接着上面继续记录笔记,这次要记的知识点比较多...记录下我认为比较重要的东西. 一.表单属性 1.autocomplete属性 该属性规定form或input域应该拥有自动完成功能. <form ...

  3. [raspberry p3] [suse] 安装maven

    [raspberry p3] [suse] 安装maven 配置package repositroy, 添加devel:tools:building vim /etc/zypp/repos.d/ope ...

  4. Code First ef SQL Server 版本不支持数据类型“datetime2”

    When calling DbContext.SaveChanges, I get a DbUpdateException:An unhandled exception of type 'System ...

  5. RobotFramework关键字返回参数

    业务关键字[登录]返回参数 调用时直接把return的参数值写在业务关键字的最前面,就可以使用关键字的返回值了

  6. 基于node.js+socket.io+html5实现的斗地主游戏(1)概述

    一.游戏描述 说是斗地主游戏,其实是寝室自创的"捉双A",跟很多地方的捉红10.打红A差不多,大概规则是: 1.基础牌型和斗地主一样,但没有大小王,共52张牌,每人13张,这也是为 ...

  7. 关于SVN浏览服务器的错误

    这种错误是因为URL错误,需要把https://iZ1gyqtig7Z/svn/BoLeBang/   换成自己的公网ip地址 https://xx.xx.xx.xxsvn/BoLeBang/ 就可以 ...

  8. 也说AOP

    前言 1.引言 2.Aop概念 3.Aop实践 4.总结 一.引言 对于初入行的小白来讲,aop,ioc这两个程序设计思想总是傻傻分不清,不知道是个什么东东?别人再一谈各种框架更是云里雾里...博主今 ...

  9. Android Post方式发送信息和获取URL中的图片

    需要Internet权限,AndroidManifest.xml <uses-permission android:name="android.permission.INTERNET& ...

  10. Apache 中httpd.conf文件配置详解(转载)

    httpd.conf文件配置详解   Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现.下面让我们来看看htt ...