Mybatis实现增删改查
作者:code袁 发布时间:2022-05-26 22:00:20
标签:Mybatis,增删,改查
一.mybatis的配置
1.1 添加相应的jar包
在lib文件夹下面添加mybatis的核心jar包以及依赖的jar包
同在lib文件夹下面加入mysql的驱动jar包
1.2 配置mybatis.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入头文件 -->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 主配置入口 -->
<configuration>
<!-- 配置 properties文件-->
<properties resource="db.properties"></properties>
<settings>
<!-- 配置日志的输出形式 -->
<setting name="logImpl" value="LOG4J" />
</settings>
<!-- 配置数据库的连接 默认使用哪一个数据库连接 -->
<environments default="mysql">
<!-- 配置mysql -->
<environment id="mysql">
<!-- 事务管理 使用JDBC -->
<transactionManager type="JDBC"></transactionManager>
<!-- type 连接属性
UNPOOLED-这个类型的数据源实现只是在每次需要的时候简单地打开和关闭连接。
POOLED-这个数据源的实现缓存了JDBC 连接对象,用于避免每次创建新的数据库连接时都初始 化和进行认证,加快程序响应。并发WEB应用通常通过这种做法来获得快速响应。
NDI- 这个数据源的配置是为了准备与像gpring或应用服务器能够在外部或者内部配置数据 源的容器一起使用,然后在NDI 上下文中引用它 -->
<dataSource type="POOLED">
<property name="driver" value="${diver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 配置映射 -->
<mappers>
<mapper resource="com/sxt/mapping/UserMapper.xml" />
</mappers>
</configuration>
1.3 创建数据库
注意:在设计数据库时,id的类型为int并且设置为主键。自动递增。
1.4 创建实体类
package com.sxt.domain;
public class User {
private Integer id;
private String name;
private String address;
private String sex;
public User(){
}
//插入
public User(String name, String address, String sex) {
super();
this.name = name;
this.address = address;
this.sex = sex;
}
//查询
public User(Integer id, String name, String address, String sex) {
super();
this.id = id;
this.name = name;
this.address = address;
this.sex = sex;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", address=" + address + ", sex=" + sex + "]";
}
}
1.5 创建接口实现的方法
package com.sxt.mapper;
import com.sxt.domain.User;
import java.util.List;
public interface UserMapper {
public void add(User user);
public void update(User user);
public void delete(Integer id); //删除的构造方法
public User queryById(Integer id);//查询的构造方法
public List<User> queryAll();
public List<User> queryLike(User user); //模糊查询
}
1.6 配置UserMapper.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入头文件 -->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sxt.mapper.UserMapper"> <!-- namespace一般与Mapper接口的限定名一致 -->
<!--添加
id对应接口里面的方法名
parameterType参数类型
-->
<insert id="add" parameterType="com.sxt.domain.User">
insert into user (name,address,sex) values(#{name},#{address},#{sex})
</insert>
<!-- 修改 -->
<update id="update" parameterType="com.sxt.domain.User">
update user set name=#{name},address=#{address},sex=#{sex} where id=#{id}
</update>
<!-- 删除 -->
<delete id="delete" parameterType="java.lang.Integer">
delete form user where id=#{value}
</delete>
<!--查询一个
resultType返回值的类型
-->
<select id="queryById" parameterType="java.lang.Integer" resultType="com.sxt.domain.User">
select * from user where id=#{value}
</select>
<!-- 全查询 -->
<select id="queryLike" resultType="com.sxt.domain.User">
<!-- select * from user where name like #{name} -->
select * from user where name like "%"#{name}"%"
</select>
<!-- 模糊查询 -->
</mapper>
1.7 创建MybatisUtils的方法
package com.sxt.utils;
import java.io.InputStream;
import javax.websocket.Session;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtils {
static InputStream is=MybatisUtils.class.getResourceAsStream("/mybatis.xml");
//得到SqlSessionFactory
static SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
//得到session
public static SqlSession openSession() {
return factory.openSession();
}
//关闭session
public static void closeSession(SqlSession session) {
//提交
session.commit();
//关闭
session.close();
}
}
二、Mybatis的增删改查
2.1 添加
package com.sxt.text;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.sxt.domain.User;
import com.sxt.mapper.UserMapper;
import com.sxt.utils.MybatisUtils;
public class mybatisTest {
public static void main(String[] args) {
SqlSession session=MybatisUtils.openSession();
UserMapper userMapper=session.getMapper(UserMapper.class);
// TODO Auto-generated method stub
User user=new User("小花", "武汉", "男");
userMapper.add(user);
System.out.println("chen");
MybatisUtils.closeSession(session);
}
2.2 修改
package com.sxt.text;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.sxt.domain.User;
import com.sxt.mapper.UserMapper;
import com.sxt.utils.MybatisUtils;
public class mybatisTest {
// SqlSession session=MybatisUtils.openSession();
// UserMapper userMapper=session.getMapper(UserMapper.class);
// @Test
// public void initData(){
public static void main(String[] args) {
SqlSession session=MybatisUtils.openSession();
UserMapper userMapper=session.getMapper(UserMapper.class);
// TODO Auto-generated method stub
// User user=new User("小明", "武汉", "男");
User user=new User(2,"小花","河北","女");
userMapper.update(user);
MybatisUtils.closeSession(session);
}
2.3 查询
package com.sxt.text;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.sxt.domain.User;
import com.sxt.mapper.UserMapper;
import com.sxt.utils.MybatisUtils;
public class mybatisTest {
// SqlSession session=MybatisUtils.openSession();
// UserMapper userMapper=session.getMapper(UserMapper.class);
// @Test
// public void initData(){
public static void main(String[] args) {
SqlSession session=MybatisUtils.openSession();
UserMapper userMapper=session.getMapper(UserMapper.class);
// TODO Auto-generated method stub
// User user=new User("小明", "武汉", "男");
//User user=new User(2,"小花","河北","女");
List<User> list=userMapper.queryAll();
System.out.println(list);
MybatisUtils.closeSession(session);
}
2.4 删除
package com.sxt.text;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.sxt.domain.User;
import com.sxt.mapper.UserMapper;
import com.sxt.utils.MybatisUtils;
public class mybatisTest {
// SqlSession session=MybatisUtils.openSession();
// UserMapper userMapper=session.getMapper(UserMapper.class);
// @Test
// public void initData(){
public static void main(String[] args) {
SqlSession session=MybatisUtils.openSession();
UserMapper userMapper=session.getMapper(UserMapper.class);
// TODO Auto-generated method stub
// User user=new User("小明", "武汉", "男");
//User user=new User(2,"小花","河北","女");
// List<User> list=userMapper.queryAll();
//System.out.println(list);
userMapper.delete(3);
MybatisUtils.closeSession(session);
}
来源:https://blog.csdn.net/qq_48164590/article/details/122295500


猜你喜欢
- 短网址(Short URL) ,顾名思义就是看起来很短的网址。自从twitter推出短网址服务以后,各大互联网公司都推出了自己的短网址服务。
- 由于大多数便携式设备支持浏览图片而不支持浏览PowerPoint 文件,所以相比较而言,图像对于用户而言更加友好。除此之外,将PowerPo
- ThreadLocal 看名字 就可以看出一点头绪来,线程本地。来看一下java对他的描述:该类提供线程本地变量。这些变量与它们的正常对应变
- 今天突然想起来,java产生随机数的问题,上机试了一下,找到了一点区别,在这里总结一下;直接调用Math.random()是产生一个[0,1
- 1. 简介直到4g时代,流量依然是宝贵的东西。而移动网络传输中,最占流量的一种载体:图片,成为了我们移动开发者不得不关注的一个问题。我们关注
- Java的反射机制允许我们对一个类的加载、实例化、调用方法、操作属性的时期改为在运行期进行,这大大提高了代码的灵活度。但在运行期进行反射操作
- mybatis-plus 可以通过@TableId注解指定主键生成策略@TableId(value="id",type=
- 本实例实现在jsp页面实现查询全国城市天气预报的功能,供大家参考,具体内容如下实例目录:实现效果:具体思路:从和风天气api那里取得具体城市
- 首先我们看看为什么需要对象复制?为什么需要对象复制如上,是我们平时开发中最常见的三层MVC架构模型,编辑操作时Controller层接收到前
- 本文实例讲述了C#设置软件开机自动运行的方法。分享给大家供大家参考,具体如下:#region/// <summary>/// 开
- 利用C#编写一个计算器。如下图,能够完成基本的四则运算。当然这个程序甚至还不上Windows附件那个自带的多功能计算器。 不过这个
- 1. 重写和覆盖的定义1.1 重写(override)的定义在C#中,用override关键字来重写一个父类中的虚方法或抽象方法。overr
- 最近有个项目的几张表,数量级在千万以上,技术栈是SpringBoot+Mybatis-plus+MySQL。如果使用单表,在进行查询操作,非
- 这篇文章主要介绍了spring如何实现两个xml配置文件间的互调,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- spring是目前最流行的框架。创建java web项目时,我们首先会遇到的配置文件就是web.xml,这是javaweb为我们封装的逻辑,
- 工具/原料vs2005步骤/方法新建安装部署项目打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也
- Lambda表达式的心得如题,因为博主也是最近才接触到Lambda表达式的(PS 在这里汗颜一会)。我并不会讲解它的原理,诚然任何一件事物如
- 目录一对一关联保存:留言表实体类配置:(主表)留言内容表配置:(从表)留言表hbm.xml配置:(主表)留言内容表hbm.xml配置:(从表
- init.rc脚本包含5种类型,Action(动作),Commands(命令), Services(服务),Options(选项), Imp
- 本文讲述了Android编程之高效开发App的10个建议。分享给大家供大家参考,具体如下:假如要Google Play上做一个最失败的案例,