Mybatis实现数据增删改查(详细讲解) |
您所在的位置:网站首页 › 实验报告改数据 › Mybatis实现数据增删改查(详细讲解) |
目录 1.搭建项目 1、搭建实验数据库 2、导入相关的jar包 3、创建mybatis的配置文件 4、创建一个关于mybatis的关键对象SqlSessionFactory、SqlSession的工具类 5、搭建实体类 6、接口 7、mapper文件 8、目录结构图 “查”操作 查询所有的User数据 根据id查询用户 “ 改”操作 “删”操作 源码 思路流程:搭建环境-->导入Mybatis--->编写代码--->测试 1.搭建项目 1、搭建实验数据库 #创建一个叫mybatis的数据 CREATE DATABASE `mybatis`; #使用mybatis数据库 USE `mybatis`; #创建一个user表 DROP TABLE IF EXISTS `user`; #插入数据 CREATE TABLE `user` ( `id` int(20) NOT NULL, `name` varchar(30) DEFAULT NULL, `pwd` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into `user`(`id`,`name`,`pwd`) values (1,'王一','123456'),(2,'黄二','456789'),(3,'张三','987654'); 2、导入相关的jar包 org.mybatis mybatis 3.5.2 mysql mysql-connector-java 5.1.47 #如果是8版本的MySQL使用下面这个 mysql mysql-connector-java 8.0.22 3、创建mybatis的配置文件 4、创建一个关于mybatis的关键对象SqlSessionFactory、SqlSession的工具类 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 java.io.IOException; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //获取SqlSession连接 public static SqlSession getSession(){ return sqlSessionFactory.openSession(); } } 5、搭建实体类 public class User { private int id; private String name; private String pwd; } //需要get,set,tostring方法 6、接口 public interface UserDao { } 7、mapper文件 8、目录结构图
首先在我们的接口类定义一个查询的方法 参数类是List因为我们查询的是所有的用户数据所以返回的结果肯定不只是一个用户的数据所以就定义成集合。 import java.util.List; import java.util.Map; public interface UserDao { List getUserList(); }我们定义完以后需要去mapper文件配置我们的方法跟SQL语句 select * from user测试一下 import com.pojo.User; import com.utils.MybatisUtils; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class UserTest { @Test public void getUserList(){ //使用我们的工具类创建一个SqlSession对象 SqlSession sqlSession = MybatisUtils.getSession(); UserDao userDao = sqlSession.getMapper(UserDao.class); List userList = userDao.getUserList(); for (User user : userList) { System.out.println(user); } sqlSession.close(); } }结果 流程:接口类编写方法->mapper文件配置->测试 根据id查询用户接口类编写方法 import com.pojo.User; import java.util.List; import java.util.Map; public interface UserDao { List getUserList(); User getUserById( int ids); }mapper文件 select * from user select * from user where id=#{ids}测试一下 @Test public void getUserByIdTest(){ SqlSession sqlSession = MybatisUtils.getSession(); UserDao userDao = sqlSession.getMapper(UserDao.class); User user = userDao.getUserById(2); System.out.println(user); sqlSession.close(); }结果 “增”操作 接口类添加方法 public interface UserDao { List getUserList(); User getUserById( int ids); //插入语句只有成功或者失败所以我们这里使用boolean boolean addUser(User user); }mapper文件 insert into user (id,name,pwd)values (#{id},#{name},#{pwd});测试一下 @Test public void addUserTest(){ SqlSession sqlSession = MybatisUtils.getSession(); UserDao userDao = sqlSession.getMapper(UserDao.class); User user = new User(); user.setId(4); user.setName("李四"); user.setPwd("123456"); if (userDao.addUser(user)) { System.out.println("添加用户成功"); }else{ System.out.println("添加用户失败"); } // 注意要使用commit方法提交事务更改数据都需要提交事务否则执行语句会无效 sqlSession.commit(); sqlSession.close(); } “ 改”操作如果按照以上的操作相信大家应该也应该都会了,该操作我用一下别的方法,虽然它不是正规的方法但是它很实用,话不多说,步入正题 接口类 public interface UserDao { List getUserList(); User getUserById( int ids); boolean addUser(User user); //大家注意看我们的更改方法的参数是Map boolean updataUser(Map map); }mapper文件 由于我们的参数是Map,所以我们mapper文件的参数也是map update user set name = #{name},pwd=#{pwd} where id=#{id};测试一下 @Test public void updataUserTest(){ SqlSession sqlSession = MybatisUtils.getSession(); UserDao userDao = sqlSession.getMapper(UserDao.class); Map map = new HashMap(); //map方法的好处就是可以直接这样添加,他适用于增删改查四种操作 map.put("id",1); map.put("name","哇哈哈哈哈哈"); map.put("pwd","aaaaaaaa"); if (userDao.updataUser(map)) { System.out.println("更改用户成功"); }else{ System.out.println("更改用户失败"); } // 注意要使用commit方法提交事务更改数据都需要提交事务否则执行语句会无效 sqlSession.commit(); sqlSession.close(); }结果 接口类 import com.pojo.User; import java.util.List; import java.util.Map; public interface UserDao { List getUserList(); User getUserById( int ids); boolean addUser(User user); boolean updataUser(Map map); boolean deleteUser(Map map); }mapper文件 delete * from user where id=#{id};测试一下 @Test public void deleteUserTest(){ SqlSession sqlSession = MybatisUtils.getSession(); UserDao userDao = sqlSession.getMapper(UserDao.class); Map map = new HashMap(); map.put("id",1); if (userDao.updataUser(map)) { System.out.println("删除用户成功"); }else{ System.out.println("删除用户失败"); } // 注意要使用commit方法提交事务更改数据都需要提交事务否则执行语句会无效 sqlSession.commit(); sqlSession.close(); }结果 百度网盘 请输入提取码zce5 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |