mybatis example 使用方法

本文详细介绍了MyBatis框架中常见的CRUD操作方法及其SQL等效表达方式,包括插入、更新、删除和查询等功能,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

User里面有三个字段:id,name,age,password
1. insert();

按条件插入,未设置字段为null。

User u = new user();
u.setName(“张三”);
insert(u);
相当于:
insert into tb_user (id,name,age,password) value (null,“张三”,null,null);

2. insertSelective();

按条件插入,过滤为空字段

User u = new user();
u.setName(“张三”);
insertSelective(u);
相当于:
insert into tb_user (id,name) value (null,“张三”);

3. deleteByExample();

根据条件删除多条。

Example example = new Example (User.class);
example .createCriteria().andEqualTo(“name”,“张三”);
UserMapper.deleteByExample(example);
相当于:
delete from tb_user where name = ‘张三’;

4. deleteByPrimaryKey();

根据主键删除单条。

UserMapper.deleteByPrimaryKey(1);
相当于:
delete from tb_user where id= 1;

5.updateByPrimaryKey();

按主键更新,未设置字段为null。

User u =new User();
u.setId(1);
u.setName(“张三”);
UserMapper.updateByPrimaryKey(u);
相当于:
update tb_user set name = ‘张三’ ,age = null,password = null where id = 1;

6.updateByPrimaryKeySelective();

按主键更新,过滤为空字段。

User u =new User();
u.setId(1);
u.setName(“张三”);
UserMapper.updateByPrimaryKeySelective(u);
相当于:
update tb_user set name = ‘张三’ where id = 1;

7. updateByExample();

按条件更新,未设置字段为null。

Example example = new Example(User.class);
example.createCriteria().andIn(“id”,1);
User u = new user()
u.setName(“张三”);
UserMapper.updateByExample(u,example );
相当于:
update tb_user set name = ‘张三’ ,age = null,password = null where id = 1;

8. updateByExampleSelective();

按条件更新,过滤为空字段。

Example example = new Example(User.class);
example.createCriteria().andIn(“id”,1);
User u = new user()
u.setName(“张三”);
UserMapper.updateByExampleSelective(u,example );
相当于:
update tb_user set name = ‘张三’ where id = 1;

9. select();

通过对象中传入的值为条件查出所有符合要求的所有条数,返回为list。

User u = new user();
u.setName(“张三”);
List< User > user = UserMapper.select(u);
相当于:
select * from tb_user where name = ‘张三’;

10. selectOne();

通过对象中传入的值为条件查出所有符合要求的一条,返回为对象。

User u = new user();
u.setId(1);
User user = UserMapper.selectOne(u);
相当于:
select * from tb_user where id = 1;

11. selectByPrimaryKey();

通过主键查询

UserMapper.selectByPrimaryKey(1);
select * from tb_user where id = 1;

12. selectByExample();

通过拼装条件,查出所有符合要求的所有条数,返回为list。

Example example = new Example (User.class);
example .createCriteria().andEqualTo(“id”,1).andEqualTo(“name”,“张三”);
List< User > user = UserMapper.selectByExample(example);
相当于:
select * from tb_user where id = 1 and name = ‘张三’;

MyBatis是一个轻量级的对象关系映射框架,它简化了Java应用程序访问数据库的过程。在MyBatis中,你可以通过XML配置文件或注解来描述数据表、字段以及SQL查询,并通过Mapper接口与数据库交互。 一个简单的MyBatis Example示例包括以下几个步骤: 1. **配置文件**(mybatis-config.xml 或 mapper-mapping.xml): 配置SqlSessionFactory,这是连接数据库的核心组件。 ```xml <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/UserMapper.xml"/> </mappers> </configuration> ``` 2. **Mapper接口**(UserMapper.java): 定义SQL操作的接口,通常包含增删改查方法。 ```java public interface UserMapper { @Select("SELECT * FROM users WHERE id = #{id}") User selectUser(int id); // 其他操作... } ``` 3. **XML映射文件**(UserMapper.xml): 描述如何将SQL查询与Mapper接口的方法对应起来。 ```xml <mapper namespace="com.example.UserMapper"> <select id="selectUser" resultType="com.example.User"> SELECT * FROM users WHERE id = #{id} </select> </mapper> ``` 4. **使用Mapper**: 创建SqlSession并调用Mapper接口方法执行数据库操作。 ```java SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(conf); try (SqlSession sqlSession = sqlSessionFactory.openSession()) { UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = mapper.selectUser(1); // 根据ID获取用户信息 System.out.println(user); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值