mybatis学习(一)----入门
一.Mybatis介绍
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脚本
create database mybatis;
use mybatis;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);
INSERT INTO users(NAME, age) VALUES('zhimahu', 25);
INSERT INTO users(NAME, age) VALUES('liangming', 27);
在navicat for sql中运行脚本文件,连接上右键---运行SQL文件

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

那么准备工作就做完了
3. 使用MyBatis查询表中的数据
(1)首先在【main】中的resources下创建【mybatis-config.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>
<!--配置数据库环境,可以有多个environment,default值是其中一个environment的id值-->
<environments default="developement">
<environment id="developement">
<!--配置事务管理器,JDBC和MANAGED两种,JDBC可以进行回滚和提交-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源,type=[UNPOOLED | POOLED| JNDI], POOLED表示实现简单的数据池连接,连接可以复用-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</dataSource>
</environment>
</environments>
</configuration>
(2)创建POJO类,在【main】-【java】下创建包路径com.gacl.domain,然后创建User类,User中的属性与表user中一一对应
package me.gacl.domain;
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
注意:POJO类的toString()方法最好加上,这是个好习惯
(3)在【main】-【resources】下创建包【mapping】,并创建userMapper.xml(操作users表的sql映射文件)
<?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">
<!--namespace一般命名成报名+映射名-->
<mapper namespace="me.gacl.mapping.userMapper">
<select id="getUser" parameterType="int" resultType="me.gacl.domain.User">
select * from users where id=#{id}
</select>
</mapper>
(4)在mybatis-config.xml中注册userMapper.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>
<!--配置数据库环境,可以有多个environment,default值是其中一个environment的id值-->
<environments default="developement">
<environment id="developement">
<!--配置事务管理器,JDBC和MANAGED两种,JDBC可以进行回滚和提交-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源,type=[UNPOOLED | POOLED| JNDI], POOLED表示实现简单的数据池连接,连接可以复用-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</dataSource>
</environment>
</environments>
<!--resource值是映射文件所在的路径-->
<mappers>
<mapper resource="mapping/userMapper.xml"></mapper>
</mappers>
</configuration>
(5)编写测试类
package me.gacl.domain; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import java.io.InputStream;
import java.io.Reader; /**
* Created by huyanxia on 2017/8/26.
*/
public class UserTest {
public static void main(String[] args) {
//加载mybatis的配置文件
String resource="mybatis-config.xml";
//使用类加载器加载mybatis的配置文件(它也会加载关联的映射文件)
InputStream is = UserTest.class.getClassLoader().getResourceAsStream(resource);
//构建sqlSession的工厂,感兴趣可以去看源码,通过XMLConfigBuilder中parse()方法进行解析节点
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//使用mybatis提供的Resources类加载配置文件,注意这里需要捕获IOException
//Reader reader = Resources.getResourceAsReader(resource);
//参数是Reader类型的
//SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
//得到可以执行映射文件中sql的session
SqlSession session = sessionFactory.openSession();
//statement是映射sql的标识字符串,me.gacl.mapping.userMapper是userMapper.xml中mapper标签的namespace属性,
// getUser是select标签的id,通过select标签的id值可以找到要执行的sql语句
String statement = "me.gacl.mapping.userMapper.getUser";
//执行查询一个唯一id的User对象的sql
User user = session.selectOne(statement,1);
System.out.println(user);
}
}
(6)运行测试类
出现java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required,原因是用的6.几版本jar包,可能跟客户端版本不对,
将pom.xml中的mysql驱动包换成5.1.43版的正常运行

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

mybatis学习(一)----入门的更多相关文章
- mybatis学习之入门实例
测试版本 mybatis:3.2.8 数据库:mysql 项目结构 jar包准备 mybatis-3.2.8.jar mysql-connector-java-5.1.39-bin.jar junit ...
- Mybatis学习笔记(二) 之实现数据库的增删改查
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...
- 【转】MyBatis学习总结(一)——MyBatis快速入门
[转]MyBatis学习总结(一)——MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC ...
- MyBatis学习总结(一)简单入门案例
MyBatis学习总结(一)简单入门案例 主要内容:本文主要通过对数据库中的use表进行增删改查总结mybatis的环境搭建和基本入门使用 一.需要的jar包: 1.核心包 2.依赖包 3.jdbc数 ...
- Mybatis学习笔记之一(环境搭建和入门案例介绍)
一.Mybatis概述 1.1 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...
- MyBatis学习总结-MyBatis快速入门的系列教程
MyBatis学习总结-MyBatis快速入门的系列教程 [MyBatis]MyBatis 使用教程 [MyBatis]MyBatis XML配置 [MyBatis]MyBatis XML映射文件 [ ...
- (转)MyBatis框架的学习(二)——MyBatis架构与入门
http://blog.csdn.net/yerenyuan_pku/article/details/71699515 MyBatis框架的架构 MyBatis框架的架构如下图: 下面作简要概述: S ...
- MyBatis 学习入门
mybatis 第一天 mybatis的基础知识 持久层的框架,对jdbc的封装 课程安排 第一天:基础知识(重点,内容量多) 最简单的jdbc程序 public class JdbcTest{ pu ...
- mybatis学习笔记一(入门)
昨天看了一下mybatis,学习了一下有很多东西还不懂,但是想把一些知道的记录一下,如有错误请大家多多指点. mybatis它是apche的一个开源项目,它以前的没名字并不是叫mybatis而是叫ib ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...
随机推荐
- RNA Spike-in Control(转)
Spike-in Control:添加/加入(某种物质)的对照(组)在某些情况下,待检验样本中不含待测物质或者含有但是浓度很低,为了证明自己建立的方法能对样本中待测物质进行有效的检测,可在待检样本中加 ...
- 20181013xlVba年级成绩报表
Public Sub 高一成绩报表() Application.ScreenUpdating = False Application.DisplayAlerts = False Application ...
- linux下网络查看命令ss
ss命令 ss命令用来显示处于活动状态的套接字信息.可以显示和netstat类似的内容,并且可以显示更详细的信息,而且查看速度更快. 格式 ss [options] [ FILTER ] 选项 -h: ...
- VMware(虚拟机) 12版安装深度linux系统
需要的工具: 1.VM ware workstation12虚拟机(可自行百度下载) 参考:VMware Workstation 12.5.5 官方中文正式版,下载地址:http://www.epi ...
- 剑指offer-栈的压入与弹出
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...
- 关于int8_t,uint8_t.....等数据类型的理解
实习中,今天在看公司源码的时候,发现前辈给的代码都是这样的 typedef int8_t int8; typedef uint8_t uint8; typedef int16_t int16; typ ...
- 使用formData上传文件,ajax上传
项目是vue项目,直接贴部分代码了: html: <input type="file" name="fileTable" @change="ch ...
- SQL 查询语句
4.2 单表查询 4.2.1 列名(表名)的别名(as 可以不加) 给列名取别名既可以加 as 也可以不加. (2008 - Sage.lower(Sdept)等可计算但无列名,需要指定列名) 原列名 ...
- SpringBoot利用注解@Value获取properties属性为null
参考:https://www.cnblogs.com/zacky31/p/8609990.html 今天在项目中想使用@Value来获取Springboot中properties中属性值. 场景:定义 ...
- 十二、持久层框架(MyBatis)
一.PageHelper分页插件的使用 PageHelper是一款MyBatis的分页插件,只需要简单的配置,然后直接调用方法就可以. 1.配置PageHelper插件 在mybatis-config ...