扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
广河网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。成都创新互联公司从2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
注意:这里的简单类型不是指的基本数据类型。
publicinterfaceEmpMapper { /** * 通过这个方法对应Mapper配置文件中的SQL语句 * @paramempId 当前方法的参数对应SQL语句中#{empId}声明的参数 * @return当前方法的返回值类型和resultType属性指定的类型一致 */ abstractpublicEmp selectById(long empId); } |
select emp_id empId,emp_name empName,emp_pwd empPwd,emp_gender empGender , emp_salary empSalary from sys_emp where emp_id = #{empId} |
1)EmpMapper接口中抽象方法声明
abstract public int insert(Emp emp);
2)SQL语句
<insert id=”insert”>
insert into sys_emp(emp_name,emp_pwd,emp_gender,emp_salary)
values(#{empName},#{empPwd},#{empGender},#{empSalary})
如果是实体类类型的参数,此时,#{}中的名字就不能随便写了,此时表达式中的名字,就需要和Emp实体类中getXxx方法名,去掉get,然后剩下的单词其首字母小写后的名字相对应。
mybaits会根据#{}表达式中的名字,根据反射机制,找到Emp中的getXxx方法,获取对应的数据。
如果零散的简单类型太多了,可以使用Map类型
create table sys_emp( emp_id bigint auto_increment, emp_name varchar(20), emp_pwd varchar(20), emp_gender enum('m','f'), emp_salary double(10,5), primary key(emp_id) );
INSERT INTO `sys_emp` VALUES (null, '范冰冰', 'fbb', 'f', 100.5); INSERT INTO `sys_emp` VALUES (null, '李冰冰', 'lbb', 'f', 300); INSERT INTO `sys_emp` VALUES (null, '张彬彬', 'zbb', 'm', 599); INSERT INTO `sys_emp` VALUES (null, '万茜', 'wq', 'm', 4000); INSERT INTO `sys_emp` VALUES (null, '李若彤', 'lrt', 'm', 5000.8); select * from `sys_emp`; |
使用场景:保存订单Order对象 和 订单明细List
insertWithKey,注意:返回值还是受影响的行数,它会将插入的主键,返回到传递过来对象指定的属性里面。
假设我们没有写列的别名,则返回null,因为值无法注入,所以就算查询出来,也没意义,所以mybaits干脆返回一个null给你。
给列的字段起别名
数据库表中字段的命名是按照规范来进行设计的emp_name,java类中的属性也是按规范设计的empName,那么每次都写别名感觉很麻烦,该如何处理???
使用resultMap标签定义对应关系,再再后面的SQL语句中引用这个对应关系。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流