Mybatis基于xml配置实现单表的增删改查功能

网友投稿 610 2023-01-29

Mybatis基于xml配置实现单表的增删改查功能

Mybatis基于xml配置实现单表的增删改查功能

Mybatis入门-基于配置实现单表的增删改查

Mybatis简介

官网链接:https://mybatis.org/mybatis-3/zh/index.html。更加详细的信息可以去官网查看。

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。

如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:

org.mybatis

mybatis

x.x.x

配置步骤

1.引入Mybatis的jar包

2.编写实体类与DAO接口

3.添加主配置文件(配置mysql环境,事务类型,数据源,连接数据库的基本信息,映射文件的位置)

4.添加DAO接口的映射文件(需要指明DAO接口的位置,为每个方法做一个映射)注:所在路径在Resource文件夹下,目录路径需要DAO的层次结构一样

5.使用mybatis框架

使用步骤(所有的xml配置已配置完毕)

1.读取配置文件,可使用mybatis封装的Resources类。

2.创建SQLSessionFactory工厂

3.使用工厂生产SQLsession对象

4.使用SQLSession创建DAO接口的代理对象

5.使用代理对象执行方法

6.提交事务,释放资源

基础数据

实体类

public class User implements Serializable {

/**

* Java实体类为什么要实现Serializable接口

* 1.用于序列化与反序列化--一个类只有实现了Serializable接口,它的对象才能被序列化。

* 2.Serializable接口就是Java提供用来进行高效率的异地共享实例对象的机制,实现这个接口即可。

*/

private Integer id;

private String username;

private Date birthday;

private String sex;

private String address;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public Date getBirthday() {

return birthday;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

@Override

public String toString() {

return "User{" +

"id=" + id +

", username='" + username + '\'' +

", birthday=" + birthday +

", sex='" + sex + '\'' +

", address='" + address + '\'' +

'}';

}

DAO层的接口

public interface IUserDao {

/**

* 查询所有

* @return 所有的User信息

*/

//@Select("select * from User")

List findAll();

/**

* 保存操作

* @param user

*/

//@Insert("insert into User(username,address,sex,birthday)values()")

void saveUser(User user);

/**

* 更改操作

*/

void updateUser(User user);

/**

* 删除操作

* @param i

*/

void deleteUser(Integer i);

/**

* 根据id查询单个用户

* @param id

* @return

*/

User findById(Integer id);

/**

* 根据名称模糊查询

* @param name

* @return

*/

List findByName(String name);

/**

* 查询总用户数

* @return

*/

int findTotal();

}

主配置文件

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

子配置文件

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from user

insert into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday});

update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday} where id=#{id}

delete from User where id=#{id}

select * from user where id=#{id}

select * from user where username like #{name}

&dquogvtlt;/select>

SELECT COUNT(id) FROM `user`;

测试类

/**

* @Author: Promsing

* @Date: 2021/3/29 - 8:58

* @Description: 描述 形容

* @version: 1.0

*/

public class MyBatisTest {

private InputStream in;

private SqlSession sqlSession;

private IUserDao userDao;

@Before

public void init()throws Exception{

//1.读取配置文件 Resources是myBatis封装的类

in= Resources.getResourceAsStream("SqlMapConfig.xml");

//2.创建SQLSessionFactory工厂

// SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);

SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();

SqlSessionFactory factory=builder.build(in);

//3.使用工厂生产SQLSession对象

sqlSession = factory.openSession();

//4.使用SQLSession创建DAO接口的代理对象

userDao = sqlSession.getMapper(IUserDao.class);

}

@After

public void destory()throws Exception{

//6.释放资源

//提交事务

sqlSession.commit();

sqlSession.close();

in.close();

}

//入门案例

/**

* 查询操作

*/

@Test

public void selectUser(){

//初始化资源-使用注解Before

//5.使用代理对象执行方法

List all = userDao.findAll();

for (User user : all) {

System.out.println(user);

}

//释放资源-使用注解After

}

/**

* 测试保存

*/

@Test

public void testSave() {

User user=new User();

user.setUsername("mybatis");

user.setAddress("北京市延庆区");

user.setSex("女");

user.setBirthday(new Date());

//初始化资源-使用注解Before

//5.使用代理对象执行方法

userDao.saveUser(user);

//释放资源-使用注解After

}

/**

* 测试修改

*/

@Test

public void testUpdate() {

User user=new User();

user.setId(50);

user.setUsername("mybatis_plus");

user.setAddress("北京市安次");

user.setSex("男");

user.setBirthday(new Date());

//初始化资源-使用注解Before

//5.使用代理对象执行方法

userDao.updateUser(user);

//释放资源-使用注解After

}

/**

* 测试删除

*/

@Test

public void testDelete() {

//初始化资源-使用注解Before

//5.使用代理对象执行方法

userDao.deleteUser(50);

//释放资源-使用注解After

}

/**

* 查询单个人员信息

*/

@Test

public void testFindById() {

//初始化资源-使用注解Before

//5.使用代理对象执行方法

User user=userDao.findById(49);

System.out.println(user);

//释放资源-使用注解After

}

/**

* 模糊查询

*/

@Test

public void testFindByName() {

//初始化资源-使用注解Before

//5.使用代理对象执行方法

List users=userDao.findByName("%王%");

users.forEach(i-> System.out.println(i));

//释放资源-使用注解After

}

/**

* 测试查询总记录条数

*/

@Test

public void testFindTotal() {

//初始化资源-使用注解Before

//5.使用代理对象执行方法

int total=http://userDao.findTotal();

System.out.println(total);

//释放资源-使用注解After

}

}

总结

mybatis其实使用的方法很简单,需要多记住一些配置,当配置做好了,使用的时候很简单。Mybatis框架将JDBC中复杂的注册驱动、获取连接,使用不同的服务类(DriverManager,Connection,Statement,ResultSet)都封装了。其实框架的学习就是了解框架、熟悉配置,使用框架的阶段。

具体配置的详解请去mybatis官网

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:字节跳动开放平台(字节跳动用户中心平台)
下一篇:app程序开发平台(APP系统开发)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~