mybatis的CRUD操作

sql映射文件配置

<?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="sys_userMapper">
    <!--根据Id查询user表-->
    <select id="getUserById" parameterType="int" resultType="UserEntity">
        SELECT  * FROM sys_user where id=#{Id}
    </select>
    <!--CU-->
    <insert id="addUser" parameterType="UserEntity">
        INSERT INTO sys_user(name,age,gender) values(#{name},#{age},#{gender})
    </insert>
    <delete id="deleteUser" parameterType="int">
        DELETE FROM sys_user where id=#{id}
    </delete>
    <update id="updateUser" parameterType="UserEntity">
        UPDATE sys_user SET name=#{name},age=#{age},gender=#{gender} where id=#{id}
    </update>
    <select id="getUserList" resultType="UserEntity">
       SELECT * FROM sys_user
    </select>
</mapper>

代码实现

    public static void Add() {
        SqlSessionFactory factory = MybatisUtil.GetFactory();
        //默认手动提交
        SqlSession sqlSession = factory.openSession();
        String statement = "sys_userMapper.addUser";
        int insert = sqlSession.insert(statement, new UserEntity(-1, "张三", 46, 1));
        sqlSession.commit();
        sqlSession.close();
        System.out.print(insert);
    }
    public static void Delete() {
        SqlSessionFactory factory = MybatisUtil.GetFactory();
        //默认手动提交
        SqlSession sqlSession = factory.openSession(true);
        String statement = "sys_userMapper.deleteUser";
        int delete = sqlSession.delete(statement, 4);
        sqlSession.close();
        System.out.print(delete);
    }
    public static void GetUserList() {
        SqlSessionFactory factory = MybatisUtil.GetFactory();
        //默认手动提交
        SqlSession sqlSession = factory.openSession(true);
        String statement = "sys_userMapper.getUserList";
        List<UserEntity> userList = sqlSession.selectList(statement);
        sqlSession.close();
        System.out.print(userList);
    }

使用注解实现

新增接口文件,代码如下

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 java.util.List;

public interface IUserMapper {

    @Insert("INSERT INTO sys_user(name,age,gender) values(#{name},#{age},#{gender})")
    public  int Add(UserEntity userEntity);

    @Delete("DELETE FROM sys_user where id=#{id}")
    public  int Delete(int Id);

    @Update("UPDATE sys_user SET name=#{name},age=#{age},gender=#{gender} where id=#{id}")
    public int Update(UserEntity userEntity);

    @Select("SELECT * FROM sys_user")
    public List<UserEntity> GetUserList();

}

配置当前接口文件和mybatis环境的对应关系

    <mappers>
        <!--声明映射文件-->
        <!--<mapper resource="usermapper.xml"></mapper>-->
        <mapper class="IUserMapper"></mapper>
    </mappers>

代码实现

    /*使用注解实现*/
    public static void Add(int i){
        SqlSessionFactory factory = MybatisUtil.GetFactory();
        SqlSession sqlSession = factory.openSession(true);
        IUserMapper iUserMapper = sqlSession.getMapper(IUserMapper.class);
        int insert = iUserMapper.Add(new UserEntity(-1,"注解陆建",11,1));
        sqlSession.close();
        System.out.print(insert);
    }

properties文件单独配置数据库连接

新建db.properties文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dbdemo
username=root
password=lujian2@17

修改mybatis配置文件,配置configuration子节点

<properties resource="db.properties"></properties>

同时,修改数据库连接配置

<configuration>
    <properties resource="db.properties"></properties>

    <environments default="development">
        <!--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>
        <!--声明映射文件-->
        <!--<mapper resource="usermapper.xml"></mapper>-->
        <mapper class="IUserMapper"></mapper>
    </mappers>
</configuration>

字段名与实体类属性名不相同

方法一:sql语句中定义别名

方法二:封装映射关系,数据库字段名 - 实体属性名

    <!--根据Id查询user表-->
    <select id="getUserById" parameterType="int" resultType="UserEntity" resultMap="editColumn">
        SELECT * FROM sys_user where id=#{user_id}
    </select>

    <!--
        resultMap:封装映射关系
        id:主键
        result:普通字段
    -->
    <resultMap id="editColumn" type="UserEntity">
        <id property="user_id" column="id"></id>
        <result property="name" column="name"></result>
        <result property="age" column="age"></result>
        <result property="gender" column="gender"></result>
    </resultMap>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值