嗨害嗨,作業來嘍 背包問題 01背包和完全背包問題都是一個背景下的:我有一個容量為M的背包,現在地上有N個物品,我跟個小偷似的眼裡只有i個物品的價值vi和重量wi,現在我要做的就是為了偷的東西更值錢拿走一些東西,使它們的價值是所有方案里最大的 01背包 背景如上,01背包就是我眼前的這些東西都是孤品 ...
Mybatis註解開發
註解開發可以減少編寫Mapper映射文件,常用註解如下:
- @Insert:新增
- @Update:更新
- @Delete:刪除
- @Select:查詢
- @Result:結果集
- @Results:封裝多個結果集
- @One:一對一結果集封裝
- @Mary:一對多結果集封裝
註解開發步驟如下:
- 將mapper.xml中的sql語句分別以註釋的方式添加到DAO介面中對應的方法上,如:
public interface UserMapper {
@Select("select * from user")
public List<User> findAll();
@Select("select * from user where id=#{id}")
public User findById(int id);
}
- 修改mybatis配置文件中的映射標簽,用package標簽替換掉mapper標簽,值得註意的是,name屬性只需指定到mapper介面所在的包名,不然會出現
Type interface com.rsk.dao.UserMapper is not known to the MapperRegistry
錯誤
<!--載入映射文件-->
<mappers>
<!--xml開發-->
<!-- <mapper resource="com/rsk/mapper/UserMapper.xml"></mapper>-->
<!--註解開發-->
<package name="com.rsk.dao"/>
</mappers>
- 與xml方式一樣,最後構造sqlsesion來動態代理DAO的實現
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> all = userMapper.findAll();
User user = userMapper.findById(1);
System.out.println(all);
System.out.println(user.getName());