MyBatis 增、删、改、查操作

本文介绍了一个使用 MyBatis 实现增删改查功能的 Java 项目实例。项目包括 mybatis-config.xml 配置文件、UserMapper.xml 映射文件、SessionFactory 工厂类、UserDao 接口实现以及测试类。通过这些组件,演示了如何执行基本的数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示例:【MyBatis  增、删、改、查操作】

项目结构如下:

创建mybatis-config.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>
	<!-- 默认的环境id为mysql -->
	<environments default="mysql">
		<environment id="mysql">
			<!-- 指定事务管理类型 -->
			<transactionManager type="jdbc"/>
			<!-- 配置数据库连接 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
				<property name="username" value="root"/>
				<property name="password" value="root"/>
			</dataSource>
		</environment>
	</environments>
	<!-- 配置Mapper的位置 -->
	<mappers>
		<mapper resource="com/mapper/UserMapper.xml"/>
	</mappers>
</configuration>

创建SessionFactory

package com.factory;
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;
public class SessionFactory {
	private static SqlSessionFactory sessionFactory=null;
	//初始化创建SqlSessionFactory对象
	static {		
				try {
					//读取配置文件
					InputStream	is = Resources.getResourceAsStream("mybatis-config.xml");
					//根据配置文件构建SqlSessionFactory
					sessionFactory=new SqlSessionFactoryBuilder().build(is);
				} catch (IOException e) {
					e.printStackTrace();
				}				
	}
	//获取SqlSession对象
	public static SqlSession getSqlSession() {
		return sessionFactory.openSession();
	}
	// 获取SqlSessionFactory
	public static SqlSessionFactory getSqlSessionFactory() {
		return sessionFactory;
	}
}

创建UserMapper.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="com.mapper.UserMapper">	
	<!-- 添加用户 -->
	<insert id="addUser" parameterType="com.po.User">
		insert into t_user(username,password) values(#{username},#{password})
	</insert>
	<!-- 删除用户 -->
	<delete id="deleteUser" parameterType="int">
		delete from t_user where uid=#{uid}
	</delete>
	<!-- 更新用户 -->
	<update id="updateUser" parameterType="com.po.User">
		update t_user set username=#{username},password=#{password} where uid=#{uid}
	</update>
	<!-- 查询用户 -->
	<select id="getUserById" parameterType="Integer" resultType="com.po.User">
		select * from t_user where uid=#{uid}
	</select>
	<!-- 查询所有用户 -->
	<select id="getUsers" resultType="com.po.User">
		select * from t_user
	</select>
	<!-- 模糊查询 -->
	<select id="findUser" resultType="com.po.User" parameterType="String">
		select * from t_user where username like CONCAT('%',#{username},'%')
	</select>
</mapper>

创建UserDao

package com.dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.factory.SessionFactory;
import com.po.User;
public class UserDao {
	private SqlSession session=SessionFactory.getSqlSession();
	private User user;
	private List<User> users;	
	public SqlSession getSession() {
		return session;
	}
	//增加用户
	public void addUser(User user) {
		session.insert("com.mapper.UserMapper.addUser",user);
		session.commit();
		session.close();
	}
	//删除用户
	public void deleteUser(int id) {
		session.delete("com.mapper.UserMapper.deleteUser", id);
		session.commit();
		session.close();
	}
	//根据 id查询用户
	public User getUserById(Integer id) {
		user=session.selectOne("com.mapper.UserMapper.getUserById", id);
		session.commit();
		session.close();
		return user;
	}
	//查询所有用户
	public List<User> getUsers(){
		users=session.selectList("com.mapper.UserMapper.getUsers");
		session.commit();
		session.close();
		return users;
	}
	//模糊查询
	public List<User> findUser(String username){
		users=session.selectList("com.mapper.UserMapper.findUser",username);
		session.commit();
		session.close();
		return users;
	}
	//更新用户
	public void updateUser(User user,int id) {
		User u=new User();
		u=session.selectOne("com.mapper.UserMapper.getUserById", id);
		u.setUsername(user.getUsername());
		u.setPassword(user.getPassword());
		session.update("com.mapper.UserMapper.updateUser", u);
		session.commit();
		session.close();
	}
}

创建Test

package com.test;
import java.util.List;
import com.dao.UserDao;
import com.po.User;
public class Test {
	public static void main(String[] args) {
    
	}
}

增加用户

public static void main(String[] args) {
		UserDao userDao=new UserDao();
		User user=new User();
		user.setUsername("user");
		user.setPassword("user123");
		userDao.addUser(user);
	}

删除用户

public static void main(String[] args) {
		UserDao userDao=new UserDao();
		userDao.deleteUser(12);

	}

修改用户

public static void main(String[] args) {
		UserDao userDao=new UserDao();
		User user=new User();
		user.setUsername("李四");
		user.setPassword("5622");
		userDao.updateUser(user, 3);

	}

根据id查询用户

public static void main(String[] args) {
		UserDao userDao=new UserDao();
		User user=userDao.getUserById(1);
		System.out.println(user);

	}

模糊查询用户

public static void main(String[] args) {
		UserDao userDao=new UserDao();
		List<User> users=userDao.findUser("an");
		for (User u : users) {
			System.out.println(u);
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云淡风轻58

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值