MyBatis之二_CRUD、SQL参数、查询结果封装

本文详细介绍了MyBatis使用XML配置文件进行CRUD操作,包括DAO接口、映射配置文件、参数类型(parameterType)和结果类型(resultType)的设置。讲解了如何通过parameterType将DAO接口参数映射到SQL语句,以及如何将数据库查询结果封装到POJO对象。同时提到了在SQL语句中使用别名和配置文件中配置映射规则的方法。此外,还简要提及了注解配置方式和Dao实现类方式。
摘要由CSDN通过智能技术生成

DAO接口参数映射到SQL语句:parameterType
数据库查询结果封装到POJO:resultType

一 XML配置文件方式

MyBatis使用流程:

  1. 配置主配置文件(数据库连接信息、映射配置文件位置信息)
  2. 创建实体类User
  3. 创建DAO接口(设置要执行的数据库操作CRUD)
  4. 配置映射配置文件(配置实现CRUD的sql语句)
  5. 创建测试类Test(读取配置文件、创建dao代理对象、测试CRUD方法)

DAO接口不用手动创建实现类,接口的参数作为SQL语句参数的来源,接口的返回值是SQL语句执行结果封装的目标

1.1 基本CRUD

1.1.1 DAO接口

定义select、save、update、delete方法

public interface IUserDao{
   
	//查找所有用户
	List<User> findAll();
	void saveUser(User user);
	//更新用户
	void updateUser(User user);
	//根据id删除用户
	void deleteUser(Integer userId);
	//根据id查询用户信息
	User findById(Integer userId);
	//根据名称模糊查询用户信息
	List<User> findByName(String username);
	//获取总用户数,使用SQL中的聚合函数
	int findTotal();
	
}
1.1.2 映射配置文件(SQL语句)
//查询所有
<select id="findAlll" resultType="com.iteheima.doamin.User">
	select * from user;
</select>

//增加数据
<insert id="insertUser" parameterType="com.itheima.domain.User">
	insert into user(username,address,sex,birthday) values(#{
   username},#{
   address},#{
   sex},#{
   birthday});
</insert>

//更新数据
<update id="updateUser" parameterType="com.itheima.domain.User">
	update user set username=#{
   username},address=#{
   address},sex=#{
   sex},birthday#{
   birthday} where id=#{
   id};
</update>

//删除数据
<delete id="deleteUser" parameterType="java.lang.Integer">
	//当参数只有一个,且为基本类型或基本类型包装类时,sql语句中参数名可以随便写,如这里为uid;patameterType也可以随便写,这里还可以写成int/INT/integer/INTEGER/java.lang.Integer,只要表示是int类型即可;
	delete from user where id=#{
   uid}
</delete>

//根据ID查询用户
<select id="findById" parameterType="java.lang.Integer" resultType="com.iteheima.doamin.User">
	select * from user where id=#{
   uid};
</select>

//根据名称模糊查询用户
<select id="findByName" parameterType="string" resultType="com.iteheima.doamin.User">
	//注意:SQL模糊查询通配符是%,但是这里参数name没法写成%王%的形式,所以应在调用函数的地方,直接将name定义为%王%这种形式后传过来
	select * from user where username like #{
   name};
</select>

//根据名称模糊查询用户
<select id="findByName" parameterType="string" resultType="com.iteheima.doamin.User">
	//注意:SQL模糊查询通配符是%,但是这里参数name没法写成%王%的形式,所以应在调用函数的地方,直接将name定义为%王%这种形式后传过来
	select * from user where username like #{
   name};
</select>

//获取用户总数
<select id="findTotal" resultType="java.lang.Integer">
	select count(id) from user;
</select>
1.1.3 调用
public class MybatisTest{
   	
	private InputStream in;
	private SqlSession sqlsession;
	private IUserDao userDao;
	
	@Before //用于在测试方法执行之前执行
	public void init() throws Exception{
   
		//1.读取配置文件
		in=Resources.getResourcesAsStream("SqlMapConfig.xml");
		//2.获取SqlSessionFactory
		SqlSessionFactory factory=new SqlSessionFactoryBuilder().buikd(in);
		//3.获取SqlSession对象
		sqlSession=factory.openSession();
		//4.获取dao的代理对象
		userDao=sqlSession.getMapper(IUserDao.class);
	}
	
	@After //用于在测试方法执行之后执行
	publuc void destroy() throws Exception{
   
		//提交事务
		sqlSession.commit()
		//释放资源
		sqlSession.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值