mybatis高级(1)(入门回顾)

首先入门案例(并且拿到新增记录当前id)

1.创建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>
    <!-- 使用别名 -->
    <typeAliases>
        <!-- 为包下所有类使用别名,默认是简单类名 -->
        <package name="cn.cnsdhzzl.entity" />
        <!-- 对单个类,按类型名使用别名 -->
        <!-- <typeAlias type="cn.cnsdhzzl.entity.Student" alias="student" /> -->
    </typeAliases>

    <!-- 开发模式 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc的事务 -->
            <transactionManager type="JDBC" />
            <!-- 使用自带的连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
                <property name="username" value="**" />
                <property name="password" value="**" />
            </dataSource>
        </environment>
    </environments>

    <!-- 映射小配置 -->
    <mappers>
        <mapper resource="cn/cnsdhzzl/dao/StudentDAO.xml" />
    </mappers>
</configuration>

2.创建分层搭建架构

3.创建StudentDAO.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">
<mapper namespace="cn.cnsdhzzl.dao">
    <!-- 添加操作 -->
    <insert id="insertStudent">
        insert into student(id,name,address,sex)
        values(seq_ssm.nextval,#{name},#{address},#{sex})
        <selectKey keyProperty="id" resultType="int">
            select
            seq_ssm.currval from dual
        </selectKey>
    </insert>

    <!-- 删除的id名称随便写 -->
    <delete id="deleteStudentById">
        delete student where id=#{id}
    </delete>

    <!-- 修改操作 -->
    <update id="updateStudent">
        update student set
        name=#{name},address=#{address},sex=#{sex} where id=#{id}
    </update>

    <!-- 返回集合要加resultType -->
    <select id="findAll" resultType="student">
        select * from student
    </select>

    <!-- 方法一 -->
    <select id="likeSelectByStr" resultType="student">
        select * from student
        where name like '%${value}%'
    </select>
    <!-- 方法二 -->
    <!-- <select id="likeSelectByStr" resultType="student"> select * from student 
        where name like concat('%',#{stuname},'%') </select> -->

    <!-- 方法一 -->
    <select id="likeSelectByEntity" resultType="student">
        select * from student
        where name like '%${name}%'
    </select>
    <!-- 方法二 -->
    <!-- <select id="likeSelectByEntity" resultType="student"> select * from 
        student where name like concat('%',#{stuname},'%') </select> -->

</mapper>

4.实现接口方法

@Override
    public Integer addStudent(Student stu) {
        SqlSession sqlSession = SessionUtil.getSqlSession();
        int result = sqlSession.insert("insertStudent", stu);

        sqlSession.commit();
        sqlSession.close();

        System.out.println("保存结果" + result);
        return result;
    }

5.测试

@Test
    public void frist() {
        Student stu = new Student("BBB", "北京", "男");
        StudentDaoImpl dao = new StudentDaoImpl();
        dao.addStudent(stu);
        System.out.println("成功");
    }

 结果图

注意事项:

语句后面不能加';'(分号),会报sql异常

原文地址:https://www.cnblogs.com/cnsdhzzl/p/6188765.html