mybatis03-继续xml的CRUD
1.保存操作
1.1UserDao先写接口
public interface UserDao {
List<User> findAllUser();
void saveUser(User user);
}
1.2 UserMapper.xml写Sql语句
<?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绑定interface接口-->
<mapper namespace="com.kcl.dao.UserDao">
<!--resultType 返回类型-->
<select id="findAllUser" resultType="com.kcl.pojo.User">
select * from user
</select>
<insert id="saveUser" parameterType="com.kcl.pojo.User">
insert into user(username,address,sex,birthday) values (#{username},#{address},#{sex},#{birthday});
</insert>
</mapper>
1.3 编写测试文件
点击查看代码
public class Test {
public InputStream in;
public SqlSession sqlSession;
public UserDao mUserDao;
@Before
public void init() throws Exception{
//读取主配置文件
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//输入流读取生成SQLSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
//获取sqlSession
sqlSession = sqlSessionFactory.openSession();
//读入用户接口文件UserDao.class
mUserDao = sqlSession.getMapper(UserDao.class);
}
@After
public void destory() throws Exception{
//释放资源
sqlSession.close();
in.close();
}
@org.junit.Test
public void test01(){
try {
//List<User> users = mapper.findAllUser();
//System.out.println(users);
User user = new User();
user.setUsername("kcl");
user.setSex("男");
user.setAddress("合肥");
user.setBirthday(new Date());
mUserDao.saveUser(user);
//保存时需要提交事务,不然插不进入
sqlSession.commit();
}catch (Exception e){
e.printStackTrace();
}
}
}
2.更新操作
2.1 UserDao接口
public interface UserDao {
List<User> findAllUser();
void saveUser(User user);
void updateUser(User user);
}
2.2 UserMapper.xml
<update id="updateUser" parameterType="com.kcl.pojo.User">
update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday}
where id=#{id}
</update>
2.3 编写测试类
点击查看代码
import com.kcl.dao.UserDao;
import com.kcl.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import java.io.InputStream;
import java.util.Date;
/**
* 项目名: mybatis_heima_01
* 包名: PACKAGE_NAME
* 文件名 Test
* 创建者
* 创建时间: 2022/4/2 11:45 PM
* 描述 ${TODO}
*/
public class Test {
public InputStream in;
public SqlSession sqlSession;
public UserDao mUserDao;
@Before
public void init() throws Exception{
//读取主配置文件
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//输入流读取生成SQLSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
//获取sqlSession
sqlSession = sqlSessionFactory.openSession();
//读入用户接口文件UserDao.class
mUserDao = sqlSession.getMapper(UserDao.class);
}
@After
public void destory() throws Exception{
//保存时需要提交事务,不然插不进入
sqlSession.commit();
//释放资源
sqlSession.close();
in.close();
}
@org.junit.Test
public void test01(){
try {
//List<User> users = mapper.findAllUser();
//System.out.println(users);
User user = new User();
user.setUsername("kcl");
user.setSex("男");
user.setAddress("合肥");
user.setBirthday(new Date());
mUserDao.saveUser(user);
}catch (Exception e){
e.printStackTrace();
}
}
@org.junit.Test
public void testUpdate(){
try {
//List<User> users = mapper.findAllUser();
User user = new User();
user.setId(5);
user.setUsername("superkcl");
user.setSex("男");
user.setAddress("合肥");
user.setBirthday(new Date());
mUserDao.updateUser(user);
}catch (Exception e){
e.printStackTrace();
}
}
}
3删除操作
3.1编写接口
public interface UserDao {
List<User> findAllUser();
void saveUser(User user);
void updateUser(User user);
//根据ID删除User
void deleteUser(Integer id);
}
3.2编写Mapper Sql
<?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绑定interface接口-->
<mapper namespace="com.kcl.dao.UserDao">
<!--resultType 返回类型-->
<select id="findAllUser" resultType="com.kcl.pojo.User">
select * from user
</select>
<insert id="saveUser" parameterType="com.kcl.pojo.User">
insert into user(username,address,sex,birthday) values (#{username},#{address},#{sex},#{birthday});
</insert>
<!-- #{username} 里面的字段必须是User里面的属性名-->
<update id="updateUser" parameterType="com.kcl.pojo.User">
update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday}
where id=#{id}
</update>
<!-- int 或者 Integer 或者 INT 或者 INTEGER 或者 java.lang.Integer -->
<!-- deleteUser函数只有一个参数,#{id}写任何一个名字都可以,只是占位符功能-->
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>
</mapper>
3.3测试
点击查看代码
import com.kcl.dao.UserDao;
import com.kcl.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import java.io.InputStream;
import java.util.Date;
/**
* 项目名: mybatis_heima_01
* 包名: PACKAGE_NAME
* 文件名 Test
* 创建者
* 创建时间: 2022/4/2 11:45 PM
* 描述 ${TODO}
*/
public class Test {
public InputStream in;
public SqlSession sqlSession;
public UserDao mUserDao;
@Before
public void init() throws Exception{
//读取主配置文件
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//输入流读取生成SQLSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
//获取sqlSession
sqlSession = sqlSessionFactory.openSession();
//读入用户接口文件UserDao.class
mUserDao = sqlSession.getMapper(UserDao.class);
}
@After
public void destory() throws Exception{
//保存时需要提交事务,不然插不进入
sqlSession.commit();
//释放资源
sqlSession.close();
in.close();
}
@org.junit.Test
public void test01(){
try {
//List<User> users = mapper.findAllUser();
//System.out.println(users);
User user = new User();
user.setUsername("kcl");
user.setSex("男");
user.setAddress("合肥");
user.setBirthday(new Date());
mUserDao.saveUser(user);
}catch (Exception e){
e.printStackTrace();
}
}
@org.junit.Test
public void testUpdate(){
try {
//List<User> users = mapper.findAllUser();
User user = new User();
user.setId(5);
user.setUsername("superkcl");
user.setSex("男");
user.setAddress("合肥");
user.setBirthday(new Date());
mUserDao.updateUser(user);
}catch (Exception e){
e.printStackTrace();
}
}
@org.junit.Test
public void testDelete(){
try {
mUserDao.deleteUser(6);
}catch (Exception e){
e.printStackTrace();
}
}
}
4.模糊查询
UserDao
//根据用户名关键字模糊查询
List<User> findByName(String username);
UserMapper.xml
<select id="findByName" parameterType="String" resultType="com.kcl.pojo.User">
select * from user where username like #{username}
</select>
测试
List<User> users = mUserDao.findByName("%马%");
System.out.println(users);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律