栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Mybatis入门(开发环境+入门案例)

Java 更新时间:发布时间: 百科书网 趣学号


Mybatis入门
  • 1. MyBatis入门
    • 1.1 概述
  • 2 下载
  • 3 与JDBC对比
  • 4 入门:搭建环境
    • 4.1 构建项目
    • 4.2 数据库和表:User
  • 5 入门案例:查询所有
    • 5.1 JavaBean:User
    • 5.2 编写Dao:UserMapper
    • 5.3 编写核心配置文件:SqlMapConfig.xml
    • 5.4 测试类
  • 6 总结

1. MyBatis入门 1.1 概述

MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理注册驱动、创建Connection、创建Statement、手动设置参数、结果集检索及映射等繁杂的过程代码。

历史进程

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对iBatis进行一些改进。

多学一招

同层产品:commons-dbutils、spring-jdbc、Hibernate

2 下载

MyBaits的代码由github.com管理,地址:https://github.com/mybatis/mybatis-3/releases

3 与JDBC对比

JDBC编写DAO的步骤

MyBatis编写DAO的步骤

4 入门:搭建环境 4.1 构建项目

1)创建新项目:Java --> Java EE --> Web Application

2)创建项目名:mybatis-demo01

3)添加jar包WEB-INF/lib目录下(目录不存在,需手动创建)

4)添加jar

4.2 数据库和表:User
# 创建数据库
CREATE DATAbase ssm_db1;
# 使用数据库
USE ssm_db1;
# 1.1 创建用户表
CREATE TABLE `user` (
  `uid` VARCHAr(32) NOT NULL,
  `username` VARCHAr(20) DEFAULT NULL,	#用户名
  `password` VARCHAr(32) DEFAULT NULL,	#密码
  `name` VARCHAr(20) DEFAULT NULL,		#昵称
  `email` VARCHAr(30) DEFAULT NULL,		#电子邮箱
  `telephone` VARCHAr(20) DEFAULT NULL,	#电话
  `birthday` DATE DEFAULT NULL,			#生日
  `sex` VARCHAr(10) DEFAULT NULL,		#性别
  `state` INT(11) DEFAULT 0,			#状态:0=未激活,1=已激活
  `code` VARCHAr(64) DEFAULT NULL,		#激活码
  PRIMARY KEY (`uid`)
) ;
# 1.2 初始化用户默认数据
INSERT INTO `user` VALUES ('u001','jack','1234','杰克','jack@czxy.com','13612345678','2015-11-04','男',0,NULL);
INSERT INTO `user` VALUES ('u002','rose','1234','肉丝','rose@czxy.com','13612345679','2015-11-05','女',0,NULL);
INSERT INTO `user` VALUES ('373eb242933b4f5ca3bd43503c34668b','ccc','ccc','aaa','bbb@store.com','15723689921','2015-11-04','男',0,'9782f3e837ff422b9aee8b6381ccf927bdd9d2ced10d48f4ba4b9f187edf7738'),('3ca76a75e4f64db2bacd0974acc7c897','bb','bb','张三','bbb@store.com','15723689921','1990-02-01','男',0,'1258e96181a9457987928954825189000bae305094a042d6bd9d2d35674684e6'),('62145f6e66ea4f5cbe7b6f6b954917d3','cc','cc','张三','bbb@store.com','15723689921','2015-11-03','男',0,'19f100aa81184c03951c4b840a725b6a98097aa1106a4a38ba1c29f1a496c231'),('c95b15a864334adab3d5bb6604c6e1fc','bbb','bbb','老王','bbb@store.com','15712344823','2000-02-01','男',0,'71a3a933353347a4bcacff699e6baa9c950a02f6b84e4f6fb8404ca06febfd6f'),('f55b7d3a352a4f0782c910b2c70f1ea4','aaa','aaa','小王','aaa@store.com','15712344823','2000-02-01','男',1,NULL);
5 入门案例:查询所有 5.1 JavaBean:User

package com.czxy.ssm.domain;

import java.util.Date;



public class User {

	private String uid;
	private String username;
	private String password;
	private String name;
	private String email;
	private Date birthday;
	private String sex;
	private Integer state;
	private String code;


	@Override
	public String toString() {
		return "User{" +
				"uid='" + uid + ''' +
				", username='" + username + ''' +
				", password='" + password + ''' +
				", name='" + name + ''' +
				", email='" + email + ''' +
				", birthday=" + birthday +
				", sex='" + sex + ''' +
				", state=" + state +
				", code='" + code + ''' +
				'}';
	}

	public String getUid() {
		return uid;
	}

	public void setUid(String uid) {
		this.uid = uid;
	}

	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;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public Integer getState() {
		return state;
	}

	public void setState(Integer state) {
		this.state = state;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public User(String uid, String username, String password, String name, String email, Date birthday, String sex, Integer state, String code) {

		this.uid = uid;
		this.username = username;
		this.password = password;
		this.name = name;
		this.email = email;
		this.birthday = birthday;
		this.sex = sex;
		this.state = state;
		this.code = code;
	}

	public User() {

	}
}

5.2 编写Dao:UserMapper

之前的开发中我们编写的都是UserDao,在MyBatis将dao称为Mapper。
所以此后所有dao接口统一命名成Mapper。

在MyBatis只需要编写接口即可,实现类由MyBatis自动生成,并在测试程序时自动执行。

package com.czxy.ssm.mapper;

import com.czxy.ssm.domain.User;
import org.apache.ibatis.annotations.Select;

import java.util.List;


public interface UserMapper {
    
    @Select("select * from user")
    public List selectAll();
}

5.3 编写核心配置文件:SqlMapConfig.xml
  • 配置文件名称:SqlMapConfig.xml

  • 配置文件位置:src


  • 配置文件内容:





	
	
		
		
			
			
			
			
				
				
				
				
				
			
		
	

	
		
		
	

5.4 测试类
package com.czxy.ssm.test;

import com.czxy.ssm.domain.User;
import com.czxy.ssm.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;


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

        //1 加载配置文件
        // 1.1 获得资源流
        InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
        // 1.2 获得工厂
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);

        //2 获得会话(连接)
        SqlSession session = factory.openSession();

        //3获得功能接口
        UserMapper userMapper = session.getMapper(UserMapper.class);

        //4 调用功能
        List userList = userMapper.selectAll();

        //5 打印查询结果
        for (User user : userList) {
            System.out.println(user);
        }
    }

}
6 总结

到这里MyBatis的入门案例已经完成。我们总结一下:

  • 编写SqlMapConfig.xml,用于配置数据源和需要加载的Mapper
  • 编写UserMapper.java接口,用于执行方法与SQL语句的绑定
  • 基本API使用,流程是:加载资源、获得工厂、获得会话、获得Mapper。
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/281808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号