MyBatis-基于XML和基于注解的增删改查 -02

一、基于XML的增删改查

1、数据库操作的映射文件

<?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.weixuan.testcrud.personcrud">

	<!-- 用户的增删改查操作 -->

	<insert id="addPerson" parameterType="com.weixuan.mybatis.Person">
		<!-- 字段必须是类的属性 -->
		insert into person(personname,age) values(#{personname},#{age})
	</insert>

	<delete id="deletePerson" parameterType="int">
		delete from person where
		id= #{id}
	</delete>

	<update id="updatePerson" parameterType="com.weixuan.mybatis.Person">

		update person set
		personname= #{personname},age=#{age} where id=#{id}
	</update>

	<select id="getAll" resultType="com.weixuan.mybatis.Person">

		select * from person
	</select>


	<select id="getPerson" parameterType="int"
		resultType="com.weixuan.mybatis.Person">
		select * from person where id=#{id}
	</select>
</mapper>

2、测试类

package com.weixuan.testcrud;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import com.weixuan.mybatis.Person;

public class TestOfCrud {

	SqlSessionFactory sqlsessionfactory = MyBatisUtils.getFactory();
	SqlSession sqlsession = sqlsessionfactory.openSession(true);

	@Test
	public void testAddperson() {
		// SqlSessionFactory sqlsessionfactory = MyBatisUtils.getFactory();

		// 也可以调用重载的方法 。。设为自动提交
		// SqlSession sqlsession = sqlsessionfactory.openSession();

		String sql = "com.weixuan.testcrud.personcrud.addPerson";
		int line = sqlsession.insert(sql, new Person(-1, "lisi", 23));

		sqlsession.close();
		System.out.println(line);
	}

	@Test
	public void testDeleteperson() {
		String sql = "com.weixuan.testcrud.personcrud.deletePerson";

		sqlsession.delete(sql, 5);
		sqlsession.close();
	}

	@Test
	public void testUpdateperson() {
		String sql = "com.weixuan.testcrud.personcrud.updatePerson";

		sqlsession.update(sql, new Person(4, "zhangsan333", 23));
		sqlsession.close();
	}

	@Test
	public void testSelectAllperson() {
		String sql = "com.weixuan.testcrud.personcrud.getAll";

		List<Person> lp = sqlsession.selectList(sql);

		sqlsession.close();
		System.out.println(lp);

	}

	@Test
	public void testSelectperson() {
		String sql = "com.weixuan.testcrud.personcrud.getPerson";

		Person p = sqlsession.selectOne(sql, 1);
		sqlsession.close();

		System.out.println(p);
	}
}


3、工具类

package com.weixuan.testcrud;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtils {

	public static SqlSessionFactory getFactory() {
		String resourse = "conf.xml";
		SqlSessionFactory sqlsessionfactory = null;
		// 1、加载mybatis的配置文件
		Reader reader;
		try {
			reader = Resources.getResourceAsReader(resourse);
			// 2、构建sqlsession的工厂
			sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return sqlsessionfactory;
	}
}


二、基于注解的增删改查

1、定义sql映射的接口,实现注解

package com.weixuan.testcrud2;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.weixuan.mybatis.Person;

public interface UserMapper {

	@Insert("insert into person(personname,age) values(#{personname},#{age})")
	public void addPerson(Person person);

	@Delete("delete from person where id= #{id}")
	public void deletePersonById(int id);

	@Update("update person set personname= #{personname},age=#{age} where id=#{id}")
	public void updatePerson(Person person);

	@Select("select * from person where id=#{id}")
	public Person selectPerson(int id);

	@Select("select * from person")
	public List<Person> selectAll();
}


2、在dao类中调用

package com.weixuan.testcrud;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import com.weixuan.mybatis.Person;
import com.weixuan.testcrud2.UserMapper;

public class OfTestOfCrud2 {

	SqlSessionFactory sqlsessionfactory = MyBatisUtils.getFactory();
	SqlSession sqlsession = sqlsessionfactory.openSession(true);

	@Test
	public void testAddperson() {
		UserMapper mapper = sqlsession.getMapper(UserMapper.class);
		mapper.addPerson(new Person(-1, "nicholas", 23));
		sqlsession.close();
	}

	@Test
	public void testDeleteperson() {
		UserMapper mapper = sqlsession.getMapper(UserMapper.class);
		mapper.deletePersonById(2);
		sqlsession.close();
	}

	@Test
	public void testUpdateperson() {
		UserMapper mapper = sqlsession.getMapper(UserMapper.class);
		mapper.updatePerson(new Person(8, "nicholas", 22));
		sqlsession.close();
	}

	@Test
	public void testSelectperson() {
		UserMapper mapper = sqlsession.getMapper(UserMapper.class);
		mapper.selectPerson(6);
		sqlsession.close();
	}

	@Test
	public void testGetAllPerson() {
		UserMapper mapper = sqlsession.getMapper(UserMapper.class);
		List<Person> lp = mapper.selectAll();
		System.out.println(lp);
		sqlsession.close();
	}
}

3、不要忘了在conf.xml中注册

	<mappers>
		<mapper resource="com/weixuan/mybatis/PersonMapper.xml" />
		<mapper resource="com/weixuan/testcrud/PersonMapper.xml" />
		<mapper class="com.weixuan.testcrud2.UserMapper"/>
	</mappers>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值