Mybatis学习随笔
学习Mybatis路径(适合有java基础和mysql基础的小伙伴)
1.把项目搭建起来,跑一跑感受一下
2.测试基本映射
3.测试高级映射
4.测试动态sql
5.学习懒加载与缓存
6.与spring整合
一、项目搭建
项目主要以学习测试为主,步骤如下:
1.新建一个Java工程,起名mybatis。
2.在项目目录下新建一个文件夹lib,存放jar包,将jar包拷到lib下,右击 build path -> add to build path。jar包下载
3.新建一个sourceforder,起名config,里面放两个配置文件。完成后项目目录如图:

4.数据库,像我一样的小白最好用可视化工具,操作方便。在数据库中建个数据库起名ssm,然后建个表起名user。完全可以不用这么多字段。如图:

5.编写配置文件。在sourceforder 下新建一个mybatis.xml,这是mybatis的全局配置文件。代码如下:
<?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>
<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/ssm" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers>
</configuration>
这里的用户名和密码要改成自己的。然后新建一个package,起名mappers,存放数据库与实体的映射。然后在mappers里新建一个xml文件起名UserMapper,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="com.zhx.mapper.UserMapper">
<insert id="addUser" parameterType="com.zhx.pojo.User">
INSERT INTO user(account,name,pwd,sex,birthday)
VALUES(#{account},#{name},#{pwd},#{sex},#{birthday})
</insert>
</mapper>
在UserMapper里 写了一条insert语句,向数据库插入一条数据,注意:namespace命名空间指向自己编写的接口(注意路径),我现在还没有写:),parameterType是传入的参数,指向了实体类,表名传入一个user对象。<insert>包裹的是一条sql语句,注意的是values 中#{此处是变量名,与user中变量名称保持一致}。
6.编写java代码
新建package com.zhx.mapper,新建接口interface,UserMapper。UserMapper代码如下:
package com.zhx.mapper;
import com.zhx.pojo.User; public interface UserMapper {
public int addUser(User user);
}
新建package com.zhx.pojo,新建类,User。User代码如下:
package com.zhx.pojo;
public class User {
private int id;
private String account;
private String name;
private String pwd;
private String sex;
private String birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public User() {
super();
}
public User( String account,String name, String pwd, String sex, String birthday) {
super();
this.account = account;
this.name = name;
this.pwd = pwd;
this.sex = sex;
this.birthday = birthday;
}
}
7.编写测试类
前面准备工作完成了,下面就是测试了,加载配置文件,然后从spring容器中拿到bean,然后执行方法addUser(User user); 在Navicat中刷新查看结果,test代码如下:
public class Test2 {
public static void main(String[] args) {
ApplicationContext ctx
=new ClassPathXmlApplicationContext("ApplicationContext.xml");
UserMapper um= ctx.getBean(UserMapper.class);
int i = um.addUser(new User("a", "a", "a", "a", "a"));
System.out.println(i);
}
}
8.报错
在初次运行过程中报一些看不懂的错误,因为对它不熟悉,这是很正常的,仔细分析一下提示信息,贴到网上找找解决方法,或者给我留言,都是OK的。祝大家成功~
Mybatis学习随笔的更多相关文章
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...
- MyBatis学习总结(七)——Mybatis缓存(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...
- (原创)mybatis学习二,spring和mybatis的融合
mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...
- (原创)mybatis学习一,夯实基础
一,what?(是什么) MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- 【Todo】Mybatis学习-偏理论
之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html <SSM(SpringMVC+Spring+Myba ...
- MyBatis学习系列三——结合Spring
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...
随机推荐
- CentOS7 安装 Docker CE步骤
准备工作 系统要求 Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10. CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overla ...
- 解决mysql最大允许传输包不足的问题
一.报错提示内容和原因 在执行“数据传输”或者“运行SQL文件”时报错误:Got a packet bigger than 'max_allowed_packet' bytes With,表明当前所传 ...
- tableView header Refresh 下拉刷新/上拉加载
一. UIScrollView 的分类 //作为入口 #import <UIKit/UIKit.h> #import "RefreshHeader.h" #import ...
- c++primer 学习笔记
1.1 编写简单的c++程序 函数4元素:函数类型.函数名.形参表.函数体 调用GNU(UNIX) g++ prog1.cc -o prog1 //生成可执行文件prog1,UNIX下默认a.out ...
- CDQZ Day7
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #i ...
- 初探flow.js
第一部分:前言 我们知道JS是弱类型语言,在声明变量时不论是什么类型的变量我们都用var即可,所以js是非常灵活的,但是同时问题就是弱类型语言有可能会出错,比如在调用函数时,且往往在运行起来时才可以检 ...
- MySQL对结果进行排序order by
order by {col_name | expr | position} [ASC | DESC] 查询结果 排序条件的顺序 决定 排序条件 的优先级 如果同一条件下值相等,那么启 ...
- BAE+Python+Django+Wechatpy+Baidu weather api +微信订阅号 = 实现微信查询天气
最近想在微信上面实现天气查询,分两个步骤: 1.被动回复:输入天气.xx天气获取天气情况 2.主动推送:每天定时推送天气(针对24小时内产生交互的人) 目前已经实现第一个步骤,如下: 现将实现此功能环 ...
- GraphQL 总结 + 在Django应用(Graphene)
由Xmind编辑,下次更新会附加python demo. 附件列表
- Ubuntu下伪分布式模式Hadoop的安装及配置
1.Hadoop运行模式Hadoop有三种运行模式,分别如下:单机(非分布式)模式伪分布式(用不同进程模仿分布式运行中的各类节点)模式完全分布式模式注:前两种可以在单机运行,最后一种用于真实的集群环境 ...