- 撰寫介面
- 撰寫對應的Mapper.xml中的sql陳述句
- 測驗(增刪改需要提交事務)
<mapper namespace="com.perwrj.dao.UserMapper">
<!-- 查詢 id=“重寫的方法名” resultType=“回傳值型別(全類名)” -->
<select id="getUserList" resultType="com.perwrj.pojo.User">
select * from mybatis.user
</select>
</mapper>
- id:就是對應的namespace中的方法名
- resultType:sql陳述句的回傳值型別
- parameterType:傳入引數的型別
package com.perwrj.dao;
import java.util.List;
import com.perwrj.pojo.User;
public interface UserMapper {
// 查詢全部用戶
List<User> getUserList();
// 根據id查詢用戶
User getUserById(int id);
// 添加一個用戶
int addUser(User user);
// 修改用戶
int updateUser(User user);
// 洗掉用戶
int deleteUser(int id);
}
<?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">
<!-- namespace系結一個對應的Mapper/Dao介面 -->
<mapper namespace="com.perwrj.dao.UserMapper">
<!-- 查詢 id=“重寫的方法名” resultType=“回傳值型別(全類名)” -->
<select id="getUserList" resultType="com.perwrj.pojo.User">
select * from mybatis.user
</select>
<select id="getUserById" parameterType="int" resultType="com.perwrj.pojo.User">
select * from mybatis.user where id = #{id}
</select>
<!-- 物件中的屬性可以直接取出來 -->
<insert id="addUser" parameterType="com.perwrj.pojo.User">
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
<update id="updateUser" parameterType="com.perwrj.pojo.User">
update mybatis.user set name = #{name},pwd = #{pwd} where id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id = #{id}
</delete>
</mapper>
package com.perwrj.dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.perwrj.pojo.User;
import com.perwrj.utils.MyBatisUtil;
public class UserMapperTest {
@Test
public void test() {
//獲得SqlSession物件,
SqlSession sqlSession = MyBatisUtil.getSqlSession();
try {
// 方式一:getMapper執行sql:更加簡潔,型別更加安全,推薦使用
UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User>
userList = userMapper.getUserList();
for (User user : userList) { System.out.println(user); }
//方式一結束
// 方式二:老方法,不建議使用,
/*
* List<User> list =
* sqlSession.selectList("com.perwrj.dao.UserMapper.getUserList");
*
* for (User object : list) { System.out.println(object); }
*/
//方式二結束
}catch(Throwable e) {
e.printStackTrace();
}finally {
// 關閉sqlSession
sqlSession.close();
}
}
/**
* 洗掉操作
*/
@Test
public void deleteUserTest() {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int num = userMapper.deleteUser(4);
if(num > 0) {
// 提交事務
System.out.println(num);//1
sqlSession.commit();
sqlSession.close();
}
}catch(Throwable e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
}
/**
* 改操作
*/
@Test
public void updateUserTest() {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int num = userMapper.updateUser(new User(2,"杰瑞","987654"));
if(num > 0) {
// 提交事務
System.out.println(num);//1
sqlSession.commit();
sqlSession.close();
}
}catch(Throwable e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
}
/**
* 增刪改需要提交事務
*/
@Test
public void addUserTest() {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int num = userMapper.addUser(new User(4,"王瑞杰","123568"));
if(num > 0) {
// 提交事務
System.out.println(num);//1
sqlSession.commit();
sqlSession.close();
}
}catch(Throwable e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
}
@Test
public void testGetUserById() {
//獲得SqlSession物件,
SqlSession sqlSession = MyBatisUtil.getSqlSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println(user);
}catch(Throwable e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263645.html
標籤:Java
上一篇:java 流程控制學習
下一篇:mybatis(1)
