Mybatis基础教程(二)

本文介绍使用 MyBatis 实现数据库的基本增删改查(CRUD)操作,包括定义 DAO 接口、创建实体类、设计数据库表、编写映射文件及测试类等步骤。

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

mybatis的增删改查

1.定义接口

public interface AccountDao{
public void insertAccount(Account a);
public void deleteAccount(Interger cardId);
public void updateAccount(Account a);
public Account queryAccountByCardId(Interger cardId);
}

2.写实体类

public class Acount{
private String name;
private String password;
private String cardId;
}

3.建account表(表里的字段和实体类的属性一一对应)

4.书写映射文件

<!--  namespace 的值为全类名(包名.类名)-->
<mapper namespace="AccountDao">
<insert id="insertAccount" parameterType="包名.Account(参数类型)">
<selectKey resultType="java.lang.Interger" KeyProperty="cardId" order="BEFORE"(在添加之前查询)>
<!--  因为我们的cardid可能是表里的一个主键,具有唯一值,并不需要我们手动填写-->
	select accoun_seq.nextval from dual
</selectKey>
insert into account (cardId,name,password)values(#{cardId},#{name},#{password})</insert><delete id="deleteAccount" parameterType="java.lang.Interger">delete from account where cardid=#{cardId}</delete><select id="queryAccountByCardId" parameterType="java.lang.Interger" resultType="包名.Account(返回值类型)">
	select cardId,name,password from account where cardid=#{cardId}
</select>
<update id="deleteAccount" parameterType="java.lang.Interger">
	update account set name=#{name},password=#{password} where cardid(表里的字段名)=#{cardId}
</update>
</mapper>

mybatis会自动将结果集里的数据封装成制=指定的返回值类型,封装时,将结果里的字段值设置到对应实体类的相应属性里,要求结果字段名和对象的属性名保持一一对应,当数据库里的名字和实体类的属性名不一致时,查询的结果应该起一个别名(as 名字)和实体类的属性一致5.书写测试类 

public class Test {
public static void main(String [] args){
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
SqlSessionFactory factory=builder.build(Resources.getResourceAsReader());
SqlSession session=factory.openSession();AccountDao dao=session.getMapper(AccountDao.class);
Account a=new Account("null","adasd","dasdasdas");
dao.insertAccount(a);//增加
session.commit();

Account a=dao.queryAccountByCardId(1000)//查询

a.setPassword("123456");//更新

dao.updateAccount(a);session.commit();//提交操作
session.close()
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值