Mybatis,Sql注解开发

Mybatis,Sql注解开发

只适合简单的Sql语句 复杂的时候不推荐使用

1.select注解开发

1.配置接口里面的注解

@Select(select *from user)
List<User> getUserList();

2.核心配置文件绑定接口

    <mappers>
     <mapper class="com.ws.Dao.UserMapper"/>
    </mappers>

3.测试

public  void getUserList() {

    //获得Session对象
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    //getMapper  获得接口   对应的就是Dao里面的UserMapper的sql语句  直接执行
    UserMapper mapper=sqlSession.getMapper(UserMapper.class);

    List<User> userList = mapper.getUserList();

    for (User user : userList) {
        System.out.println(user);
    }
    sqlSession.close();
}
2.自动提交事务

在工具类中设置openSession的值为true的话 直接可以自动提交commit 不再使用commit

    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession(true);
    }
}
3.insert注解开发

1.接口配置

@Insert("insert into user(id,name,pwd)values(#{id},#{name},#{pwd})")
int addUser(User user);

2.之前已经绑定过了 不用再进行绑定 直接测试

@Test
public  void addUser() {

    //获得Session对象
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    //getMapper  获得接口   对应的就是Dao里面的UserMapper的sql语句  直接执行
    UserMapper mapper=sqlSession.getMapper(UserMapper.class);

     mapper.addUser(new User(5,"haha","123456"));

    sqlSession.close();
}
4. update注解开发

1.接口配置

@Update("update user set name=#{name},pwd=#{pwd} where id=#{id}")
int updateUser(User user);

2.测试

@Test
public  void updateUser() {

    //获得Session对象
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    //getMapper  获得接口   对应的就是Dao里面的UserMapper的sql语句  直接执行
    UserMapper mapper=sqlSession.getMapper(UserMapper.class);

    mapper.updateUser(new User(5,"www","155555"));

    sqlSession.close();
}
5.delete注解开发

1.接口配置 因为需要传递一个id 所以用的注解@Param 直接传递参数

@Delete("delete from user where id=#{id}")
int deleteUser(@Param("id") int id);

2.测试

@Test
public  void deleteUser() {

    //获得Session对象
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    //getMapper  获得接口   对应的就是Dao里面的UserMapper的sql语句  直接执行
    UserMapper mapper=sqlSession.getMapper(UserMapper.class);

    mapper.deleteUser(5);

    sqlSession.close();
}
6.Param()注解
  • 基本类型的参数或者String类型,也需要加上

  • 引用类型不需要加

  • 如果只有一个基本类型的话 ,可以忽略 ,但是建议大家都加上

  • 我们再SQL中引用的就是@Param中设定的属性名

  • #{}和${} 区别

  • ${}存在Sql注入 而#{}是预编译不会Sql注入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值