博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis学习(一)----入门
阅读量:4669 次
发布时间:2019-06-09

本文共 4291 字,大约阅读时间需要 14 分钟。

一.Mybatis介绍

MyBatis 本是 的一个开源项目 , 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的 框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(sDAO)。

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

二.快速入门

1.首先创建maven的javaWeb项目,然后在pom.xml文件中添加依赖项,那么maven就会自动下载导入以下两个jar包。如下图:

       【mybatis

         mybatis-3.4.2.jar

  【MYSQL驱动包】

    mysql-connector-java-6.0.6.jar

2.写好sql脚本

1 create database mybatis;2 use mybatis;3 CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);4 INSERT INTO users(NAME, age) VALUES('zhimahu', 25);5 INSERT INTO users(NAME, age) VALUES('liangming', 27);

在navicat for sql中运行脚本文件,连接上右键---运行SQL文件

完成后看到创建的数据库和表

那么准备工作就做完了

3. 使用MyBatis查询表中的数据

 (1)首先在【main】中的resources下创建【mybatis-config.xml】文件

1 
2 3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

(2)创建POJO类,在【main】-【java】下创建包路径com.gacl.domain,然后创建User类,User中的属性与表user中一一对应

1 package me.gacl.domain; 2  3 public class User { 4     private int id; 5     private String name; 6     private int age; 7  8     public int getId() { 9         return id;10     }11 12     public void setId(int id) {13         this.id = id;14     }15 16     public String getName() {17         return name;18     }19 20     public void setName(String name) {21         this.name = name;22     }23 24     public int getAge() {25         return age;26     }27 28     public void setAge(int age) {29         this.age = age;30     }31 32     @Override33     public String toString() {34         return "User{" +35                 "id=" + id +36                 ", name='" + name + '\'' +37                 ", age=" + age +38                 '}';39     }40 }

注意:POJO类的toString()方法最好加上,这是个好习惯

(3)在【main】-【resources】下创建包【mapping】,并创建userMapper.xml(操作users表的sql映射文件)

1 
2 3
4
5
8

(4)在mybatis-config.xml中注册userMapper.xml映射信息

(5)编写测试类

1 package me.gacl.domain; 2  3 import org.apache.ibatis.io.Resources; 4 import org.apache.ibatis.session.*; 5 import java.io.InputStream; 6 import java.io.Reader; 7  8 /** 9  * Created by huyanxia on 2017/8/26.10  */11 public class UserTest {12     public static void main(String[] args) {13         //加载mybatis的配置文件14         String resource="mybatis-config.xml";15         //使用类加载器加载mybatis的配置文件(它也会加载关联的映射文件)16         InputStream is = UserTest.class.getClassLoader().getResourceAsStream(resource);17         //构建sqlSession的工厂,感兴趣可以去看源码,通过XMLConfigBuilder中parse()方法进行解析节点18         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);19         //使用mybatis提供的Resources类加载配置文件,注意这里需要捕获IOException20         //Reader reader = Resources.getResourceAsReader(resource);21         //参数是Reader类型的22         //SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);23         //得到可以执行映射文件中sql的session24         SqlSession session = sessionFactory.openSession();25         //statement是映射sql的标识字符串,me.gacl.mapping.userMapper是userMapper.xml中mapper标签的namespace属性,26         // getUser是select标签的id,通过select标签的id值可以找到要执行的sql语句27         String statement = "me.gacl.mapping.userMapper.getUser";28         //执行查询一个唯一id的User对象的sql29         User user = session.selectOne(statement,1);30         System.out.println(user);31     }32 }

(6)运行测试类

出现java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required,原因是用的6.几版本jar包,可能跟客户端版本不对,

将pom.xml中的mysql驱动包换成5.1.43版的正常运行

 可以看到mysql数据中的id=1的记录查询出来了

 

转载于:https://www.cnblogs.com/zhima-hu/p/7435176.html

你可能感兴趣的文章
secureCRT 如何上传下载文件
查看>>
Spring Cloud Config
查看>>
phoneGap实现离线缓存
查看>>
第六周学习进度
查看>>
java学习之—链表(3)
查看>>
【TDS学习文档5】IBM Directory schema的管理3——attributes
查看>>
Codeforces Round #572 (Div. 2)B
查看>>
day 107radis非关系型数据库
查看>>
python re模块
查看>>
程序猿的爱情--2011-01-05
查看>>
loj#2073. 「JSOI2016」扭动的回文串
查看>>
finally代码块
查看>>
业务测试团队目标
查看>>
node事件发射器
查看>>
Silverlight中需要用到模板选择器(DataTemplateSelector)的替代方案
查看>>
Java线程池ExecutorService
查看>>
Weekly Contest 80
查看>>
第三次作业
查看>>
项目应用EasyUI_Tab控件全部关闭
查看>>
CTF之信息泄漏
查看>>