保定建设网站及推广,电商网站设计的流程,地产网站怎么做,一般网站建设费用目录
一#xff1a;MyBatis的注解式开发
1. Insert注解
2. Delete注解
3. Update注解
4. Select注解
5. Results注解 一#xff1a;MyBatis的注解式开发 MyBatis中也提供了注解式开发⽅式#xff0c;采⽤注解可以减少Sql映射⽂件的配置。 当然#xff0c;使⽤注…目录
一MyBatis的注解式开发
1. Insert注解
2. Delete注解
3. Update注解
4. Select注解
5. Results注解 一MyBatis的注解式开发 MyBatis中也提供了注解式开发⽅式采⽤注解可以减少Sql映射⽂件的配置。 当然使⽤注解式开发的话sql语句是写在java程序中的这种⽅式也会给sql语句的维护带来成本。 官⽅是这么说的 使⽤注解编写复杂的SQL是这样的 原则简单sql可以注解复杂sql使⽤xml使用注解式开发以后三兄弟之一的SqlMapper.xml文件就不需要了 1. Insert注解
二兄弟之一CarMapper接口用来编写方法 使用Insert的注解方式在注解上就可以写上SQL语句对于SQL语句当中的变量就是pojo类Car对应的变量名 package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;
import org.apache.ibatis.annotations.Insert;public interface CarMapper {// 使用注解式开发插入数据Insert(insert into t_car values(null,#{carNum},#{brand},#{guidePrice},#{produceTime},#{carType}))int insert(Car car);
}二兄弟之二CarMapperTest用来测试
package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;
import com.bjpowernode.mybatis.pojo.Car;
import com.bjpowernode.mybatis.utils.SqlSessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;public class CarMapperTest {Testpublic void testInsert(){SqlSession sqlSession SqlSessionUtil.openSession();CarMapper mapper sqlSession.getMapper(CarMapper.class);// 创建Car对象Car car new Car(null, 666, 丰田霸道, 32.0, 2023-1-9, 燃油车);int count mapper.insert(car);System.out.println(count);sqlSession.commit();sqlSession.close();}
}执行结果 2. Delete注解
二兄弟之一CarMapper接口用来编写方法
package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;
import org.apache.ibatis.annotations.Insert;public interface CarMapper {// 使用注解式开发删除数据Delete(delete from t_car where id #{id})int deleteById(Long id);
}二兄弟之二CarMapperTest用来测试
package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;
import com.bjpowernode.mybatis.pojo.Car;
import com.bjpowernode.mybatis.utils.SqlSessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;public class CarMapperTest {Testpublic void testDeleteById(){SqlSession sqlSession SqlSessionUtil.openSession();CarMapper mapper sqlSession.getMapper(CarMapper.class);int count mapper.deleteById(40L);System.out.println(count);sqlSession.commit();sqlSession.close();}
}执行结果 3. Update注解 二兄弟之一CarMapper接口用来编写方法
package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;
import org.apache.ibatis.annotations.Insert;public interface CarMapper {// 使用注解式开发更新数据Update(update t_car set car_num#{carNum},brand#{brand},guide_price#{guidePrice},produce_time#{produceTime},car_type#{carType} where id #{id})int update(Car car);
}二兄弟之二CarMapperTest用来测试
package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;
import com.bjpowernode.mybatis.pojo.Car;
import com.bjpowernode.mybatis.utils.SqlSessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;public class CarMapperTest {Testpublic void testUpdate(){SqlSession sqlSession SqlSessionUtil.openSession();CarMapper mapper sqlSession.getMapper(CarMapper.class);// 创建Car对象根据id进行更新Car car new Car(34L, 666, 丰田霸道, 32.0, 2023-1-9, 燃油车);int count mapper.update(car);System.out.println(count);sqlSession.commit();sqlSession.close();}
}执行结果 4. Select注解 二兄弟之一CarMapper接口用来编写方法
package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;
import org.apache.ibatis.annotations.Insert;public interface CarMapper {// 使用注解式开发查询数据Select(select * from t_car where id #{id})Car selectById(Long id);
}二兄弟之二CarMapperTest用来测试
package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;
import com.bjpowernode.mybatis.pojo.Car;
import com.bjpowernode.mybatis.utils.SqlSessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;public class CarMapperTest {Testpublic void testSelectById(){SqlSession sqlSession SqlSessionUtil.openSession();CarMapper mapper sqlSession.getMapper(CarMapper.class);Car car mapper.selectById(41L);System.out.println(car);sqlSession.close();}
}执行结果 5. Results注解 我们知道数据库表中的字段和pojo类的属性名有的是不一样的我们之所以能够完整的查出数据是因为在核心配置文件mybatis-config.xml当中配置了启用驼峰命名⾃动映射 !--启⽤驼峰命名⾃动映射--settingssetting namemapUnderscoreToCamelCase valuetrue//settings 如果我们不启用不对应的字段就是null查询的数据如下 那还有什么办法呢还可以使用Results注解 注从这里也能看出使用注解的方式开发对于简单点的SQL还行对于稍微复杂的查询语句就太麻烦了 package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;
import org.apache.ibatis.annotations.*;public interface CarMapper {// 使用注解式开发查询数据Select(select * from t_car where id #{id})Results({Result(property id,column id),Result(property carNum,column car_num),Result(property brand,column brand),Result(property guidePrice,column guide_price),Result(property produceTime,column produce_time),Result(property carType,column car_type),})Car selectById(Long id);
}这样计算我们不启用驼峰命名⾃动映射也能正常查询数据 结语直到今天MyBatis的学习就完美撒花了接下来就开始Spring的学习敬请期待