当前位置: 首页 > news >正文

Mybatis 轻松入门教程

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Mybatis框架 的快速入门

MyBatis

 简介

什么是 MyBatis?

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

Mybatis快速入门

1.添加jar包

mybatis:

  mybatis-3.1.1.jar

oracle:

 ojdbc6.jar(根据个人情况,不同数据库选择相应的包)

2.表

create table user_name (id number,name varchar2(200),age number);

insert into user_name values(1,'ddd',23);

insert into user_name values(2.'fff',24)

3.添加mybatis的配置文件config.xm

 

复制代码

1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 
 5 <configuration>
 6 
 7          <environments default="development">
 8 
 9                    <environment id="development">
10 
11                             <transactionManager type="JDBC" />
12 
13                             <dataSource type="POOLED">
14 
15                                      <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
16 
17                                      <property name="url" value="jdbc:oracle:thin:@localhost:1521:Oracle" />
18 
19                                      <property name="username" value="root" />
20 
21                                      <property name="password" value="root" />
22 
23                             </dataSource>
24 
25                    </environment>
26 
27          </environments>
28 
29 </configuration>

复制代码

 

4.定义表所对应的实体类

复制代码

package cn.zr.maybatis;

public class User {
 
    private String id;
    
    private String userName;
    
    private String passWord;

    public User() {
        super();
        // TODO Auto-generated constructor stub
    }

    public User(String id, String userName, String passWord) {
        super();
        this.id = id;
        this.userName = userName;
        this.passWord = passWord;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", userName=" + userName + ", passWord=" + passWord + "]";
    }
    
    
    
}

复制代码

 

5.定义操作user_name表的sql映射文件userMapper.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="cn.zr.mybatis.userMapper"> 
<select id="getUser" parameterType="int" 
resultType="cn.zr.mybatis.User">
select * from user_name where id=#{id}
</select>
</mapper>

复制代码

 

6.在config.xml文件中注册userMapper.xml文件

<mappers>
<mapper resource="cn/zr/mybatis/userMapper.xml"/>
</mappers>

 

7.编写测试代码,执行定义的select语句

复制代码

public class Test {

         public static void main(String[] args) throws IOException {

                   String resource = "config.xml";

                   //加载mybatis的配置文件(它也加载关联的映射文件)

                   Reader reader = Resources.getResourceAsReader(resource);

                   //构建sqlSession的工厂

                   SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

                   //创建能执行映射文件中sql的sqlSession

                   SqlSession session = sessionFactory.openSession();

                   //映射sql的标识字符串

                   String statement = "com.atguigu.mybatis.bean.userMapper"+".selectUser";

                   //执行查询返回一个唯一user对象的sql

                   User user = session.selectOne(statement, 1);

                   System.out.println(user);

                  session.commit();

                  session.close();

         }

}

复制代码

 

转载于:https://my.oschina.net/71484169/blog/781995

相关文章:

  • 《疯狂java讲义2》读书笔记——面向对象的三大特性之一:继承(已更新完)...
  • Redis Cluster架构和设计机制简单介绍
  • Android View体系(六)从源码解析Activity的构成
  • EXCEL 读取
  • rip路由协议基本配置
  • [Unity3D]深度相机 Depth Camera
  • phpmyadmin安装教程及配置设置
  • 11.08---日记
  • 互斥量与信号量
  • 数据库备份那点事儿
  • maven 中使用jetty
  • 微软宣布Azure DNS全面通用
  • Flex 布局教程:语法篇
  • passwd命令--Linux命令应用大词典729个命令解读
  • 【阿里云资讯】马云为何还要做92届双11?
  • ----------
  • 【翻译】babel对TC39装饰器草案的实现
  • 【前端学习】-粗谈选择器
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Apache Spark Streaming 使用实例
  • Create React App 使用
  • JavaScript实现分页效果
  • php面试题 汇集2
  • Rancher如何对接Ceph-RBD块存储
  • scrapy学习之路4(itemloder的使用)
  • windows下mongoDB的环境配置
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 和 || 运算
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 前端性能优化——回流与重绘
  • 微服务核心架构梳理
  • 走向全栈之MongoDB的使用
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #pragma 指令
  • #单片机(TB6600驱动42步进电机)
  • %@ page import=%的用法
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (007)XHTML文档之标题——h1~h6
  • (1)(1.9) MSP (version 4.2)
  • (C++20) consteval立即函数
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)正点原子I.MX6ULL u-boot移植
  • (利用IDEA+Maven)定制属于自己的jar包
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转)C#调用WebService 基础
  • .md即markdown文件的基本常用编写语法
  • .NET 服务 ServiceController
  • .net生成的类,跨工程调用显示注释
  • @AutoConfigurationPackage的使用
  • @private @protected @public
  • @reference注解_Dubbo配置参考手册之dubbo:reference