mapper层由mapper接口和mapper.xml组成。我们可以在mapper.xml里写sql语句,直接操作数据库。
1.RegisterMapper.java,在这里我们使用mapper注解。同时我们定义两个方法:
register()方法,接受传参user,向数据库里插入一条新用户记录;
getUserByNameAndPwd()方法,可以通过此方法判断数据库里是否有该用户。
package com.bookstore.mapper;
import org.springframework.stereotype.Repository;
import com.bookstore.dao.User;
@Mapper
public interface RegisterMapper {
//定义注册的所有接口
int register(User user);
int getUserByNameAndPwd(User user);
}
RegisterMapper.xml
我们在这里实现registerMapper的接口。namespace填写我们的要实现的mapper地址。写sql语句时id应和需要实现的mapper的接口保持一致,parameterType是传入的参数类型,resultType是我们需要得到的返回类型。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.mapper.RegisterMapper">
<!-- 通过用户名和密码得到用户,这里用的count(*)来得到这个用户的数量,为1表示用户存在,为0表示不存在 -->
<select id="getUserByNameAndPwd" parameterType="User" resultType="int">
select count(*) from user where username=#{username} and password=#{password}
</select>
<!-- 注册用户信息 -->
<insert id="register" parameterType="User">
insert into user (username,password) values (#{username},#{password})
</insert>
</mapper>
2.LoginMapper.java
package com.bookstore.doa;
import org.springframework.stereotype.Mapper;
import com.bookstore.dao.User;
@Mapper
public interface LoginMapper {
User login(String name, String pwd);
}
LoginMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.dao.LoginMapper">
<!-- 通过用户名和密码查询用户 -->
<select id="login" resultType="User">
select * from user as u where u.username=#{u.username} and u.password=#{u.password}
</select>
</mapper>
3.BookMapper.java
package com.bookstore.dao;
import java.util.List;
import org.springframework.stereotype.Mapper;
import com.bookstore.dao.Book;
@Mapper
public interface BookMapper {
List<Book> getAllNewBooks();
List<Book> getAllBooks();
Book getBookById(int id);
List<Book> getBooksByBooktype(int type);
}
BookMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.mapper.BookMapper">
<!-- 得到最新的12本书籍 -->
<select id="getAllNewBooks" resultType="Book">
select * from book order by pubdate desc limit 12
</select>
<!-- 得到全部书籍 -->
<select id="getAllBooks" resultType="Book">
select * from book
</select>
<!-- 通过书籍的id得到一本书的全部属性 -->
<select id="getBookById" parameterType="int" resultType="Book">
select * from book where id =#{id}
</select>
<!-- 通过种类id得到一类的全部书籍 -->
<select id="getBooksByBooktype" parameterType="int" resultType="Book">
select * from book where booktype =#{type}
</select>
</mapper>
4.CartMapper.java
package com.bookstore.mapper;
import java.util.List;
import org.springframework.stereotype.Mapper;
import com.bookstore.dao.Cart;
@Mapper
public interface CartMapper {
int incart(Cart cart);
List<Cart> getAllOrders(String orderman);
int deleteCartById(int id);
}
CartMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookstore.mapper.CartMapper">
<!--将订单插插入到购物车数据库 -->
<insert id="incart" parameterType="Cart">
insert into cart (name,count,date,orderman,price)values(#{name},#{count},#{date},#{orderman},#{price})
</insert>
<!-- 通过订单人得到他的全部订单 -->
<select id="getAllOrders" parameterType="String" resultType="Cart">
select * from cart where orderman =#{orderman}
</select>
<!-- 通过订单id删除这个订单 -->
<delete id="deleteCartById" parameterType="int">
delete from cart where id =#{id}
</delete>
</mapper>
好的,目前我们实现的增删改查还很简单,但我们已经能够完成一些操作了。