StudentDao接口:
package com.bjpowernode.dao;
import com.bjpowernode.domain.Student;
import java.util.List;
public interface StudentDao {
//查询学生
Student selectById(Integer id);
//查询所有的学生方法
List selectStudents();
//添加学生
int insertStudent(Student student);
}
使用创建好的模板mapper--创建StudentDao.xml:
使用模板,创建主配置文件mybatis.xml:
package com.bjpowernode.utils;
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 java.io.IOException;
import java.io.InputStream;
public class MybatisUtil {
private static SqlSessionFactory factory=null;
// 通过静态代码块,当MybatisUtil类被虚拟机加载的时候,就执行以下代码,把SqlSessionFactory factory创建一次
//读取主配置文件
static{
try{
String config="mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(config);
factory=new SqlSessionFactoryBuilder().build(inputStream);
}catch(IOException e){
e.printStackTrace();
}
}
//创建方法,获取SqlSession对象
public static SqlSession getSqlSession(){
SqlSession session=null;
if (factory!=null){
session=factory.openSession();//openSession(true)
}
return session;
}
}
Student类:
package com.bjpowernode.domain;
public class Student {
//属性名和列明保持一致
private Integer id;
private String name;
private String email;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "学生实体信息{" +
"id=" + id +
", name='" + name + ''' +
", email='" + email + ''' +
", age=" + age +
'}';
}
}
创建工具类优化代码:MyBatisUtil类:
package com.bjpowernode.utils;
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 java.io.IOException;
import java.io.InputStream;
public class MybatisUtil {
private static SqlSessionFactory factory=null;
// 通过静态代码块,当MybatisUtil类被虚拟机加载的时候,就执行以下代码,把SqlSessionFactory factory创建一次
//读取主配置文件
static{
try{
String config="mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(config);
factory=new SqlSessionFactoryBuilder().build(inputStream);
}catch(IOException e){
e.printStackTrace();
}
}
//创建方法,获取SqlSession对象
public static SqlSession getSqlSession(){
SqlSession session=null;
if (factory!=null){
session=factory.openSession();//openSession(true)
}
return session;
}
}
创建测试类MyTest类:
package com.bjpowernode;
import com.bjpowernode.domain.Student;
import com.bjpowernode.utils.MybatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class MyTest {
//查询测试
@Test
public void testSelectById(){
//获取SqlSession
SqlSession session= MybatisUtil.getSqlSession();
//2.指定sqlId
String sqlId="com.bjpowernode.dao.StudentDao.selectById";
//3.执行sqlSession的方法,执行sql语句
Student student = session.selectOne(sqlId, 1001);
System.out.println(student);
//4.关闭SqlSession对象
session.close();
}
//查询所有的测试
@Test
public void testSelectstudents(){
//获取SqlSession
SqlSession session= MybatisUtil.getSqlSession();
//2.指定sqlId
String sqlId="com.bjpowernode.dao.StudentDao.selectStudents";
//3.执行sqlSession的方法,执行sql语句
List student = session.selectList(sqlId);
//遍历集合
for (Student stu:student){
System.out.println("student="+stu);
}
//4.关闭SqlSession对象
session.close();
}
@Test
public void testInsertstudents(){
//获取SqlSession
SqlSession session= MybatisUtil.getSqlSession();
//2.指定sqlId
String sqlId="com.bjpowernode.dao.StudentDao.insertStudent";
//3.执行sqlSession的方法,执行sql语句
Student student=new Student();
student.setId(1008);
student.setName("东皇");
student.setEmail("donghaung@.qq.com");
student.setAge(30);
int rows = session.insert(sqlId, student);
session.commit();
System.out.println("insert的行数==="+rows);
//4.关闭SqlSession对象
session.close();
}
}
第一个测试结果:
第二个测试结果:
第三个测试结果:



