SSM——Mybatis学习总结(二)


<<<接上一篇SSM——Mybatis(一)

Test类实现增删改查方法一

package com.qiao.test;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.qiao.Info.Person;
public class Test {
	public static void main(String[] args) throws IOException{
		selectone();
		update();
		insert();
		delete();
		selectall();

	}
	public static void insert() throws IOException{
	     //加载配置文件 使conf.xml转换成reader输入流
		Reader reader = Resources.getResourceAsReader("conf.xml");
		/*
		*创建一个SQLSessionFactory 对象 ——SqlSessionFactoy是一个interface 所以使用SQLSessionFactoryBuilder
		*通过build方法将reader注入到SQLSessionFactory工厂中   
		*/
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
		/*
		*statement 类似 JDBC 中的 String sql = “select * from  xxx”; 
		*注:com.qiao.test.PersonMapper 为 PersonMapper.xml 文件的根目录 insertById 为 xml文件中 各个操作的id值
		*/
		String statement = "com.qiao.test.PersonMapper.insertByid"; 
		/*
		*通过openSessio方法创建一个sqlSession对象
		*sqlsessionfactory  --->   sqlsession  ---=  connection 
		* 可以理解為通過Sqlsessionfactory工厂加工一个sqlsession对象 sqlsession 就相当于 jdbc 中的 Connection
		*/
		SqlSession session = sqlsessionfactory.openSession();
		//创建Person对象
		Person person = new Person();
		person.setName("sss");
		person.setSex("男");
		person.setPhone("1333311");
		person.setHome("33333");
		person.setPwd("111155561111");
		person.setId(5);
		/*
		*insert 为 Sqlsession的方法,对应数据库的 insert 返回值类型为整形
		*  update delete 均为 Sqlsession的方法可是直接调用 和数据库中的改和查一一对应 返回值类型均为i整形
		* selectone selectList 对应数据库的 select 操作 第一个返回值为 一个 第二个返回值为多个 返回值类型为 xml中
		* 自己通过resultType 设置的返回值类型
		*/
		int num= session.insert(statement,person);
		//通过 commit 提交事务
		session.commit();
		System.out.println(num);
		session.close();
	}
	public static void delete() throws IOException{
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
		String statement = "com.qiao.test.PersonMapper.deleteById";
		SqlSession session = sqlsessionfactory.openSession();
		int num = session.delete(statement,5);
		session.commit();
		System.out.println(num);
		session.close();
	}
	public static void update() throws IOException{
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
		String statement = "com.qiao.test.PersonMapper.updateById";
		SqlSession session = sqlsessionfactory.openSession();
		Person person = new Person();
		person.setName("lx");
		person.setSex("女");
		person.setPhone("111111");
		person.setId(2);
		int num = session.update(statement, person);
		session.commit();
		System.out.println(num);
		session.close();
	}
	public static void selectone() throws IOException{
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
		String statement = "com.qiao.test.PersonMapper.selectById";
		SqlSession session = sqlsessionfactory.openSession();
		Person person = session.selectOne(statement,2);
		System.out.println(person);
		session.close();
	}
	public static void selectall() throws IOException{
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
		String statement = "com.qiao.test.PersonMapper.selectallById";
		SqlSession session = sqlsessionfactory.openSession();
		List<Person> person = session.selectList(statement);
		System.out.println(person);
		session.close();
	}
}
  • 注: 最重要的一点 通过 抽象方法来实现操作时 PersonMapper.xml文件 中的 nanespace 值必须为抽象方法的包名+类名
 <mapper namespace="com.qiao.interfaces.PersonMapper">
  • 通过接口的抽象方法实现 Mabatis - 建立 抽象方法
package com.qiao.interfaces;
import java.util.List;
import com.qiao.Info.Person;
public interface PersonMapper {
	public abstract int insertById(Person person);
	//抽象方法名、参数类型、返回值类型必须与xml文件中的id值、参数类型、返回值类型一一对应
	public abstract Person selectById(int id);
	public abstract int deleteById(int id);
	public abstract int updateById(Person person);
	public abstract List<Person> selectallById();
}
  • 编写测试类
package com.qiao.test;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.qiao.Info.Person;
import com.qiao.interfaces.PersonMapper;

public class Test1{
    public static void main(String[] args) throws IOException{
   	select();
   	insert();
   	update();
   	delete();
   	selectall();
   }
   public static void insert() throws IOException{
   	Reader reader = Resources.getResourceAsReader("conf.xml");
   	SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
   	SqlSession session = sqlsessionfactory.openSession();
   	//以上和上一个测试类原理基本相同
   	Person person = new Person();
   	person.setName("sss");
   	person.setSex("男");
   	person.setPhone("1333311");
   	person.setHome("33333");
   	person.setPwd("111155561111");
   	person.setId(5);
   	//创建PersonMapper对象
   	PersonMapper personm = session.getMapper(PersonMapper.class);	
      //调用抽象方法->通过抽象方法映射到PersonMapper.xml中的id=insertById的方法
   	int num = personm.insertById(person);
   	//提交
   	session.commit();		
   	System.out.println(num);
   	session.close();
   }
   public static void delete() throws IOException{
   	Reader reader = Resources.getResourceAsReader("conf.xml");
   	SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);		
   	SqlSession session = sqlsessionfactory.openSession();
   	PersonMapper personm = session.getMapper(PersonMapper.class);
   	int num = personm.deleteById(5);
   	session.commit();
   	System.out.println(num);
   	session.close();
   }
   public static void update() throws IOException{
   	Reader reader = Resources.getResourceAsReader("conf.xml");
   	SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
   	SqlSession session = sqlsessionfactory.openSession();
   	Person person = new Person();
   	person.setName("wu");
   	person.setSex("女");
   	person.setPhone("41241241");
   	person.setId(2);
   	PersonMapper personm = session.getMapper(PersonMapper.class);
   	int num = personm.updateById(person);
   	session.commit();
   	System.out.println(num);
   	session.close();
   }
   public static void select() throws IOException{
   	Reader reader = Resources.getResourceAsReader("conf.xml");
   	SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
   	SqlSession session = sqlsessionfactory.openSession();
   	PersonMapper personm = session.getMapper(PersonMapper.class);
   	Person person = personm.selectById(2);
   	System.out.println(person);
   	session.close();
   }
   public static void selectall() throws IOException{
   	Reader reader = Resources.getResourceAsReader("conf.xml");
   	SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader);
   	SqlSession session = sqlsessionfactory.openSession();
   	PersonMapper personm = session.getMapper(PersonMapper.class);
   	List<Person> person = personm.selectallById();
   	System.out.println(person);
   	session.close();
   }
}
  • Mybatis 的总结还将继续更新 , 如有错误还望指出,谢谢!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值