MyBatis的增删改查基本操作

2024-09-05 10:08

本文主要是介绍MyBatis的增删改查基本操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MyBatis和Hibernate的使用基本一样,区别在于Hibernate在Java代码中实现数据库操作,集成度高;Mybatis在注解或者xml文件中通过配置实现SQL语句,更加灵活


创建使用MyBatis的Java项目

1. 创建并配置

  • 创建Java项目并引入MyBaits的jar文件
  • 配置log4j.properties(用于查看执行的SQL语句,日志等)
log4j.rootLogger=DEBUG,Consolelog4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d[%t]%-5p[%c]-%m%nlog4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
  • 配置MyBaits的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost/mybatis?useSSL=false" /><property name="username" value="root" /><property name="password" value="123456" /></dataSource></environment></environments><!-- 映射文件 --><mappers><mapper resource="map/query.xml" /><mapper resource="map/insert.xml" /><mapper resource="map/update.xml" /><mapper resource="map/delete.xml" /></mappers>
</configuration>    

2.实现增删改查操作

  • 创建和数据库表对应的JavaBean
  • 创建相应的文件
  • 通过Java中调用实现相关操作
//加载配置文件并初始化
public class InsertTest {public static void main(String[] args) {String resource = "map/mybatis.xml";Reader reader = null;SqlSessionFactory factory = null;SqlSession session = null;try {reader = Resources.getResourceAsReader(resource);factory = new SqlSessionFactoryBuilder().build(reader);session = factory.openSession();/***具体功能实现部分**/session.commit();} catch (IOException e) {session.rollback();e.printStackTrace();} finally {session.close();}}
}
  • insert.xml
<!-- 插入新数据 --><!-- 语句的id,传入的数据类型,语句类型为预编译语句,主键是id,由数据库处理主键值 --><insert id="insert" parameterType="pojo.User" statementType="PREPARED"keyProperty="id" useGeneratedKeys="true">insert into mybatis(name,password)values(#{name},#{password})</insert>
  • insert实现
    User user = new User(1, "果粒橙", "果粒橙");session.insert("insert", user);
  • delete.xml
    <!-- 删除数据 --><delete id="deleteByObject" parameterType="pojo.User">delete from mybatiswhere id = #{id}</delete><delete id="deleteByID" parameterType="int">delete from mybatis whereid = #{id}</delete>
  • delete实现
        // 通过对象删除User user = new User();user.setId(3);session.delete("deleteByObject", user);// 通过ID删除session.delete("deleteByID", 2);
  • update.xml
<!-- 更新数据 --><!-- id,插入的数据类型 --><update id="update" parameterType="pojo.User">update mybatis set name=#{name},password=#{password}where id = #{id}</update>
  • update实现
    User user = new User(3, "益达", "你的益达");session.update("update", user);
  • query.xml
    <!-- 根据ID查询一个结果,返回值类型为User对象 --><select id="queryUser" resultType="pojo.User">select * from mybatis where id = #{id}</select><!-- 查询多个结果,返回值类型为User对象 --><select id="queryUsers" resultType="pojo.User">select * from mybatis</select><!-- 查询多个结果,返回resultMap --><resultMap type="pojo.User" id="queryResultMap"><id column="id" property="id"></id><result property="name" column="name" /><result property="password" column="password" /></resultMap><select id="queryMap" resultMap="queryResultMap">select * from mybatis</select>
  • query实现
    // 返回一个查询结果,返回resultTypeUser user = session.selectOne("queryUser", 1);System.out.println(user.getName());// 返回多个查询结果,返回resultTypeList<User> results = session.selectList("queryUsers");for (User user1 : results) {System.out.println(user1.getName() + "---" + user1.getPassword());}// 返回多个结果,返回resultMapList<User> results1 = session.selectList("queryMap");for (User user2 : results1) {System.out.println(user2.getName() + "---" + user2.getPassword());}

  • 表

项目下载

这篇关于MyBatis的增删改查基本操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138662

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key:

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

Mybatis中的like查询

<if test="templateName != null and templateName != ''">AND template_name LIKE CONCAT('%',#{templateName,jdbcType=VARCHAR},'%')</if>

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u

mybatis框架基础以及自定义插件开发

文章目录 框架概览框架预览MyBatis框架的核心组件MyBatis框架的工作原理MyBatis框架的配置MyBatis框架的最佳实践 自定义插件开发1. 添加依赖2. 创建插件类3. 配置插件4. 启动类中注册插件5. 测试插件 参考文献 框架概览 MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射,为开发者提供了极大的灵活性和便利性。以下是关于M

08 增删查功能

划重点: lable 标签keyup:键盘事件标签内添加样式:style使用事件修饰符:preventforEach :遍历 数组indexOf: 可以返回要查询的某个字符串值在整个字符串中首次出现的位置下标findIndex:返回传入一个测试条件(函数)符合条件数组的首个元素的位置splice:向/从数组中添加/删除项目,然后返回被删除后的新的项目数组 黑椒蟹 一对: <!DOCTYPE

mybatis if test 之 0当做参数传入出问题

首先前端传入了参数 if(StringUtils.isNotBlank(status)){requestParam.setProperty("status", Integer.parseInt(status));}List<SuperPojo> applicationList = groupDao.getApplicationListByReviewStatusAndMember(req

MongoDB学习—(3)shell的基本操作

一,删除数据库中的集合文档 命令为 db.[documentName].drop() 二,删除数据库 命令为 db.dropDatabase() 执行该命令时,应该先进入想要删除的数据库中,如 三,shell中的help 我们可以运用shell中的help来查询相关的操作,查询数据库相关的就用db.help(),查询集合相关的就用db.[documentName].help