基于MyBatis的CRUD操作

一、基于XML实现
1.定义SQL映射XML文件
studentMapper.xml:
<mapper namespace="com.mapping.studentMapper">
    <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getStudent,id属性值必须是唯一的,不能够重复
    使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
    resultType="com.domain.User"就表示将查询结果封装成一个Student类的对象返回
           Student类就是student表所对应的实体类
    -->
    <!-- 根据id查询得到一个student对象  -->
    <select id="getStudent" parameterType="int"
        resultType="com.domain.Student">
        select * from ksl_student where sid=#{sid}
    </select>
    
    <!-- 创建Student -->
    <insert id="addStudent" parameterType="com.domain.Student">
        insert into ksl_student(sname, sage, ssex) values (#{sname}, #{sage}, #{ssex})
    </insert>
    
    <!-- 删除Student -->
    <delete id="deleteStudent" parameterType="int">
        delete from ksl_student where sid = #{sid}
    </delete>
    
    <!-- 修改Student -->
    <update id="updateStudent" parameterType="com.domain.Student">
        update ksl_student set sname = #{sname}, sage = #{sage}, ssex = #{ssex} where sid = #{sid}
    </update>
    
    <!-- 查看全部Student -->
    <select id="getAllStudents" resultType="com.domain.Student">
        select * from ksl_student
    </select>
</mapper>
2.测试代码举例:
SqlSession sqlSession = MyBatisUtil.getSqlSession(false);
String statement = "com.mapping.studentMapper.addStudent";
Student s = new Student();
s.setSage(34);
s.setSname("liqingzhao");
s.setSsex("girl");
// 执行插入操作(返回值代表受影响的行数)
int res = sqlSession.insert(statement, s);
// 手动提交事务
sqlSession.commit();
sqlSession.close();
System.out.println(res);

二、基于注解实现
1.定义SQL映射的接口
(我们不需要针对接口去编写具体的实现类代码,具体的实现类由MyBatis动态构建出来,我们可以直接拿来使用)
public interface StudentMapperI {

@Insert("insert into ksl_student(sname, sage, ssex) values (#{sname}, #{sage}, #{ssex})")
    public int add(Student student);
    
    @Delete("delete from ksl_student where sid = #{sid}")
    public int deleteById(int sid);
    
    @Update("update ksl_student set sname = #{sname}, sage = #{sage}, ssex = #{ssex} where sid = #{sid}")
    public int update(Student student);
    
    @Select("select * from ksl_student where sid=#{sid}")
    public Student getBySId(int sid);
    
    @Select("select * from ksl_student")
    public List<Student> getAll();
}
2.在conf.xml中注册这个接口
<mapper class="com.mapping.StudentMapperI"/>
3.测试代码举例:
@Test
    public void testAdd() {
        SqlSession sqlSession = MyBatisUtil.getSqlSession(true);
        StudentMapperI mapper = sqlSession.getMapper(StudentMapperI.class);
        Student s = new Student();
        s.setSage(34);
        s.setSname("liqingzhao");
        s.setSsex("girl");
        int res = mapper.add(s);
        sqlSession.close();
        System.out.println(res);
    }

三、工具类
public class MyBatisUtil {

// 获取SqlSessionFactory
    public static SqlSessionFactory getSqlSessionFactory() {
        String resource = "conf.xml";
        InputStream is = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        return sessionFactory;
    }
    // 获取SqlSession
    public static SqlSession getSqlSession() {
        return getSqlSessionFactory().openSession();
    }
    /*
     * 获取SqlSession
     * @param isAutoCommit
     *         true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务
     *         false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务
     */
    public static SqlSession getSqlSession(boolean isAutoCommit) {
        return getSqlSessionFactory().openSession(isAutoCommit);
    }
}

原文地址:https://www.cnblogs.com/yuanfei1110111/p/10349471.html

时间: 2024-10-05 05:50:01

基于MyBatis的CRUD操作的相关文章

【MyBatis】MyBatis实现CRUD操作

1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CRUD <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http:/

尚硅谷-MyBatis的CRUD操作

项目结构: User实体类代码: package com.atguigu.mybatis.bean; public class User { private int id; private String name; private int age; public User() { super(); } public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = ag

Spring boot 入门三:spring boot 整合mybatis 实现CRUD操作

开发环境延续上一节的开发环境这里不再做介绍 添加mybatis依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> DAO层接口(这里是直接通过注解实现数据库操作,不

mybatis实现CRUD操作和优化代码及调试(mysql数据库)(三)

继续(二)说 1.工程结构 2.新建db.properties文件(我的数据库没有设置密码) driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis name=root password= 3.log4j.jar加入工程并添加log4j.xml文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:conf

基于springmvc的crud操作

下面记录我学习crud的所悟所得. 由于没有连接数据库,所以使用的是静态代码块中的伪数据. 一.首先搭建springmvc环境,导入jar包,在web.xml文件中配置dispatcherservlet:前端控制器和contextConfigLoaction:springmvc的配置文件位置(不配置的话默认springmvc的配置文件在web-info下的 applicationContext.xml文件,而我配置的是classpath:springmvc.xml,位于src目录下).在spri

java之mybatis之使用mybatis实现crud操作

目录结构: 1.封装 mybatis 的工具类: MybatisUtil.java public class MybatisUtil { private static SqlSessionFactory getSqlSessionFactory() throws IOException{ Reader reader = Resources.getResourceAsReader("mybatis.cfg.xml"); return new SqlSessionFactoryBuilde

使用MyBatis对表执行CRUD操作

一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-ma

MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

本文中使用到的测试环境是上一篇博文中的测试环境. 一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis

MyBatis 学习总结 02 对表执行增删改查(CRUD)操作 OLD

 可以对上一节中使用mybatis打开一次session的业务逻辑进行封装,封装的成工具类命名为: MyBatisUtil package com.mybatis.util; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlS