接口代理方式-实现规则
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatis的DTD约束-->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
mapper 核心的根标签
namespces属性:名称空间
-->
<mapper namespace="com.itheima.mapper.StudentMapper">
<!--
select 查询功能的标签
id属性:唯一标识
resultType属性:指定结果映射对象类型
paramenterType属性:指定才是映射对象类型
-->
<select id="selectAll" resultType="student">
select * from student
</select>
<select id="selectById" resultType="student" parameterType="int">
select * from student where id = #{id}
</select>
<insert id="insert" parameterType="student">
insert into student values(#{id},#{name},#{age})
</insert>
<update id="update" parameterType="student">
update student set name =#{name},age=#{age} where id =#{id}
</update>
<delete id="delete" parameterType="int">
delete from student where id =#{id}
</delete>
</mapper>
package com.itheima.service.impl;
import com.itheima.bean.Student;
import com.itheima.mapper.StudentMapper;
import com.itheima.service.StudentService;
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;
import java.util.List;
/*
业务层实现类
*/
public class StudentServiceImpl implements StudentService {
@Override
public List<Student> selectAll() {
/// 1 加载核心配置文件
List<Student> students=null;
SqlSession sqlSession=null;
InputStream inputStream =null;
try {
inputStream = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession(true);
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
students= mapper.selectAll();
} catch (IOException e) {
e.printStackTrace();
}
finally {
if(sqlSession!=null)
{
sqlSession.close();
}
if(inputStream!=null)
{
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return students;
/// 2 获取SqlSession工厂对象
/// 通过工厂对象获取SqlSession对象
// 获取StudentMapper接口实现类对象
// 通过实现类对象调用方法,接收返回结果
// 释放资源
///返回结果
}
@Override
public Student selectById(Integer id) {
Student students=null;
SqlSession sqlSession=null;
InputStream inputStream =null;
try {
inputStream = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession(true);
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
students= mapper.selectById(id);
} catch (IOException e) {
e.printStackTrace();
}
finally {
if(sqlSession!=null)
{
sqlSession.close();
}
if(inputStream!=null)
{
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return students;
}
@Override
public Integer insert(Student stu) {
Integer result=null;
SqlSession sqlSession=null;
InputStream inputStream =null;
try {
inputStream = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession(true);
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
result = mapper.insert(stu);
} catch (IOException e) {
e.printStackTrace();
}
finally {
if(sqlSession!=null)
{
sqlSession.close();
}
if(inputStream!=null)
{
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
@Override
public Integer update(Student stu) {
Integer result=null;
SqlSession sqlSession=null;
InputStream inputStream =null;
try {
inputStream = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession(true);
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
result = mapper.update(stu);
} catch (IOException e) {
e.printStackTrace();
}
finally {
if(sqlSession!=null)
{
sqlSession.close();
}
if(inputStream!=null)
{
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
@Override
public Integer delete(Integer id) {
Integer result=null;
SqlSession sqlSession=null;
InputStream inputStream =null;
try {
inputStream = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession(true);
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
result = mapper.delete(id);
} catch (IOException e) {
e.printStackTrace();
}
finally {
if(sqlSession!=null)
{
sqlSession.close();
}
if(inputStream!=null)
{
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
}