这里将的是简单的增、删、改、查等基本操作

首先创建java项目,导入相应的依赖包,这里可以参考上一篇博客

1、添加数据

在jike.book.pojo包中,新建java类

JiKeUser.java:

 package jike.book.pojo;

 public class JiKeUser {
private int id;
private String userName;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
}

在jike.book.map中有:

MyBatisConfig.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> <!-- 定义别名 ,必须放在environments之前-->
<typeAliases>
<typeAlias alias="JiKeUser" type="jike.book.pojo.JiKeUser"/>
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC">
</transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/jikebook"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="jike/book/map/jikeUser.xml"/>
</mappers> </configuration>

jikeUser.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="/"> <select id="findById" parameterType="int" resultType="jike.book.pojo.JiKeUser">
select * from jikeUser where id=#{id}
</select> <insert id="insertUser" parameterType="JiKeUser" statementType="PREPARED"
keyProperty="id" useGeneratedKeys="true">
insert into JikeUser (userName,password) values(#{userName},#{password})
</insert>
</mapper>

新建测试类:

TestUpdate.java

 package jike.book.test;

 import java.io.IOException;
import java.io.Reader; import jike.book.map.InterfaceJiKeUserMap;
import jike.book.pojo.JiKeUser; 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 TestUpdate { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{
/* 添加 */
JiKeUser jku = new JiKeUser();
jku.setUserName("jike001");
jku.setPassword("");
session.insert("insertUser",jku);
session.commit(); }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
} }

执行java测试类即可

2、修改

修改数据和添加数据差不多,在jikeUser.xml中添加

 <update id="updateUser" parameterType="JiKeUser">
update JiKeUser set userName = #{userName},password=#{password}
where id=#{id}
</update>

然后将测试类改为:

package jike.book.test;

import java.io.IOException;
import java.io.Reader; import jike.book.map.InterfaceJiKeUserMap;
import jike.book.pojo.JiKeUser; 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 TestUpdate { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{
/* 修改 */
JiKeUser jku2 = new JiKeUser();
jku2.setUserName("jike00100");
jku2.setPassword("");
jku2.setId();
session.update("updateUser", jku2); session.commit(); }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
} }

即可

3、删除

删除操作稍微有些不同,首先在jike.book.map中新建一个接口

InterfaceJiKeUserMap.java,采用注解方式

 package jike.book.map;

 import org.apache.ibatis.annotations.Delete;

 public interface InterfaceJiKeUserMap {

     @Delete("delete from JiKeUser where id=#{id}" )
public void deleteUser(Integer id); }

在MyBatisConfig.xml中加入map映射

 <mapper class="jike.book.map.InterfaceJiKeUserMap" />

然后修改测试类

 package jike.book.test;

 import java.io.IOException;
import java.io.Reader; import jike.book.map.InterfaceJiKeUserMap;
import jike.book.pojo.JiKeUser; 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 TestUpdate { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /* 删除 */
InterfaceJiKeUserMap ijum = session.getMapper(InterfaceJiKeUserMap.class);
ijum.deleteUser();
session.commit(); }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
} }

即可

4、查询

查询比较麻烦,分为查询一条数据和查询多条数据

4.1 查询一条语句(两种方式:利用HashMap 和 利用 JiKeUser对象)

4.1.1 利用hashmap实现

在jikeUser.xml下添加语句

<select id="loginSelect" resultType="JiKeUser" parameterType="hashmap">
select * from JiKeUser where userName=#{userName} and password=#{password}
</select>

然后修改测试类

package jike.book.test;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List; import jike.book.pojo.JiKeUser; 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 TestSelect { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /*
* 查询一条记录
* */ /* 利用HashMap */
HashMap<String,String> hm = new HashMap();
hm.put("userName", "jike00100");
hm.put("password", "");
JiKeUser temp = session.selectOne("loginSelect",hm);
if(temp!=null){
System.out.println("登陆成功!");
} }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
}
}

4.1.2 利用 JiKeUser对象
          在jikeUser.xml下添加语句

<select id="login2" resultType="JiKeUser" parameterType="JiKeUser">
select * from JiKeUser where userName=#{userName} and password=#{password}
</select>

修改测试类:

package jike.book.test;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List; import jike.book.pojo.JiKeUser; 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 TestSelect { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /*
* 查询一条记录
* */ /* 利用 JiKeUser对象 */
JiKeUser jku = new JiKeUser();
jku.setUserName("jike00100");
jku.setPassword("");
JiKeUser onetemp = session.selectOne("login2",jku);
if(onetemp!=null){
System.out.println("登陆成功");
} }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
}
}

4.2 查询多条数据(利用resultType 和 利用resultMap)

4.2.1 利用resultType

在jikeUser.xml下添加语句

