Mybatis (简单)

MyBatis 是一款优秀的持久层框架,用来取代传统JDBC 

需要的jar

 

一·接口实现

mybatis的主配置文件

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--外部导入properties--!>
    <properties resource="db.properties"/>
     <!-- 别名 --!>
    <typeAliases>
        <package name="javabean"/>
    </typeAliases>
     <!-- 环境配置 --!>
    <environments default="development">
        <environment id="development">
            <!-- 事务处理器 --!>
            <transactionManager type="JDBC" />
            <!-- 数据源 --!>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 映射 --!>
    <mappers>
         <!-- 加载映射的xml文件(直接写包-用package标签) --!>
        <mapper resource="StudentMapper/StudentMapper.xml"/>
    </mappers>
</configuration>

db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///123
username=root
password=123456

写接口文件和其对应的映射文件(mapper)

 

注意:接口文件和其对应的映射文件名称必须相同

StudentMapper.xml

<?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">
  <!-- namespace必须写接口文件的全路径 --!>
  <mapper namespace="StudentMapper.StudentMapper">
      <!-- 查询语句 resultType 返回类型 --!>
      <select id="selectStudentList" resultType="Student">
          select * from student
      </select>
   <!-- 添加语句 parameterType 传入值类型 --!>
   <insert id="addStudent" parameterType="Student">
          insert into student values(#{sid},#{sname},#{score},#{address},#{cid})
      </insert>
  </mapper>

StudentMapper.java

package StudentMapper;
import java.util.List;
import javabean.Student;

public interface StudentMapper {
    //这里的方法名(addStudent)称必须和其对应xml映射文件id相同
    public void addStudent(Student student);
    public  List<Student> selectStudentListAll(Map map);
}

javabean

从 XML 中构建 SqlSessionFactory

//从主配置文件获取输入流stream 
InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
//通过stream构建 SqlSessionFactory 
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream);
//通过SqlSessionFactory 获取到 sqlSession 
SqlSession sqlSession = sqlSessionFactory.openSession();
//利用sqlSession.getMapper()得到接口文件
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
//调用接口方法实现增删改查
studentMapper.addStudent(new Student(10, "好家伙", 99.9, "中国", 1));
//开启事务
sqlSession.commit();

二·注解实现(内容基本不变)

删除xml接口映射文件

 

StudentMapper.java(增加注解)

package StudentMapper;

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 javabean.Student;
public interface StudentMapper {
    @Insert("insert into student values(#{sid},#{sname},#{score},#{address},#{cid})")
    public void addStudent(Student student);
    @Delete("delete from student where sid=#{sid}")
    public void deleteStudent(int sid);
    @Update("update student set sname=#{sname},score=#{score},address=#{address},cid=#{cid} where sid=#{sid}")
    public void updateStudent(Student student);
    @Select("select * from student where sid = #{sid}")
    public Student selectStudentById(int sid);
    @Select("select * from student")
    public List<Student> selectStudentList();
}

mybatis的主配置文件修改内容

 

Mappers修改为以下(Xml文件删除所有改为扫描所在包)

 

posted @ 2021-11-30 15:34  这里那里  阅读(56)  评论(0)    收藏  举报
Live2D