在这里,我会直接写Insert Update Delete操作的简单实现,文档中从一个简单的demo到这些操作中间介绍了很多关于配置文件的详细信息,由于我水平有限,仅仅把这些具体的实现做到了,配置中还有很多东西不能够完全理解,为了不误导那些意外看到这个博客的人,便不多讲述。如果想要深入理解的话,可以看文档,或者再找一些其他好的资料。
还有,时间可能会比较紧张,所以,我在这里吧源码贴出来,具体步骤和以前的是一样,仅仅在我有体会或者有过问题的地方加下解释。源码我也会上传到下面,还有文档,建议大家自己读一下。
首先:BlogMpaper.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="mapper.BlogMapper"> <!-- 查询单个Blog --> <select id="selectBlog" parameterType="int" resultType="model.Blog"> select * from Blog where id = #{id} </select> <!-- 结果的匹配,文档中的解释为:resultMap – The most complicated and powerful element that describes how to load your objects from the database result sets. --> <resultMap type="model.Blog" id="blogMap"> <id column="id" property="id" /> <result column="title" property="title" /> <result column="content" property="content" /> </resultMap> <!-- 获取所有的数据 --> <select id="getBlog" resultType="Blog"> select * from blog </select> <!-- 插入一条记录 --> <insert id="insert1" parameterType="model.Blog" useGeneratedKeys="true" keyProperty="id"> insert into Blog (title, content) values (#{title}, #{content}) </insert> <!-- 更新一条记录 --> <update id="updateBlog" parameterType="model.Blog"> update Blog set title = #{title}, content = #{content} where id = #{id} </update> <!-- 删除一条记录 --> <delete id="deleteBlog" parameterType="int"> delete from blog where id = #{id} </delete> </mapper>
BlogMapper.java
public interface BlogMapper { Blog selectBlog(int id); List<Blog> getBlog(); int insert1(Blog blog); void deleteBlog(int id); void updateBlog(Blog blog); }
此处应该注意:虽然Mapper.xml配置文件中的参数都是单个的,但是由于parameterType="model.Blog",所以,这里在定义方法中的形参的时候,得定义为Blog类型的,如上,否则会出现Parameter 'title' not found类似的异常,具体的解释请参照:http://1358440610-qq-com.iteye.com/admin/blogs/1827391。
Demo1.java
public class Demo1 { public static void main(String[] args) { String resource = "mybatis-config.xml"; InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder() .build(inputStream); SqlSession session = sqlSessionFactory.openSession(); try { BlogMapper mapper = session.getMapper(BlogMapper.class); List<Blog> blogs = mapper.getBlog(); for (Blog blog : blogs) { System.out.println(blog + "\n" + blog.getId() + " " + blog.getTitle() + " " + blog.getContent()); System.out.println(); } Blog b = new Blog(); b.setTitle("dd"); b.setContent("content"); int id = mapper.insert1(b); System.out.println(id); Blog blog = new Blog(); blog.setId(1); mapper.updateBlog(blog); mapper.deleteBlog(1); session.commit(); } finally { session.close(); } } }
注意:在执行完方法后,必须有 session.commit();这句话进行事务提交。因为在做Insert Update Delete的时候,会先开启事务,而Mybatis不会自动提交(或许可以设置,我还不知道),所以,必须手动提交事务。
相关推荐
例如,DTD中定义了`select`、`insert`、`update`、`delete`等元素,它们分别对应SQL的四种基本操作。每个元素都可以包含`resultMap`(结果映射)、`parameterMap`(参数映射)等子元素,用来描述SQL查询返回的结果集...
MyBatis-Plus提供了自动化的CRUD操作,包括insert、insertBatch、selectOne、selectList、update、delete等方法,无需手动编写SQL。 6. **条件构造器(QueryWrapper)** QueryWrapper是MyBatis-Plus的核心组件之...
接口方法名和XML中的select、insert、update、delete元素关联,Spring会自动处理这些接口的实现。 5. **Mapper扫描器** MapperScannerConfigurer组件用于扫描应用程序上下文中的Mapper接口,自动将它们注册到...
在 Mybatis 的映射文件中,DTD 提供了关于如何构建映射语句的规范,比如 `<select>`, `<insert>`, `<update>`, 和 `<delete>` 等标签的使用。 例如,一个基本的 Mybatis 映射文件可能会包含如下的结构: ```xml <!...
在编写Mapper接口或XML配置文件时,插件会根据数据库元数据自动补全表名、字段名,甚至自动生成SELECT、INSERT、UPDATE、DELETE等基本SQL语句的模板。这样不仅减少了手动输入的工作量,还能减少因拼写错误导致的bug...
每个XML映射文件通常对应一个Mapper接口,其中包含`select`, `insert`, `update`, `delete`等元素,这些元素定义了对应的SQL操作。例如: ```xml SELECT * FROM user WHERE id = #{id} ``` 在这个例子中,`...
误点Uninject language or reference导致xml错误警告都不显示(恢复)
2. **select**、**insert**、**update**、**delete**:这些元素分别对应 SQL 的查询、插入、更新和删除操作,其中可以包含动态 SQL。 3. **resultMap**:定义了如何将数据库查询结果映射到 Java 对象,包括一对一、...
- SqlSession 提供了执行 SQL 语句和管理事务的方法,例如:selectOne、insert、update 和 delete。 2. **Mapper 接口与 XML 映射文件** - MyBatis 允许开发者定义自己的 Mapper 接口,每个方法对应一个 SQL 语句...
2. **`select`、`insert`、`update`、`delete` 元素**:这些元素定义 SQL 查询、插入、更新和删除操作,可以包含动态 SQL 部分。 3. **`resultMap` 元素**:定义结果集映射,用于将数据库查询结果转换为 Java 对象。...