mybatis极简教程

    mybatis是一个非常简单易学的orm框架,现在使用它也有一段时间了,在这里用mybatis3.4.2为例记录一下它的简单用法,在这里仅仅使用mybatis并不整合spring。

首先创建一个数据库,命名为demo,然后在数据库中创建一张表命名为staff,如图 id设为主键并且自增


目录结构如下


要注意的是,不要忘记将resources文件夹加入buildpath路径,并且将依赖的mybatis和jdbc的jar包导入Libraries

然后根据本地的环境配置jdbc.properties,我这里是这样配置的

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/demo?userUnicode=true&characterEncoding=UTF8&useSSL=false
username=root
password=123456

接下来配置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>
	<properties resource="jdbc.properties"/>
	
	<typeAliases>
		<typeAlias type="staff.domain.Staff" alias="Staff"/>
	</typeAliases>
	
	<environments default="developer">
		<environment id="developer">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"/>
				<property name="url" value="${url}"/>
				<property name="username" value="${username}"/>
				<property name="password" value="${password}"/>
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="StaffMapper.xml"/>
	</mappers>
	
</configuration>

创建Staff类

package staff.domain;


public class Staff {
	private int id;
	private String name;
	private int salary;


	public Staff() {


	}


	public Staff(String name, int salary) {
		super();
		this.name = name;
		this.salary = salary;
	}


	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 getSalary() {
		return salary;
	}


	public void setSalary(int salary) {
		this.salary = salary;
	}


	public String toString() {
		return "id: " + id + "name: " + name + "salary: " + salary;
	}
}


编写接口

package staff.mapper;

import staff.domain.Staff;

public interface StaffMapper {
	public int createStaff(Staff staff);

	public Staff queryStaff(int id);
}


然后是与之对应的StaffMapper.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="staff.mapper.StaffMapper">
	<resultMap id="StaffResultMapper" type="Staff">
		<id property="id" column="id"/>
		<result property="name" column="name"/>
		<result property="salary" column="salary"/>
	</resultMap>
	<select id="queryStaff" parameterType="int" resultMap="StaffResultMapper">
		select id,name,salary from staff where id = #{id};
	</select>
	<insert id="createStaff" parameterType="Staff" useGeneratedKeys="true" keyProperty="id">
		insert into staff(name,salary) values(#{name},#{salary});
	</insert>
	
	
	
	</mapper>


编写DataBaseUtil工具类

package staff.util;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class DataBaseUtil {
	private static SqlSessionFactory sqlsessionfactory;
	private static InputStream is;
	static {
		try {
			is = Resources.getResourceAsStream("mybatis-config.xml");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		sqlsessionfactory = new SqlSessionFactoryBuilder().build(is);
	}

	public static SqlSession getSession(boolean flag) {
		return sqlsessionfactory.openSession(flag);
	}

}

进行测试

package staff.test;

import org.apache.ibatis.session.SqlSession;

import staff.domain.Staff;
import staff.mapper.StaffMapper;
import staff.util.DataBaseUtil;

public class Test {
	public static void main(String[] args) {
		Staff staff = new Staff("张三", 10000);
		SqlSession sqlsession = DataBaseUtil.getSession(true);
		StaffMapper sm = sqlsession.getMapper(StaffMapper.class);
		sm.createStaff(staff);
	}
}

结果如图


查询测试

package staff.test;

import org.apache.ibatis.session.SqlSession;

import staff.domain.Staff;
import staff.mapper.StaffMapper;
import staff.util.DataBaseUtil;

public class Test {
	public static void main(String[] args) {

		SqlSession sqlsession = DataBaseUtil.getSession(true);
		StaffMapper sm = sqlsession.getMapper(StaffMapper.class);

		Staff s = sm.queryStaff(1);
		System.out.println(s);
	}
}


最后来看一下编写完成后的目录结构




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值