说个小技巧,增删改都是要提交事务,所以要commit ,如果不想手动commit 可以在获取Sqlsession对象时,给个true的参数:
注解实现查询(指定ID查询)
package com.bihu.Service;
import com.bihu.Bean.User;
import com.bihu.Dao.UserMapper;
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.InputStream;
import java.util.List;
public class UserService {
public static void main(String[] args) throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.findId(99999); //查询User
//下面打印
for (User item : userList) {
System.out.println(item);
}
}
}
mybatis 测试类 已设置自动提交事务
package com.bihu.Dao;
import com.bihu.Bean.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface UserMapper {
//基本数据类型(包括String都要加@Param注解 什么什么User、Map 就不用)
@Select("select * from user where id = #{id}")
List<User> findId(@Param("id") int id);
//依然可以查出来 因为内部以 @Parma注解中的id为查询
/* @Select("select * from user where id = #{id}")
List<User> findId(@Param("id") int id2); */
//报错代码 因为内部以 @Parma注解中的id为查询
/* @Select("select * from user where id = #{id}")
List<User> findId(@Param("id2") int id); */
}
mybatis 映射接口
<?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="com.bihu.Dao.UserMapper">
<!--其实注解开发是通过映射 然后在这里写<select/> 标签的 上面namespace一定要对应接口 -->
</mapper>
mybatis UserMapper映射文件
记得主配置也要映射 这些不多说。【流程不熟悉翻以前文章....】
- 我们在SQL中引用的就是@Param中设定的属性名
下面的增删改 直接写了 那些映射文件自己配即可【????上面已给出】
package com.bihu.Dao;
import com.bihu.Bean.User;
import org.apache.ibatis.annotations.*;
import java.util.Date;
import java.util.List;
public interface UserMapper {
//按ID查询
@Select("select * from user where id = #{id}")
List<User> findId(@Param("id") int id);
//增加用户(按参数)
@Insert("insert into user value(#{id},#{username},#{password},#{birthday})")
int insertUserP(@Param("id") int id,@Param("username") String username,@Param("password") String password,@Param("birthday") Date birthday);
//增加用户(按User对象 注意键值要对应哦)
@Insert("insert into user value(#{id},#{username},#{password},#{birthday})")
int insertUser(User user);
//按id 删除用户
@Delete("delete from user where id = #{id}")
int deleteUserP(@Param("id") int id);
//更改 按User对象(直接根据ID改参数)
@Update("update user set username=#{username},password=#{password},birthday=#{birthday} where id = #{id}")
int updateUser(User user);
}
映射文件配置好 直接可以用的
注解也是只能用来简单的语句 如果是复杂的 那么你就得要用XML才行哦、
作者:咸瑜