栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis环境搭建

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis环境搭建

项目结构

添加Maven依赖

    mysql
    mysql-connector-java
    5.1.46


      org.mybatis
      mybatis
      3.5.7


      com.google.guava
      guava
      20.0

 

    maven_base
    
      
        src/main/java
        
          **
    int save(User user);

    
    int delete(Integer id);

    
    int update(User user);

    
    User findById(Integer id);


    
    List getList(User user);

}

xml:






    
         INSERT INTO t_user(username,email,addr) VALUES(#{username},#{email},#{addr})
    

    
         delete from t_user where id = #{id}
    

    
            UPDATE t_user SET
            username = #{username},
            email = #{email},
            addr = #{addr}
            WHERe id = #{id}
    

    
        select id, username, email, addr from t_user where username = #{username}
    


测试以及使用
public class DruidTest {
    
    static SqlSessionFactory sqlSessionFactory = null;

    static {
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //创建SqlSessionFactory对象
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }

    @Test
    public void getList() {
        //每个线程都拥有一个sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        List userList = sqlSession.selectList("com.dao.UserMapper.getList", new User() {{
            setUsername("cyz");
        }});
        System.out.println(userList);
        sqlSession.close();
    }

    @Test
    public void insert(){
        //每个线程都拥有一个sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        sqlSession.insert("com.dao.UserMapper.save", new User() {{
            setUsername("b");
            setEmail("2@qq.com");
            setAddr("quanzhou");
        }});
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void delete(){
        //每个线程都拥有一个sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        sqlSession.delete("com.dao.UserMapper.delete", 1);
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void findById(){
        //每个线程都拥有一个sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        sqlSession.selectOne("com.dao.UserMapper.findById", 1);
        sqlSession.close();
    }

    @Test
    public void update(){
        //每个线程都拥有一个sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        sqlSession.update("com.dao.UserMapper.update", new User() {{
            setId(1);
            setUsername("a");
            setEmail("2@qq.com");
            setAddr("xiamen");
        }});
        sqlSession.commit();
        sqlSession.close();
    }
}
注解代替xml(不推荐)

@Insert@Delete@Update@Select

一般就是写在dao接口对应方法上方

@Insert("INSERT INTO t_user(username,email,addr) VALUES(#{username},#{email},#{addr})")
int save(User user);

还有Provider注解:

@InsertProvider,@DeleteProvider,@UpdateProvider, @@SelectProvider

就举个插入例子:

//type 指定Provider类,method指定对应方法
@InsertProvider(type = UserProvider.class, method = "insert")
int save(User user);

public class UserProvider {

//插入
public String insert(User user) {
        String s = String.format("INSERT INTO t_user(username,email,addr) VALUES('%s','%s','%s')"
                , user.getUsername()
                , user.getEmail()
                , user.getAddr());
        System.out.println(s);
        return s;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711358.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号