目录
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、目录结构图
#创建一个叫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、目录结构图
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、目录结构图
public class User {
private int id;
private String name;
private String pwd;
}
//需要get,set,tostring方法
6、接口
public interface UserDao {
}
7、mapper文件
8、目录结构图
8、目录结构图
到此我们的项目就搭建好了,接下来我们来进行查增改删的操作。
“查”操作
查询所有的User数据
首先在我们的接口类定义一个查询的方法 参数类是List
import java.util.List;
import java.util.Map;
public interface UserDao {
List getUserList();
}
我们定义完以后需要去mapper文件配置我们的方法跟SQL语句
测试一下
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文件
测试一下
@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文件的参数也是mapupdate 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



