02_mybatis的CRUD操作

1、XML 的实现

1.1 定义SQL映射xml文件

  1. <insert id="insertUser" parameterType="cn.imentors.mybatis.test1.User">
  2. insert into users(name, age) values(#{name}, #{age});
  3. </insert>
  4. <delete id="deleteUser" parameterType="int">
  5. delete from users where id=#{id}
  6. </delete>
  7. <update id="updateUser" parameterType="cn.imentors.mybatis.test1.User">
  8. update users set name=#{name},age=#{age} where id=#{id}
  9. </update>
  • parameterType="cn.imentors.mybatis.test1.User",这个参数类型是一个对象,所以占位符必须是对象的属性#{name}

1.2 在config.xml 中注册这个映射文件

  1. <mappers>
  2. <mapper resource="cn/imentors/mybatis/test1/UserMapper.xml"/>
  3. </mappers>
  4. </configuration>

1.3 MyBatisUtils

为了后面测试的方便,将conf.xml文件的加载,写成一个工具类

  1. package cn.imentors.mybatis.util;
  2. public class MybatisUtils {
  3. public static SqlSessionFactory getFactory() {
  4. String resource = "conf.xml";
  5. InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
  6. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
  7. return factory;
  8. }
  9. }

1.4 测试CRUD操作的XML实现

  • add
  1. @Test
  2. public void testAdd() {
  3. SqlSessionFactory factory = MybatisUtils.getFactory();
  4. //默认是手动提交的
  5. SqlSession session = factory.openSession();
  6. String statement = "cn.imentors.mybatis.test2.userMapper.insertUser";
  7. int insert = session.insert(statement , new User(3, "KK", 23));
  8. //提交
  9. session.commit();
  10. session.close();
  11. System.out.println(insert);
  12. }
  • update
  1. @Test
  2. public void testUpate() {
  3. SqlSessionFactory factory = MybatisUtils.getFactory();
  4. //默认是手动提交的
  5. SqlSession session = factory.openSession(true);
  6. String statement = "cn.imentors.mybatis.test2.userMapper.updateUser";
  7. int update = session.update(statement, new User(3, "KK444", 25));
  8. session.close();
  9. System.out.println(update);
  10. }
  • delete
  1. @Test
  2. public void testDelete() {
  3. SqlSessionFactory factory = MybatisUtils.getFactory();
  4. // 默认是手动提交的
  5. SqlSession session = factory.openSession(true);
  6. String statement = "cn.imentors.mybatis.test2.userMapper.deleteUser";
  7. int delete = session.delete(statement, 3);
  8. session.close();
  9. System.out.println(delete);
  10. }

2、注解的实现

2.1 定义SQL映射的接口

  1. public interface UserMapper {
  2. @Insert("insert into users(name, age) values(#{name}, #{age})")
  3. public int insertUser(User user);
  4. @Delete("delete from users where id=#{id}")
  5. public int deleteUserById(int id);
  6. @Update("update users set name=#{name},age=#{age} where id=#{id}")
  7. public int updateUser(User user);
  8. @Select("select * from users where id=#{id}")
  9. public User getUserById(int id);
  10. @Select("select * from users")
  11. public List<User> getAllUser();
  12. }

2.2 在conf.xml中注册这个映射接口

  1. <mapper class="cn.imentors.mybatis.test3.UserMapper"/>

2.3 测试

  1. @Test
  2. public void testAdd() {
  3. SqlSessionFactory factory = MybatisUtils.getFactory();
  4. //默认是手动提交的
  5. SqlSession session = factory.openSession(true);
  6. //加载UserMapper接口
  7. UserMapper mapper = session.getMapper(UserMapper.class);
  8. int add = mapper.add(new User(4, "SS", 45));
  9. System.out.println(add);
  10. session.close();
  11. }

捐赠我们

良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。

时间: 2024-11-10 09:16:15

02_mybatis的CRUD操作的相关文章

Hibernate对象的CRUD操作

1.  Hibernate对象的CRUD操作 1.1.  对象的三种状态 瞬时(Transient) - 由new操作符创建,且尚未与HibernateSession 关联的对象被认定为瞬时(Transient)的.瞬时(Transient)对象不会被持久化到数据库中,也不会被赋予持久化标识(identifier).如果瞬时(Transient)对象在程序中没有被引用,它会被垃圾回收器(garbage collector)销毁.使用Hibernate Session可以将其变为持久(Persis

【翻译】MongoDB指南/CRUD操作(三)

[原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近性,分布式查询(Distributed Queries),分布式写操作,模拟两阶段任务提交,在副本集中执行配额读取 1 原子性和事务(Atomicity and Transactions) 在MongoDB中,写操作在单文档级别具有原子性,即使修改一个文档中的多个嵌入式文档也是如此. 当一个写操作修

CRUD操作 create创建 read读取 update修改 delete删除

1.注释语法:--,#2.后缀是.sql的文件是数据库查询文件3.保存查询4.在数据库里面 列有个名字叫字段 行有个名字叫记录 CRUD操作:create 创建(添加)read 读取update 修改delete 删除 1.添加数据insert into Info values('p009','张三',1,'n001','2016-8-30 12:9:8') ; 给特定的列添加数据insert into Info (code,name) values('p010','李四');自增长列的处理in

使用MyBatis对表执行CRUD操作

一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-ma

Mybatis学习(二) - CRUD操作(增删改查操作)

直接上例子: 1.项目结构: 2.具体代码及配置 User.java package com.mybatis.bean; public class User { private int id; private String name; private int age; public User(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public User(){} publi

MongoDB对图片进行CRUD操作——与JAVA结合

上几篇博客简单对MongoDB进行了简单介绍和如何安装,以及在dos下是如何操作MongoDB和在安装MongoDB中,出现了什么错误,是如何解决的.当然这些都还不够,我们还要用到实际当中去.我用MyEclipse+JDK1.7做了一个简单的demo,来展示下MongoDB怎么运用到实际中去. MongoDB作为一个NoSql数据库的代表,存取多媒体数据,应该是强项吧?那么,在MongoDB中是如何对图片进行CRUD操作的. 上几篇博客中已经提到,MongoDB的文档结构是BSON格式,BSON

Spring MVC + Hibernate + Maven: Crud操作示例

Alexey是一个在使用Java,TestNG 和Selenium的自动化WEB应用程序中有丰富经验的测试开发者.他如此的喜欢QA以至于在下班后他为初级QA工程师提供培训课程. 在这篇文章中我想介绍一个Spring MVC + Hibernate + Maven例子.这组技术主要涉及一些基础知识,我想在每一个必要的地方详细解释它.本篇话题范围以外的更多资源,我会提供链接方便你阅读.在文章的最后,我将发布一个GitHub的链接. 目标 示例web应用程序是基于Spring MVC, Hiberna

MVC3和MVC4中CRUD操作

MVC3中EF实现的CRUD操作 public class HomeController : Controller { // // GET: /Home/ CarModelContainer db = new CarModelContainer(); #region 查询所有 +Index() public ActionResult Index() { List<CarModel> list = (from c in db.CarModel select c).ToList(); //View

T4 生成实体和简单的CRUD操作

<#@ template debug="false" hostspecific="false" language="C#" #> <#@ assembly name="System.Core.dll" #> <#@ assembly name="System.Data.dll" #> <#@ assembly name="System.Data.DataS