做多语言网站教程,南宁vi设计公司,网站建设 美食站点,数据 导入 wordpress上一篇文章#xff1a;《Mybatis基本知识十六#xff1a;查询缓存之第三方查询缓存》若文中有纰漏,请多多指正#xff01;#xff01;#xff01;1.前言使用Mybatis进行开发#xff0c;不仅可以使用mapper配置文件进行开发#xff0c;也可以使用注解的方式。映射文件中无…上一篇文章《Mybatis基本知识十六查询缓存之第三方查询缓存》若文中有纰漏,请多多指正1.前言使用Mybatis进行开发不仅可以使用mapper配置文件进行开发也可以使用注解的方式。映射文件中无非就是存放着增、删、改、查的SQL映射标签Mybatis注解式开发就是要替换映射文件中的SQL标签。本章节主要讲解单表式注解开发用于注解开发的入门案例讲解后续将讲解动态SQL注解式开发以及关联关系型注解开发。2.数据准备(MySql数据库)表结构/**商品信息*/create table productinfo( id int primary key auto_increment, --主键 proName varchar(50),--商品名称 proNo varchar(50), --商品编号 proDescription varchar(200)--商品描述);实体映射public class ProductInfo { private Integer id;//主键 private String proName;//商品名称 private String proNo;//商品编号 private String proDescription;//商品描述}3.单表的增删改查注解配置1)Mybatis进行注解开发大概有以下几点事项只需配置主配置文件。mapper配置文件不再需要配置。接口中进行注解配置。2)关于插入数据自动获取主键的问题(示例中都有配置)可以通过配置insert标签的属性获取主键useGeneratedKeys: 配置此属性会告诉MyBatis利用JDBC 的 getGeneratedKeys 方法来取出由数据(比如:MySQL 和 SQL Server 这样的数据库中自动递增字段)内部生成的主键。默认:false。keyProperty: 标记一个属性(一般为要映射实体的属性), MyBatis 会通过 getGeneratedKeys 或者通过 insert 语句的 selectKey 子元素设置它的值。如果希望得到多个生成的列也可以是逗号分隔的属性名称列表。keyColumn :通过生成的键值设置表中的列名。如果希望得到多个生成的列也可以是逗号分隔的属性名称列表。如果数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server)那么你可以设置 useGeneratedKeys”true”然后再把 keyProperty 设置到目标属性上就OK。如果数据库还支持多行插入, 也可以传入一个数组或集合并返回自动生成的主键。通过获取主键对于不支持自动生成主键类型的数据库或可能不支持自动生成主键的JDBC 驱动来说可以使用标签获取主键。3)增删改查的简单配置如下注解配置/**Dao层接口*/public interface ProductInfoDao { /**保存信息,并返回主键**/ Insert(insert into ProductInfo(proName,proNo,proDescription) values(#{proName},#{proNo},#{proDescription})) Options(useGeneratedKeys true,keyPropertyid,keyColumnid) //SelectKey(statementselect identity,keyColumnid,keyPropertyid,beforefalse,resultType int.class) void saveProducrInfoCatchID(ProductInfo proInfo); /**获取所有返回LIST*/ Select(select * from ProductInfo) Results({ Result(idtrue,propertyid,columnid), Result(propertyproName,columnproName), Result(propertyproNo,columnproNo), Result(propertyproDescription,columnproDescription) }) List findAllListInfo(); /**根据主键查询*/ Select(select * from ProductInfo where id #{id}) ProductInfo findById(int id); /**根据商品编号模糊查询*/ Select(select * from ProductInfo where proNo like concat(%,#{proNo},%)) List findProInfoByProNo(String proNo); //删除 Delete(delete from productInfo where id #{id}) void deleteByID(int id); //修改 Update(update productInfo set proName #{proName},proNo#{proNo},proDescription#{proDescription} where id #{id}) void updateProduct(ProductInfo info);}测试方法public class TestDemo { private ProductInfoDao dao; SqlSession sqlSession null; Before public void setUp() throws Exception{ sqlSession MyBatisUtil.getSqlSession(); dao sqlSession.getMapper(ProductInfoDao.class); } /**保存信息,并返回主键**/ Test public void saveProducrInfoCatchID(){ ProductInfo proInfo new ProductInfo(电冰箱,002,最新款电冰箱); System.out.println(执行前:proInfo); dao.saveProducrInfoCatchID(proInfo); System.out.println(执行后:proInfo); sqlSession.commit();//提交 } //查询所有 Test public void findAllListInfo(){ List list dao.findAllListInfo(); if(list ! null){ for (ProductInfo productInfo : list) { System.out.println(productInfo); } } } /**根据主键查询*/ Test public void findById(){ ProductInfo pro dao.findById(4); System.out.println(pro); } /**根据商品编号模糊查询*/ Test public void findProInfoByProNo(){ List list dao.findProInfoByProNo(001); if(list ! null){ for (ProductInfo productInfo : list) { System.out.println(productInfo); } } } /**简单删除*/ Test public void deleteByID(){ dao.deleteByID(7); } /**简单修改*/ Test public void updateProductById(){ //1.查询修改对象 ProductInfo beforeInfo dao.findById(6); System.out.println(执行前beforeInfo:beforeInfo); //2.修改值 beforeInfo.setProDescription(修改了电视); //3.执行更新操作 dao.updateProduct(beforeInfo); //4.再查询 ProductInfo afterInfo dao.findById(6); System.out.println(执行后afterInfo:afterInfo); } After public void setDown(){ if(sqlSession ! null) sqlSession.close(); }}进行完DAO接口的注解配置一个简单的单表的增删改查也就完成了。有兴趣的learner可以亲自动手试一下。4.基本注解增删改查相关注解 增删改查相关注解结果集映射相关注解 结果集映射相关注解5.下载练习链接https://pan.baidu.com/s/1wxDPaght70sIPEV-DEeT_w 提取码4im4