20191229——mybatis 添加用户

映射文件
在User.xml来配置添加用户的sql(Statement)

   <insert id="insertUser" parameterType="cn.itcast.mybatis.pojo.User">
        insert into user(id,username,birthday,sex,address) value(#{id},#{username},#{birthday},#{sex},#{address})
    </insert>

程序代码

public void insertUserTest() throws IOException {
        //mybatis配置文件
        String resource = "SqlMapConfig.xml";
        //得到配置文件流
        InputStream inputStream =  Resources.getResourceAsStream(resource);
        //创建会话工厂,传入配置文件信息
        SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
        //通过工厂得到SqlSession
        SqlSession  sqlSession = sqlSessionFactory.openSession();
        //通过SqlSession来操作数据库
        //第一个参数:就是映射文件中statement的id,等于命名空间+statmentid
        //第二个参数:指定和映射文件中所匹配paramenterType类型的参数
        //sqlSession.selectOne结果是与你映射文件resultType类型一样
        User user = new User();
        user.setUsername("王小军");
        user.setBirthday(new Date());
        user.setSex("1");
        user.setAddress("河南郑州");
        sqlSession.insert("test.insertUser",user);
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

自增组件
mysql自增组件,执行insert提交之前,生成一个自增主键
通过函数获取到刚到插入记录的组件
LAST_INSERT_ID{}
在insert之后调用

 -->
    <!--
    将插入数据的主键返回,返回到user对象中
    SELECT LAST_INSERT_ID()得到刚insert进去记录的主键值,只适用于自增组件
    keyProperty:将查询到的主键值设置到parameterType指定的对象的属性
    order是执行顺序,相对于insert语句
    -->
    <insert id="insertUser" parameterType="cn.itcast.mybatis.pojo.User">
        <selectKey keyProperty="id" order="AFTER">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})
    </insert>

修改
非自增组件的返回
使用uuid,使用mysql的uuid函数生成主键,需要修改表中id的字段类型为String,长度设置成35位

执行思路,先通过uuid查询到主键,将主键输入到sql语句中
执行uuid语句在insert之前

删除用户

映射文件

package cn.itcast.mybatis.first;

import cn.itcast.mybatis.pojo.User;
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 org.junit.Test;

import java.util.Date;
import java.util.List;

import java.io.IOException;
import java.io.InputStream;

public class MybatisFirst{
    //根据id查血用户信息,得到一条记录结果
    @Test
    public void FindUserByIdTest() throws IOException {
        //mybatis配置文件
        String resource = "SqlMapConfig.xml";
        //得到配置文件流
         InputStream inputStream =  Resources.getResourceAsStream(resource);
        //创建会话工厂,传入配置文件信息
        SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
        //通过工厂得到SqlSession
        SqlSession  sqlSession = sqlSessionFactory.openSession();
        //通过SqlSession来操作数据库
        //第一个参数:就是映射文件中statement的id,等于命名空间+statmentid
        //第二个参数:指定和映射文件中所匹配paramenterType类型的参数
        //sqlSession.selectOne结果是与你映射文件resultType类型一样
        User user = sqlSession.selectOne("test.findUserById",1);
        System.out.println("+++++++++++++++++++++++++++++");
        System.out.println(user);
        //释放支援
        sqlSession.close();
    }
    //根据用户模糊查询用户列表
    @Test
    public void findUserByName() throws IOException {
        //mybatis配置文件
        String resource = "SqlMapConfig.xml";
        //得到配置文件流
        InputStream inputStream =  Resources.getResourceAsStream(resource);
        //创建会话工厂,传入配置文件信息
        SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
        //通过工厂得到SqlSession
        SqlSession  sqlSession = sqlSessionFactory.openSession();
        //通过SqlSession来操作数据库
        //第一个参数:就是映射文件中statement的id,等于命名空间+statmentid
        //第二个参数:指定和映射文件中所匹配paramenterType类型的参数
        //sqlSession.selectOne结果是与你映射文件resultType类型一样
        List<User>  list = sqlSession.selectList("test.findUserByName","小明");
        System.out.println(list);
        sqlSession.close();
    }
    @Test
    public void insertUserTest() throws IOException {
        //mybatis配置文件
        String resource = "SqlMapConfig.xml";
        //得到配置文件流
        InputStream inputStream =  Resources.getResourceAsStream(resource);
        //创建会话工厂,传入配置文件信息
        SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
        //通过工厂得到SqlSession
        SqlSession  sqlSession = sqlSessionFactory.openSession();
        //通过SqlSession来操作数据库
        //第一个参数:就是映射文件中statement的id,等于命名空间+statmentid
        //第二个参数:指定和映射文件中所匹配paramenterType类型的参数
        //sqlSession.selectOne结果是与你映射文件resultType类型一样
        User user = new User();
        user.setUsername("马铭泽");
        user.setBirthday(new Date());
        user.setSex("1");
        user.setAddress("河南郑州");
        sqlSession.insert("test.insertUser",user);
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void deleteUserTest() throws IOException {
        //mybatis配置文件
        String resource = "SqlMapConfig.xml";
        //得到配置文件流
        InputStream inputStream =  Resources.getResourceAsStream(resource);
        //创建会话工厂,传入配置文件信息
        SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
        //通过工厂得到SqlSession
        SqlSession  sqlSession = sqlSessionFactory.openSession();
        //通过SqlSession来操作数据库
        //第一个参数:就是映射文件中statement的id,等于命名空间+statmentid
        //第二个参数:指定和映射文件中所匹配paramenterType类型的参数
        //sqlSession.selectOne结果是与你映射文件resultType类型一样
        sqlSession.delete("test.deleteUser",29);
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void updateUserTest() throws IOException {
        //mybatis配置文件
        String resource = "SqlMapConfig.xml";
        //得到配置文件流
        InputStream inputStream =  Resources.getResourceAsStream(resource);
        //创建会话工厂,传入配置文件信息
        SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
        //通过工厂得到SqlSession
        SqlSession  sqlSession = sqlSessionFactory.openSession();
        //通过SqlSession来操作数据库
        //第一个参数:就是映射文件中statement的id,等于命名空间+statmentid
        //第二个参数:指定和映射文件中所匹配paramenterType类型的参数
        //sqlSession.selectOne结果是与你映射文件resultType类型一样
        User user = new User();
        user.setId(30);
        user.setUsername("马三");
        user.setBirthday(new Date());
        user.setSex("1");
        user.setAddress("河南郑州");
        sqlSession.insert("test.updateUser",user);
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值