说个小技巧,增删改都是要提交事务,所以要commit ,如果不想手动commit 可以在获取Sqlsession对象时,给个true的参数:
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); } } }
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); */ }
<?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>
记得主配置也要映射 这些不多说。【流程不熟悉翻以前文章....】
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才行哦、
原文:https://www.cnblogs.com/bi-hu/p/15229100.html