<mappernamespace="test"><selectid="findUserById"parameterType="int"resultType="domain.User">
select * from user where id = #{id}
select><selectid="findUsers1"parameterType="string"resultType="domain.User">
select * from user where username like concat("%" , #{username}, "%")
select><insertid="saveUser"parameterType="domain.User"><selectKeykeyProperty="id"resultType="java.lang.Integer"order="AFTER">
select LAST_INSERT_ID()
selectKey>
insert into user(username, birthday, sex, address) values(#{username}, #{birthday}, #{sex}, #{address})
insert><deleteid="delUser"parameterType="int">
delete from user where id = #{id}
delete><updateid="updateUser"parameterType="domain.User">
update user set username = #{username}, sex=#{sex}, birthday=#{birthday}, address=#{address} where id = #{id}
update>mapper>
publicclassQueryVo {private User user;
publicvoidsetUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
}
1.2 映射文件的配置
<selectid="getUserByQueryVo"parameterType="queryvo"resultType="user">
select * from user where id = #{user.id}
select>mapper>
1.3 解决数据库表和实体类字段不对应方法
1. 第一种: sql语句利用起别名的方式解决字段不一致问题.
<mappernamespace="Mapper.OrderMapper"><resultMapid="order_list_result"type="orders"><idproperty="id"column="id"/><resultproperty="userId"column="user_id"/><resultproperty="number"column="number"/><resultproperty="createtime"column="createtime"/><resultproperty="note"column="note"/>resultMap><selectid="getOrderList"resultMap="order_list_result">
select * from orders
select>mapper>
2.动态生成sql语句
2.1 if(判断), where解决了第一个and出现的问题
<selectid="getUserByUser"parameterType="user"resultType="user">
select * from user
<where><iftest="id != 0">
and id = #{id}
if><iftest="username != null and username != ''">
and username = #{username}
if>where>select>
2.2 foreach遍历
<selectid="getUserInIds"parameterType="queryvo"resultType="user" >
select * from user
<where><foreachcollection="ids"item="id"open="and id in ("close=")"separator=",">
#{id}
foreach>where>select>
2.3 set的使用
<updateid="updateUser"parameterType="user">
update user
<set><iftest="username != null and username != ''">
username = #{username},
if><iftest="address != null and address != ''">
address = #{address},
if>set>
where id = #{id}
update>
<selectid="findOrderAndUser"resultType="orderUser">
SELECT
o.*, u.username, u.address
FROM
orders o
LEFT JOIN user u ON u.id = o.user_id
select>
4.2 利用resultMap
<resultMapid="order_user_result_map"type="orders"><idproperty="id"column="id"/><resultproperty="userId"column="user_id"/><resultproperty="number"column="number"/><resultproperty="createtime"column="createtime"/><resultproperty="note"column="note"/><associationproperty="user"javaType="domain.User"><idproperty="id"column="user_id"/><resultcolumn="username"property="username"/><resultcolumn="address"property="address"/>association>resultMap><selectid="findOrderAndUser"resultMap="order_user_result_map">
SELECT
o.*, u.username, u.address
FROM
orders o
LEFT JOIN user u ON u.id = o.user_id
select>
5.一对多关联映射查询
<resultMapid="user_orders_result"type="user"><idproperty="id"column="id"/><resultproperty="username"column="username"/><resultproperty="birthday"column="birthday"/><resultproperty="sex"column="sex"/><resultproperty="address"column="address"/><collectionproperty="orders"ofType="domain.Orders"><idproperty="id"column="oid"/><resultproperty="number"column="number"/><resultproperty="createtime"column="createtime"/>collection>resultMap><selectid="findUserAndOrders"resultMap="user_orders_result">
SELECT
u.*,
o.id oid,
o.number,
o.createtime
FROM
`user` u
LEFT JOIN orders o ON u.id = o.user_id
select>
利用javascript读取表单数据,可以利用以下三种方法获取:
1、通过表单ID属性:var a = document.getElementByIdx_x_x("id");
2、通过表单名称属性:var b = document.getElementsByName("name");
3、直接通过表单名字获取:var c = form.content.
什么是Spring Data Mongo
Spring Data MongoDB项目对访问MongoDB的Java客户端API进行了封装,这种封装类似于Spring封装Hibernate和JDBC而提供的HibernateTemplate和JDBCTemplate,主要能力包括
1. 封装客户端跟MongoDB的链接管理
2. 文档-对象映射,通过注解:@Document(collectio
The insertion algorithm for 2-3 trees just described is not difficult to understand; now, we will see that it is also not difficult to implement. We will consider a simple representation known