<select id="selectJiKeUserList" resultType="JiKeUser">
select * from JiKeUser
</select>

修改测试类

 package jike.book.test;

 import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List; import jike.book.pojo.JiKeUser; 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 TestSelect { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /*
* 查询多条记录
* */
/* 利用resultType */
List<JiKeUser> ap = session.selectList("selectJiKeUserList");
for(JiKeUser temp:ap){
System.out.println("用户名="+temp.getUserName()+"密码="+temp.getPassword());
} }catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
}
}

4.2.2 利用resultMap

在jikeUser.xml下添加语句

 <resultMap type="JiKeUser" id="JiKeUserMap">
<id property="id" column="id"></id>
<result property="userName" column="userName"/>
<result property="password" column="password"/>
</resultMap>
<select id="selectUsers" resultMap="JiKeUserMap">
select id,userName,password from JiKeUser
</select>

测试类:

package jike.book.test;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List; import jike.book.pojo.JiKeUser; 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 TestSelect { public static void main(String[] args) {
String resource = "jike/book/map/MyBatisConfig.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
session = sqlMapper.openSession();
try{ /*
* 查询多条记录
* */ /* 利用resultMap */
List<JiKeUser> ap1 = session.selectList("selectUsers");
for(JiKeUser temp:ap1){
System.out.println("用户名="+temp.getUserName());
}
}catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
}
}

MyBatis的简单操作的更多相关文章

  1. Mybatis框架简单使用

    Mybatis框架简单使用 环境搭建 新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等. ...

  2. 【MyBatis】MyBatis实现CRUD操作

    1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...

  3. Mybatis多表操作

    一:引言 在学习完前面的mybatis基本语法后,大家都有个认知,这个Mybatis太强大了,比之前使用JDBC写方便多了,但是你们当初在使用原生JDBC写SQL查询的时候有没有遇到过多表查询呢?肯定 ...

  4. MyBatis学习01(初识MyBatis和CRUD操作实现)

    1.初识MyBatis 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是M ...

  5. Mybatis实现简单的CRUD(增删改查)原理及实例分析

    Mybatis实现简单的CRUD(增删改查) 用到的数据库: CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user` ...

  6. x01.MagicCube: 简单操作

    看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...

  7. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  8. GitHub学习心得之 简单操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...

  9. Linq对XML的简单操作

    前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...

随机推荐

  1. [转] Linux下查看用户列表

    原文地址:http://xiaod.in/read.php?77 俺的centos vps上面不知道添加了多少个账户,今天想清理一下,但是以前还未查看过linux用户列表,google了一下,找到方便 ...

  2. Java基础知识强化91:DateFormat类之DateFormat实现日期和字符串的相互转换

    1. DateFormat类概述: DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间. 是抽象类,所以使用其子类SimpleDateFormat 2.  ...

  3. Java基础知识强化27:Object类之toString()方法

    1. Object类的toString()方法: public  String  toString():返回该对象的字符串表示 2. 案例演示: (1)Student类: package cn.itc ...

  4. spring06Aop

    1.实现前置增强 必须实现接口MethodBeforeAdvice接口 创建对应的文件 public interface Animal {//主业务接口 void eat(); //目标方法 void ...

  5. codevs 4650 破损的键盘(链表)

    /* 之前一直不重视链表 (好吧说实话主要是看着板子都是指针就怂了T.T) 这道题比较基础 应用了链表的思想 数组模拟指针 遇到的问题就是跑着跑着光标跳到前面或者跳到后面 我们用next储存每个点下一 ...

  6. C++标准库<string>简单总结

    C++标准库<string>简单总结 在C++中,如果需要对字符串进行处理,那么它自带的标准库<string>无疑是最好的选择,它实现了很多常用的字符处理函数. 要想使用标准C ...

  7. PHP 执行系统外部命令 system() exec() passthru()

    区别: system() 输出并返回最后一行shell结果. exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面. passthru() 只调用命令,把命令的运 ...

  8. Carthage&&cocopads 摘抄笔记

    Carthage 是 iOS/Mac 开发生态圈的一个包管理工具,与现在流行的 CocoaPods 不同,它是一个去中心化的解决方案.知道它已经有一段时间了,但是一直没有好好玩过,今天整合 Carth ...

  9. PHP E-mail

    PHP E-mail 注入 首先,请看上一章中的 PHP 代码: <html><body> <?phpif (isset($_REQUEST['email']))//if ...

  10. 重复造轮子感悟 – XLinq性能提升心得

    曾经的两座大山 1.EF 刚接触linq那段时间,感觉这家伙好神奇,语法好优美,好厉害.后来经历了EF一些不如意的地方,就想去弥补,既然想弥补,就必须去了解原理.最开始甚至很长一段时间都搞不懂IQue ...