为了对MyBatis有个初步了解,现做一个简单的增、删、改、查实例。了解涉及的文件与相关作用。

MySql创建friends表,以下是表的sql语句

 DROP TABLE IF EXISTS `friend`;

 CREATE TABLE `friend` (
`id` bigint(20) NOT NULL,
`friendName` varchar(50) NOT NULL,
`sex` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

创建一个MyBatisDemo工程

本人使用IDEA 2017创建该工程,也可以使用Eclipse创建。创建工程后,新增相关Package,导入相关的jar包。

目录说明:

com.yiming.demo,存放主类main,暂无写代码。

com.yiming.mapper,存放定义Mapper接口及映射文件,如:FriendMapper文件,friendMapper.xml文件。

com.yiming.pojo,存放实体类。

com.yiming.test,存放测试类,主要用于测试CRUD的方法。

com.yiming.untils,存放工具类,本工程只有:SqlSessionFactoryUntils

db.properties,为数据库属性文件。

mybatis-config.xml,为mybatis主要配置文件。

创建及配置db.properties,mybatis-config.xml二个文件

db.properties文件

database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/test
database.username=root
database.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="db.properties"/>
<!--别名-->
<typeAliases>
<typeAlias alias="friend" type="com.yiming.pojo.Friend"/>
</typeAliases>
<!--数据库环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${database.driver}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</dataSource>
</environment>
</environments>
<!--映射文件-->
<mappers>
<mapper resource="com/yiming/mapper/friendMapper.xml"/>
</mappers>
</configuration>

创建friend表的实体类

Friend实体类

package com.yiming.pojo;

public class Friend {
private long id;
private String friendName;
private String sex; public long getId() {
return id;
} public void setId(long id) {
this.id = id;
} public String getFriendName() {
return friendName;
} public void setFriendName(String friendName) {
this.friendName = friendName;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
}
}

创建FriendMapper文件及friendMapper.xml文件

FriendMapper文件

package com.yiming.mapper;

import com.yiming.pojo.Friend;

import java.util.List;

public interface FriendMapper {
int inertFriend(Friend friend);
int updateFriend(Friend friend);
int deleteFriend(Friend friend);
Friend getFriend(long id);
List<Friend> getAllFrined(String friendName);
}

friendMapper.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.yiming.mapper.FriendMapper"> <insert id="inertFriend" parameterType="friend">
insert into friend(id,friendName, sex) values(#{id},#{friendName}, #{sex})
</insert> <delete id="deleteFriend" parameterType="long">
delete from friend where id= #{id}
</delete> <update id="updateFriend" parameterType="friend">
update friend set friendName = #{friendName}, sex = #{sex} where id= #{id}
</update> <select id="getFriend" parameterType="long" resultType="friend">
select id,friendName, sex from friend where id = #{id}
</select> <select id="getAllFrined" parameterType="string" resultType="friend">
select id, friendName, sex from friend
where friendName like concat('%', #{friendName}, '%')
</select>
</mapper>

创建SqlSessionFactoryUtils类

SqlSessionFactoryUtils类文件
package com.yiming.untils;

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; public class SqlSessionFactoryUtils {
private final static Class<SqlSessionFactoryUtils> LOCK = SqlSessionFactoryUtils.class; private static SqlSessionFactory sqlSessionFactory = null; private SqlSessionFactoryUtils() {
} public static SqlSessionFactory getSqlSessionFactory() {
synchronized (LOCK) {
if (sqlSessionFactory != null) {
return sqlSessionFactory;
}
String resource = "mybatis-config.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
return null;
}
return sqlSessionFactory;
}
} public static SqlSession openSqlSession() {
if (sqlSessionFactory == null) {
getSqlSessionFactory();
}
return sqlSessionFactory.openSession();
}
}

创建FriendCRUD测试类

FriendCRUD

package com.yiming.test;

import com.yiming.mapper.FriendMapper;
import com.yiming.pojo.Friend;
import com.yiming.untils.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test; import java.util.List; public class FriendCRUD {
SqlSession session =null;
//插入一对象测试
@Test
public void insertFriend( ){
session = SqlSessionFactoryUtils.openSqlSession();
Friend friend =new Friend();
friend.setId(1L);
friend.setFriendName("zhangsan");
friend.setSex("man");
try{
FriendMapper friendMapper = session.getMapper(FriendMapper.class);
friendMapper.inertFriend(friend);
session.commit();
}finally {
if(session !=null){
session.close();
}
}
}
@Test
public void updateFriend(){
session = SqlSessionFactoryUtils.openSqlSession();
Friend friend = new Friend();
friend.setId(1L);
friend.setFriendName("zhangsanfeng");
friend.setSex("man");
try{
FriendMapper friendMapper = session.getMapper(FriendMapper.class);
friendMapper.updateFriend(friend);
session.commit();
}finally {
if(session !=null){
session.close();
}
}
} @Test
public void getFriend(){
session = SqlSessionFactoryUtils.openSqlSession();
try{
FriendMapper friendMapper = session.getMapper(FriendMapper.class);
Friend friend = friendMapper.getFriend(1L);
System.out.print(friend.getFriendName());
}finally {
if(session !=null){
session.close();
}
}
}
@Test
public void getAllFriend(){
session = SqlSessionFactoryUtils.openSqlSession();
try{
FriendMapper friendMapper = session.getMapper(FriendMapper.class);
List<Friend> friendList = friendMapper.getAllFrined("zhangsanfeng");
for(Friend friend : friendList){
System.out.println(friend);
}
}finally {
if(session !=null){
session.close();
}
}
}
@Test
public void deleteFriend(){
session = SqlSessionFactoryUtils.openSqlSession();
try{
FriendMapper friendMapper = session.getMapper(FriendMapper.class);
friendMapper.deleteFriend(1L);
session.commit();
}finally {
if(session !=null){
session.close();
}
}
}
}

MyBatis学习总结(二)---实例的更多相关文章

  1. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  2. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  3. MyBatis学习 之 二、SQL语句映射文件(1)resultMap

    目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...

  4. 【转】MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    [转]MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据, ...

  5. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  6. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  7. Mybatis学习笔记二

    本篇内容,紧接上一篇内容Mybatis学习笔记一 输入映射和输出映射 传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型. 传递pojo包装对象 开发中通过可以使用pojo传递查询条件.查询 ...

  8. MyBatis学习笔记(二)——使用MyBatis对表执行CRUD操作

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4262895.html 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用My ...

  9. 二:MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  10. mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现

    项目结构  基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...

随机推荐

  1. 1087 All Roads Lead to Rome (30)(30 分)

    Indeed there are many different tourist routes from our city to Rome. You are supposed to find your ...

  2. UOJ_21_【UR #1】缩进优化_数学

    UOJ_21_[UR #1]缩进优化_数学 题面:http://uoj.ac/problem/21 最小化$\sum\limits{i=1}^{n}a[i]/x+a[i]\;mod\;x$ =$\su ...

  3. 二:apache的Qpid消息中间件介绍

    一:什么是Qpid?--->Qpid 是 Apache 开发的一款面向对象的消息中间件,它是一个 AMQP 的实现,可以和其他符合 AMQP 协议的系统进行通信.--->Qpid 提供了 ...

  4. Python3解leetcode Best Time to Buy and Sell Stock II

    问题描述: Say you have an array for which the ith element is the price of a given stock on day i. Design ...

  5. bash 实现菜单

    #!/bin/bash a=`ls /data1/chenggang5/kepler/cases` cat <<EOF `j=0;for i in $a;do let j=$j+1;if ...

  6. Jmeter查看结果树Unicode编码转中文方法

    本文为转载微信公众号文章,如作者发现后不愿意,请联系我进行删除 在jmeter工具的使用中,不管是测试接口还是调试性能时,查看结果树必不可少,然而在查看响应数据时,其中的中文经常以Unicode的编码 ...

  7. rmmod: chdir(/lib/modules): No such file or directory

    内核版本:linux3.4.20 交叉编译器:arm-linux-gcc 4.3.3 busybox :  busybox 1.20 问题: 使用rmmod会出现 rmmod : chdir(/lib ...

  8. JS极品日历

    <!DOCTYPE><html><head><meta http-equiv="Content-Type" content="t ...

  9. [hiho1578]Visiting Peking University

    题意:签到题,不叙述了 解题关键:模拟即可. #include<bits/stdc++.h> #define inf 0x3f3f3f3f using namespace std; typ ...

  10. POJ-3176

    Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19864   Accepted: 13172 Des ...