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
0
投稿
猜你喜欢
- 1、本篇内容本文让大家掌握 springmvc 中异步处理请求,特别牛逼的一个功能,大家一定要掌握。2、看段代码,分析问题@Response
- package list;import java.util.ArrayList;/** * Java约瑟夫问题: n个人(不同id
- 先上代码新建一个Thread,代码如下:package com.thread.test;public class MyThread exte
- 概述Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,
- 1.概览该教程中,我将向你展示:如何在测试时设置spring boot 日志级别。虽然我们可以在测试通过时忽略日志,但是如果需要诊断失败的测
- 1.位置:如下:如果没有则在相同位置新建一个2. 添加端口号,修改:如图server.port=8080启动项目就会发现端口号已经成为你刚才
- 前言Spring5带来了新的响应式web开发框架WebFlux,同时,也引入了新的HttpClient框架WebClient。WebClie
- 正则: “.”和"\""."点儿,在正则表达式中表示任意一个字符。"\"在正则表
- 本篇实例内容是关于C#读取CAD文件的,直接看代码//在不使用任务插件的情况下读取DWG文件的缩略图,以便在没有安装AutoCAD的计算机上
- 一、概述从3.1版本起,Spring框架就已经支持将缓存添加到现有的Spring应用中,和事务支持一样,缓存抽象允许在对代码影响最小的情况下
- 泛型是Java中一个非常重要的内容,对于Java进阶学习是必须要掌握的知识点之所以说这个知识点重要,如果你有过阅读过一些开源框架的代码,那你
- 关于 swagger 本文不再赘述,网上文章很多。本文要讲的是Knife4j3.0.3 整合SpringBoot 2.6.4,因为 knif
- 同时使用and和or的查询UserServiceImpl 类,service实现类import org.springframework.be
- Android基础教程数据存储之文件存储将数据存储到文件中并读取数据1、新建FilePersistenceTest项目,并修改activit
- 自动注入和@Autowire@Autowire不属于自动注入!注入方式(重要)在Spring官网上(文档),定义了在Spring中的注入方式
- 一 技术发展技术的创新和发展都是为了解决一类问题二 框架设计Spring Framework 6大模块三 Spring AOP详解循环依赖问
- OverView今天在复习的时候,突然复习到我们的相机操作,但是对于相机操作,对于我来说比较复杂的是对于权限的操作。所有我们需要对我们的相机
- log4j2支持日志的异步打印,日志异步输出的好处在于,使用单独的进程来执行日志打印的功能,可以提高日志执行效率,减少日志功能对正常业务的影
- hashCode()和equals()方法可以说是Java完全面向对象的一大特色.它为我们的编程提供便利的同时也带来了很多危险.这篇文章我们
- 一、前言无论承接什么样的需求,是不是身边总有那么几个人代码写的烂,但是却时常有测试小姐姐过来聊天(求改bug)、有产品小伙伴送吃的(求写需求