本文介绍的是mybatis3的使用,针对使用mybatis3作为持久层框架的入门学习。下面具体讲解:
-
mybatis需要程序员手动建表,用于测试的建表语句如下:
--oracle10g
CREATE TABLE user_tbl (
id int PRIMARY KEY ,
name varchar2(20),
age int,
sex varchar2(5),
password varchar2(20)
)
create sequence user_seq;
INSERT INTO user_tbl VALUES (1, 'zs',18, '张三', 'zs');
-
连接数据库的工具类:
package util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* 连接数据库的工具类
* @author Jzl
*
*/
public class MybatisUtil {
private static SqlSessionFactory sessionFactory;
private SqlSession session;
static {
String resource = "mybatis3-config.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
public static SqlSessionFactory getSqlsessionfactory() {
return sessionFactory;
}
public static SqlSession getSession() {
return sessionFactory.openSession(false);
}
public void closeSession(SqlSession session) {
if (session != null) {
session.close();
session = null;
}
}
}
-
UserDao,用于实现对User表的CRUD操作:
package dao;
import java.util.List;
import entity.User;
public interface UserDao {
public List<User> getUserByName(String name);
public List<User> getAllUser();
public User getUser(String name);
public void insertUser(User user);
public void updateUser(User user);
public void deleteUser(int id);
}
-
不同于hibernate,mybatis映射文件(这里是UserDao.xml)映射的是Dao层的方法,用于将Dao层的方法与具体的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="dao.UserDao">
<select id="getAllUser" resultType="entity.User">
select * from user_tbl
</select>
<select id="getUserByName" parameterType="String" resultType="entity.User">
select * from user_tbl
where name like #{name}
</select>
<select id="getUser" parameterType="String" resultType="entity.User">
select * from user_tbl where
name=#{name}
</select>
<insert id="insertUser" parameterType="entity.User">
<selectKey resultType="int" order="BEFORE" keyProperty="id">
select user_seq.nextval from dual
</selectKey>
insert into user_tbl (id,name,age,sex,password)
values
(#{id},#{name},#{age},#{sex},#{password})
</insert>
<update id="updateUser" parameterType="entity.User">
update user_tbl set name = #{name},age =
#{age},
sex = #{sex},password = #{password} where id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from user_tbl where id = #{id}
</delete>
</mapper>
-
实体类User如下:
package entity;
public class User {
private int id;
private String name;
private int age;
private String sex;
private String password;
public User() {
System.out.println("--调用无参数构造方法--");
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
-
最后就可以测试了,测试类TestUser如下:
package test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import util.MybatisUtil;
import dao.UserDao;
import entity.User;
public class TestUser {
public void testGetByName() {
SqlSession session = MybatisUtil.getSession();
List<User> users = session.selectList("getUserByName", "%s%");
for (User user : users) {
System.out.println(user.getId() + "==" + user.getName());
}
session.commit();
session.close();
}
public void testGetAll() {
SqlSession session = MybatisUtil.getSession();
List<User> users = session.selectList("getAllUser");
for (User user : users) {
System.out.println(user.getId() + "==" + user.getName());
}
session.commit();
session.close();
}
public void testGet() {
SqlSession session = MybatisUtil.getSession();
UserDao userDao = session.getMapper(UserDao.class);
User user = userDao.getUser("zs");
System.out.println(user.getId() + "==" + user.getName());
session.commit();
session.close();
}
@Test
public void testAdd() {
SqlSession session = MybatisUtil.getSession();
UserDao userDao = session.getMapper(UserDao.class);
User user = new User();
// user.setId(10);
user.setName("zs");
user.setPassword("zs");
user.setAge(20);
user.setSex("女");
try {
userDao.insertUser(user);
System.out.println("id:" + user.getId());
// session.commit();
} catch (Exception e) {
e.printStackTrace();
}
// session.close();
}
public void testUpdate() {
SqlSession session = MybatisUtil.getSession();
UserDao userDao = session.getMapper(UserDao.class);
User user = userDao.getUser("sb");
user.setName("sa");
user.setAge(19);
userDao.updateUser(user);
session.commit();
session.close();
}
public void testDelete() {
SqlSession session = MybatisUtil.getSession();
UserDao userDao = session.getMapper(UserDao.class);
userDao.deleteUser(1001);
session.commit();
session.close();
}
}
-
附上测试项目的源代码。
分享到:
相关推荐
05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能...
利用LayUI+MyBatis实现CRUD操作MySQL数据库 https://blog.csdn.net/qq_29001539/article/details/105613480 雁去雁归雁不散2020-04-19 14:49:17 LayUI+MyBatis实现CRUD操作 项目描述 前端页面采用Layui进行搭建,...
以上就是使用Spring+MyBatis实现CRUD的基本流程。在实际开发中,还需要考虑事务管理、异常处理、性能优化等方面的问题。同时,随着Spring Boot和MyBatis Plus等更高级框架的出现,我们可以更快速、更简洁地搭建CRUD...
本资源"ibatis mybatis 分页 crud 完整代码"包含了这两个框架在CRUD(创建、读取、更新、删除)操作以及分页功能上的实现,下面将详细介绍相关知识点。 1. **Ibatis**: Ibatis 是一款轻量级的Java ORM(对象关系...
通过本项目示例为大家介绍两种Mybatis实现CRUD的操作 * 使用映射配置文件实现CRUD操作 * 使用注解实现CRUD操作(简单介绍) 通过本项目示例为大家介绍两种Mybatis实现CRUD的操作 * 使用映射配置文件实现CRUD操作 * ...
**MyBatis入门教程——使用MyBatis完成CRUD操作** MyBatis是一个优秀的Java持久层框架,它简化了数据库操作,将SQL语句与Java代码分离,使得开发者能够更专注于业务逻辑。本教程将带你逐步了解如何使用MyBatis进行...
本文将深入探讨如何使用MyBatis实现CRUD(创建、读取、更新、删除)操作,特别是基于接口的方式。这种方式使得代码更加简洁,易于维护。 首先,让我们了解MyBatis的基本概念。MyBatis是一个SQL映射框架,它允许...
本教程将围绕"Mybatis基础CRUD"这一主题,深入探讨MyBatis如何实现增删改查的基本操作。 首先,我们需要了解MyBatis的基本架构。MyBatis的核心组件包括SqlSessionFactory、SqlSession和Mapper接口。...
下面我们将详细介绍如何使用注解实现MyBatis的CRUD。 1. **注解简介** MyBatis 的注解主要包括 `@Select`、`@Insert`、`@Update` 和 `@Delete`,它们分别用于定义查询、插入、更新和删除操作的SQL语句。此外,还有...
本篇文章将深入探讨这两个框架,并基于`CRUD`(Create, Read, Update, Delete)操作来阐述如何使用它们进行数据库交互。同时,我们也会涉及通用分页这一实用功能。 `iBatis` 是一款由 Apache Software Foundation ...
在本文中,我们将详细介绍如何使用SpringBoot整合Mybatis实现CRUD(Create,Read,Update,Delete)操作。 为什么选择SpringBoot和Mybatis SpringBoot是基于Spring框架的微服务框架,能够快速开发Restful风格的Web...
综上所述,MyBatis基本CRUD操作涉及了数据库中的基本操作,而动态SQL则展示了MyBatis如何通过XML映射文件实现灵活的SQL构建。配合`log4j.properties`配置,开发者可以更好地理解和优化MyBatis应用的执行流程。通过...
05MyBatis的CRUD操作.md
7. **动态SQL**:MyBatis的动态SQL功能非常强大,可以在XML映射文件中使用if、choose(when/otherwise)、where、set、foreach等标签编写条件语句,实现更灵活的查询需求。 8. **缓存机制**:MyBatis提供了本地缓存...
综上所述,"Springboot_mybatis_CRUD.zip"项目展示了如何使用SpringBoot和MyBatis进行数据库操作的典型应用,提供了从创建到运行的完整流程。通过学习和实践这个项目,开发者可以更深入地理解这两个框架的结合使用...
在本示例中,"mybatis_crud增删改查数据库操作.zip" 提供了一个使用MyBatis进行CRUD(Create、Read、Update、Delete)操作的教程。通过解压这个压缩包,我们可以看到一个名为"mybatis_day03_crud"的目录,这通常包含...
通过上述步骤,我们可以清楚地看到如何使用 MyBatis 实现 CRUD 操作以及如何利用其提供的动态 SQL 功能来构建更加灵活和强大的 SQL 语句。在实际开发过程中,合理利用 MyBatis 提供的各种元素和功能,可以使我们的 ...
这个"SpringBoot+MybatisCRUD 整合案例"是为初学者设计的,旨在帮助他们快速掌握这两个流行的框架的结合使用。 首先,我们需要在项目中引入Spring Boot和MyBatis的依赖。在`pom.xml`文件中,我们需要添加以下Maven...
参照BIlibili学习视屏(https://www.bilibili.com/video/av47952553?from=search&seid=15411787773039479759),自己手动编写的crud部分代码,github仓库(https://github.com/MeiyuJijieYihou/mybatis_crud.git)。