使用MyBatis实现数据库的单表增删改查(CRUD)

(1)创建项目,导入项目需要的jar包
(2)编写MyBatis核心配置文件,如下:
MyBatis:

<?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 resource="db.propertise"></properties>
  	<settings>
  		<setting name="logImpl" value="LOG4J"/>
  	</settings>
  	<typeAliases>
  		<package name="an.sz.pojo"/>
  	</typeAliases>
  	<environments default="dev">
  		<environment id="dev">
  			<transactionManager type="JDBC"></transactionManager>
  			<dataSource type="POOLED">
  				<property name="driver" value="${driver}"/>
  				<property name="url" value="${url}"/>
  				<property name="username" value="${username}"/>
  				<property name="password" value="${password}"/>
  			</dataSource>
  		</environment>
  	</environments>
  	<mappers>
  		<package name="an.sz.mapper"/>
  	</mappers>
  </configuration>

(3)编写mapping映射文件
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="an.sz.mapper.UserMapper">
 	<select id="selAll" resultType="user">
 		select * from t_user
 	</select>
 	 <insert id="add" parameterType="user">
 	 	insert into t_user values(default,#{username},#{password})
 	 </insert>
 	 <!-- 实现动态更改数据 -->
 	 <update id="update" parameterType="user">
 	 	update t_user
 	 	<set>
 	 		id=#{id},
 	 		<if test="username != null and username!= ''">
 	 		username=#{username},
 	 		</if>
 	 		<if test="password !=null and password != ''">
 	 		password=#{password},
 	 		</if>
 	 	</set>
 	 	<where>
 	 	id=#{id}
 	 	</where>
 	 </update>
 	 <delete id="delete" parameterType="int">
 	 	delete from t_user where id = #{0}
 	 </delete>
 </mapper>

(4)编写UserMapper接口:

package an.sz.mapper;

import java.util.List;

import an.sz.pojo.User;

public interface UserMapper {
	List<User> selAll();
	int add(User user);
	int update(User user);
	int delete(int id);
}

(5)业务层的接口编写:
UserService:

package an.sz.service;

import java.util.List;

import an.sz.pojo.User;

public interface UserService {
	List<User> selAll();
	int insert(User user);
	int update(User user);
	int delete(int id);
}

(6)业务层的实现类编写:
UserServiceImpl:

package an.sz.service;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import an.sz.mapper.UserMapper;
import an.sz.pojo.User;
import an.sz.util.MyBatisUtil;

public class UserServiceImpl implements UserService{
	
	/**
	 * 查询所有用户信息
	 */
	@Override
	public List<User> selAll() {
		SqlSession session = MyBatisUtil.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		List<User> list = mapper.selAll();
		session.close();
		return list;
	}
	
	/**
	 * 插入用户信息
	 */
	@Override
	public int insert(User user) {
		SqlSession session = MyBatisUtil.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		int num = mapper.add(user);
		if(num>0) {
			System.out.println("SUCCESS");
			session.commit();
		}else {
			System.out.println("FAILED");
			session.rollback();
		}
		session.close();
		return num;
	}

	@Override
	public int update(User user) {
		SqlSession session = MyBatisUtil.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		int num = mapper.update(user);
		if(num>0) {
			System.out.println("SUCCESS");
			session.commit();
		}else {
			System.out.println("FAILED");
			session.rollback();
		}
		session.close();
		return num;
	}

	@Override
	public int delete(int id) {
		SqlSession session = MyBatisUtil.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		int num = mapper.delete(id);
		if(num>0) {
			System.out.println("SUCCESS");
			session.commit();
		}else {
			System.out.println("FAILED");
			session.rollback();
		}
		session.close();
		return num;
	}

}

(7)测试类的编写:
TestCRUD:

package an.sz.test;

import java.util.List;

import org.junit.Test;

import an.sz.pojo.User;
import an.sz.service.UserService;
import an.sz.service.UserServiceImpl;

public class TestCRUD {
	@Test
	public void testSelAll() {
		UserService us = new UserServiceImpl();
		List<User> list = us.selAll();
		for (User user : list) {
			System.out.println(user);
		}
	}
	@Test
	public void testInsert() {
		UserService us = new UserServiceImpl();
		User user = new User();
		user.setUsername("蜡笔小新");
		user.setPassword("222");
		int num = us.insert(user);
	}
	@Test
	public void testUpdate() {
		UserService us = new UserServiceImpl();
		User user = new User();
		user.setUsername("");
		user.setPassword("111");
		int num = us.insert(user);
	}
	@Test
	public void testDelete() {
		UserService us = new UserServiceImpl();
		int num = us.delete(4);
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值