Mybatis的CRUD

1.修改配置文件Category.xml,提供CRUD对应的sql语句。

 <?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="mybatis.pojo">
<insert id="addCategory" parameterType="Category">
insert into category ( name ) values (#{name})
</insert> <delete id="deleteCategory" parameterType="Category">
delete from category where id= #{id}
</delete> <select id="getCategory" parameterType="_int" resultType="Category">
select * from category where id= #{id}
</select> <update id="updateCategory" parameterType="Category">
update category set name=#{name} where id=#{id}
</update>
<select id="listCategory" resultType="Category">
select * from category
</select>
</mapper>

2.增加(C)

向数据库中插入10条数据

     private void Myinset() throws IOException {
create();
for (int i = 0; i < 10; i++) {
Category category = new Category();
category.setName("xiaomi" + i);
session.insert("addCategory", category);
}
listAll(session);
close();
}

通过session.insert调用addCategory对应的SQL语句,addCategory对应的插入sql语句,#{name}会自动获取category对象的name属性值

 <insert id="addCategory" parameterType="Category">
insert into category ( name ) values (#{name})
</insert>

3.删除(D)

删除id=6的对象

     private void Mydelete() throws IOException {
create();
Category category = new Category();
category.setId(6);
session.delete("deleteCategory", category);
listAll(session);
close();
}

通过session.delete调用deleteCategory对应的SQL语句,deleteCategory对应删除sql语句,#{id}会获取category对象的id。

 <delete id="deleteCategory" parameterType="Category">
delete from category where id= #{id}
</delete>

4.更新(U)

通过session.update进行修改。updateCategory对应的sql语句,#{name}和#{id}获取category对象的name和id。

     <update id="updateCategory" parameterType="Category">
update category set name=#{name} where id=#{id}
</update>
     private void Myupdate() throws IOException {
create();
Category category = session.selectOne("getCategory", 3);
category.setName("修改了的Category名字");
session.update("updateCategory", category);
listAll(session); }

5.查询(R)

<1>查询所有

     private void Allquery() throws IOException {
create();
listAll(session);
close();
}

对应的sql查询语句:

     <select id="listCategory" resultType="Category">
select * from category
</select>

<2>根据id查询

通过session.selectOne获取id=3的记录,Category category= session.selectOne("getCategory",3),getCategory对应的sql语句:

     <select id="getCategory" parameterType="_int" resultType="Category">
select * from category where id= #{id}
</select>
     private void Myquery() throws IOException {
create();
Category category = session.selectOne("getCategory", 3);
System.out.println(category.getName());
close();
}

testCRUD.java

 package mybatis.test;

 import java.io.IOException;
import java.io.InputStream;
import java.util.List; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import mybatis.pojo.Category; public class testCRUD { private SqlSession session;
private InputStream inputStream;
private SqlSessionFactory sqlSessionFactory; public testCRUD() throws IOException {
// TODO Auto-generated constructor stub
String resource = "mybatis-config.xml";
this.inputStream = org.apache.ibatis.io.Resources.getResourceAsStream(resource);
this.sqlSessionFactory = new SqlSessionFactoryBuilder().build(this.inputStream);
} public void create() throws IOException {
session = sqlSessionFactory.openSession();
} public void close() {
session.commit();
session.close();
} // 1.增加
private void Myinset() throws IOException {
create();
for (int i = 0; i < 10; i++) {
Category category = new Category();
category.setName("xiaomi" + i);
session.insert("addCategory", category);
}
listAll(session);
close();
} // 2.删除
private void Mydelete() throws IOException {
create();
Category category = new Category();
category.setId(6);
session.delete("deleteCategory", category);
listAll(session);
close();
} // 3.查询
private void Myquery() throws IOException {
create();
Category category = session.selectOne("getCategory", 3);
System.out.println(category.getName());
close();
} // 4.更新
private void Myupdate() throws IOException {
create();
Category category = session.selectOne("getCategory", 3);
category.setName("修改了的Category名字");
session.update("updateCategory", category);
listAll(session); } // 5.查询所有
private void Allquery() throws IOException {
create();
listAll(session);
close();
} // 列出所有的对象名字
private void listAll(SqlSession session) {
List<Category> cs = session.selectList("listCategory");
for (Category c : cs) {
System.out.println(c.getName());
}
} public static void main(String[] args) throws IOException {
testCRUD testCRUD = new testCRUD();
// testCRUD.Myinset();
// testCRUD.Mydelete();
// testCRUD.Myquery();
testCRUD.Myupdate();
// testCRUD.Allquery();
}
}

笔记51 Mybatis快速入门(二)的更多相关文章

  1. MyBatis学习笔记(一)——MyBatis快速入门

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4261895.html 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优 ...

  2. 笔记56 Mybatis快速入门(七)

    相关概念介绍(二) 6.一级缓存 <1>在一个session里查询相同id的数据 package mybatis.annotation; import java.io.IOExceptio ...

  3. 笔记50 Mybatis快速入门(一)

    一.Mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis ...

  4. 笔记52 Mybatis快速入门(三)

    一.更多查询 1.模糊查询 修改Category.xml,提供listCategoryByName查询语句select * from category where name like concat(' ...

  5. mybatis快速入门(二)

    这次接着上次写增删改查吧. 现将上节的方法改造一下,改造测试类. package cn.my.test; import java.io.IOException; import java.io.Inpu ...

  6. 笔记55 Mybatis快速入门(六)

    相关概念介绍(一) 1.日志 有时候需要打印日志,知道mybatis执行了什么样的SQL语句,以便进行调试.这时,就需要开启日志,而mybatis自身是没有带日志的,使用的都是第三方日志,这里介绍如何 ...

  7. 笔记54 Mybatis快速入门(五)

    Mybatis中注解的使用 1.XML方式的CRUD 新增加接口CategoryMapper ,并在接口中声明的方法上,加上注解对比配置文件Category.xml,其实就是把SQL语句从XML挪到了 ...

  8. 笔记53 Mybatis快速入门(四)

    动态SQL 1.if 假设需要对Product执行两条sql语句,一个是查询所有,一个是根据名称模糊查询.那么按照现在的方式,必须提供两条sql语句:listProduct和listProductBy ...

  9. MyBatis学习总结(一)——MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

随机推荐

  1. android中使用MediaRecoder录制声音

    package com.test.mediarecorder; import java.io.File; import android.media.MediaRecorder; import andr ...

  2. oracle锁表和解锁

    1.查看锁表清空 select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; alter system k ...

  3. cordova-plugin-alipay-v2使用篇(更新至20170725)(亲测可用)

    cordova-plugin-alipay-v2使用篇(更新至20170725)(亲测可用) alipaySdk已更新至20170725版本 支付宝WS_APP_PAY_SDK_BASE_2.0 &l ...

  4. win10居然把Linux的引导覆盖了

    昨天晚上装了个windows10系统试了试,发现触摸板真的难用.最基本的双指点击做右键都搞不出来,开始菜单里要上下滚动的时候触摸板竟然要水平滑动-- 重启的时候发现居然没有Linux的引导选项了 试了 ...

  5. 【Luogu】【关卡2-4】排序Ex(2017年10月)

    任务说明:这里的排序就更上一层了.不仅融合了别的算法与技巧,排序本身也有各种花招.

  6. Magento开启模板路径提示

    Magento的模板就好像搭积木一样,一个一个区块累加为一层,一层一层嵌套为一个整体,看起来结构相当复杂.虽然大部分模板文件路径在page.xml等文件中能找到,但是还是有部分是系统自带的.在上面并没 ...

  7. SQL 查询子句

    SQL WHERE Clause(查询子句) WHERE 子句用于过滤记录. SQL WHERE 子句 WHERE子句用于提取满足指定标准的记录. SQL WHERE 语法 SELECT column ...

  8. sql 基本查询

    要查询数据库表的数据,我们使用如下的SQL语句: SELECT * FROM <表名> 假设表名是students,要查询students表的所有行,我们用如下SQL语句: -- 查询st ...

  9. APIO2019

    device: 用最小公倍数的知识或是画网格模拟转移,神仙们也可以找规律.然后就变成区间覆盖了. 忘记特殊情况了,大众分→Ag #include<iostream> #include< ...

  10. A*寻路算法C++简单实现

    搜索区域    如图所示简易地图, 其中绿色方块的是起点 (用 A 表示), 中间蓝色的是障碍物, 红色的方块 (用 B 表示) 是目的地. 为了可以用一个二维数组来表示地图, 我们将地图划分成一个个 ...