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 ...
 
随机推荐
- 北航软院2012级C#期末考试部分考题解答
			
博主注:本渣渣水平有限,文中若有不对的地方敬请指出,谢谢. 本文中大部分图片来自老师的PPT,感谢邵老师,想要的可以点击右边QQ联系我:) 一.选择题(2*15=30) 1.In C# what is ...
 - todocmvc的安装
			
安装依赖 官网 安装依赖的css,js $npm install 引入vue <script src="js/vue.js"></script> 定义初始化 ...
 - A: Absolutely Simple---巴什博弈
			
A: Absolutely Simple 时间限制: 1 s 内存限制: 128 MB 题目描述 Ocean暑假去海边玩,海边有许多好看的贝壳.并且Ocean捡了好多回来. 回 ...
 - 主库binlog被purge的情形
			
1.演示实验环境 --主库版本: root@(none)>show variables like 'version'; +---------------+-------------------- ...
 - sublime text3 license & nodejs setting
			
----- BEGIN LICENSE ----- sgbteam Single User License EA7E-1153259 8891CBB9 F1513E4F 1A3405C1 A865D5 ...
 - 递归迭代vector三种方法实现二路归并排序
			
https://mp.csdn.net/mdeditor/84933084# 附链接
 - web.py简易示例
			
http://webpy.org/cookbook/index.zh-cn code.py import web urls = ( '/', 'index' ) class index: def GE ...
 - Revit二次开发_快速显示隐藏剖面框
			
最近遇到一种状况需要经常切换剖面框的可见性,于是想将剖面框的显示与隐藏做成一个按钮,方便切换. 其他类似元素想做成快速切换可见性应该可以使用类似做法. 这次的隐藏对象是剖面框,所以我直接就隐藏元素了. ...
 - 【温故知新】C#基于事件的异步模式(EAP)
			
在开发winform和调用asp.net的web service引用的时候,会出现许多命名为 MethodNameAsync 的方法. 例如: winform的按钮点击 this.button1.Cl ...
 - jQuery 学习笔记(jQuery: The Return Flight)
			
第一课. ajax:$.ajax(url[, settings]) 练习代码: $(document).ready(function() { $("#tour").on(" ...