Maven链接数据库(3.6)

在标注的这一行报错是UserMapper中的查询语句或者是id错误

 

报错应该是Usermapper中查询语句错误

 链接数据库之后的数据库语句放在mapper文件夹下的UserMapper中

 

 

 右键com.baidu.pojo→new→package→命名com.baidu.util(前缀一样)

这个是工具 用来简化test

package com.baidu.util;

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 java.io.IOException;
import java.io.Reader;

//工具类
public class MybatisUtils {
    private static SqlSessionFactory sqlMapper = null;
    static {
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            sqlMapper=new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //获取sqlSession对象的静态方法
    public static SqlSession getSession(){
        return sqlMapper.openSession();//打开一个Session
    }
}

 

 

 右键util包新建一个类MybatisUtils

 

 再回去修改Test文件

 

package com.baidu.pojo;

import com.baidu.util.MybatisUtils;
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 java.io.IOException;
import java.io.Reader;

public class Test {
   @org.junit.Test
    public void findByIdTest(){
       SqlSession session = MybatisUtils.getSession();
       User user = session.selectOne("findById",1);
            System.out.println(user);
    }
    @org.junit.Test
    public void insert(){
            SqlSession session = MybatisUtils.getSession();
            User user = new User();
            user.setUname("a");
            user.setUage(20);
            session.insert("add",user);
            session.commit();//提交
    }
}

修改方法现在test中写好修改代码

 

    @org.junit.Test
    //修改
    public void update(){
       SqlSession s = MybatisUtils.getSession();
       User u = new User();
       //要修改的值
        u.setUid(1);
       u.setUname("11111");
       u.setUage(23);
       s.update("edit",u);
       s.commit();
    }
}

 

 

再到UserMapper中写sql修改语句

    <update id="edit" parameterType="User">
<!--        井号后面是调用uame中的属性-->
        update users set uname=#{uname},uage=#{uage} where uid=#{uid}
    </update>

update中的 id对应test中的s.update("edit",u)中的edit

添加和查询相同 

所有语句写法按照删除顺序写

先在UserMapper中写

<!--    先在SQL中写sql语句正确之后再写到这里 -->
    <delete id="del" parameterType="int">
        delete from users where uid=#{uid}
    </delete>

 

 

 

 再在test写

SqlSession s = MybatisUtils.getSession();所有增删改查都要写这一句
s用于公共的语句调用像
        s.delete("del",1);
        s.commit();

    @org.junit.Test
    public void delete(){
        SqlSession s = MybatisUtils.getSession();
        s.delete("del",1);
        s.commit();
    }

 

posted @ 2023-03-06 09:54  Tokaitei32  阅读(89)  评论(0)    收藏  举报