<<<接上一篇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 的总结还将继续更新 , 如有错误还望指出,谢谢!