Mybatis 练习(教材)

本文展示了如何使用MyBatis进行数据库操作,包括查询所有用户、模糊查询、查询特定用户,以及添加、删除和更新用户信息的方法。重点强调了session提交和关闭的重要性,以及在处理日期和多参数时的注意事项。
摘要由CSDN通过智能技术生成

注意的几点:

1.main 函数中 session 最后要进行 提交(commit)和关闭(close),否则在插入数据的时候,会自动插入数据并且删除数据,使得数据库中看不到插入的数据

2.注意 java.util.Date 和 java.sql.Date 之间有区别区分好时间的数据类型

3.传多个参数的时候用 Map 类型传参,注意标签中的参数类型 是否为对象 或者 数据类型

一、查询用户

查询所有元组

// 查询所有值
	public static void getUsers() {
		List<Users> users = session.selectList("getUsers");
		for (Users user : users) {
			System.out.println("姓名:" + user.getName());
			System.out.println("性别:" + user.getGender());
			System.out.println("生日:" + user.getBirthday());
			System.out.println("所在地:" + user.getProvince() + user.getCity());
		}
	}

 //查询所有元组

getUsers();

运行结果:

 

 

模糊查询

// 模糊查询
	public static List<Users> getUsers(String value) {
		Map<String, Object> paramsMap = new HashMap<>();
		paramsMap.put("value", value);
		List<Users> users = session.selectList("getUsers", paramsMap);
		for (Users user : users) {
			System.out.println("姓名:" + user.getName());
			System.out.println("性别:" + user.getGender());
			System.out.println("生日:" + user.getBirthday());
			System.out.println("所在地:" + user.getProvince() + user.getCity());
		}
		return users;
	}

// 查询名字中含有 ‘丽’ 的元组

getUsers("丽");

运行结果:

 配置代码(用if标签来配置)

<!--查询(if) 如果 name 为空,则查询所有,如果不为空, 则进行模糊查询-->
        <select id="getUsers" resultType="Users">
            select * from users
            <if test="value!=null">
                where username like '%${value}%'
            </if>        
        </select>

查询某一个元组

// 查询某一个值
	public static void getUser(int id) {
		Users user = session.selectOne("getUser", id);
		System.out.println("姓名:" + user.getName());
		System.out.println("性别:" + user.getGender());
		SimpleDateFormat stDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println("生日:" + stDateFormat.format(user.getBirthday()));
		System.out.println("所在地:" + user.getProvince() + user.getCity());
	}

// 查询 id 为 3 的元组

 getUser(3);

运行结果:

 配置代码

<!--查询数据(某一行)-->
        <select id="getUser" parameterType="_int" resultType="Users">
            select * from   users  where id= #{id}   
        </select>

where 标签查询

// where 标签查询
	public static void whereGet(int id, String value) {
		Map<String, Object> paramsMap = new HashMap<>();
		paramsMap.put("userName", value);
		paramsMap.put("id", id);
		List<Users> users = session.selectList("whereGet", paramsMap);
		for (Users user : users) {
			System.out.println("姓名:" + user.getName());
			System.out.println("性别:" + user.getGender());
			SimpleDateFormat stDateFormat = new SimpleDateFormat("yyyy-MM-dd");
			System.out.println("生日:" + stDateFormat.format(user.getBirthday()));
			System.out.println("所在地:" + user.getProvince() + user.getCity());
		}

	}

// 查询姓名中含有 ‘丽’或者id>1的用户

whereGet(1, "丽");

运行结果:

 配置代码:

<select id="whereGet" resultType="Users">
			select * from users
			<where>
				<if test="userName!=null">
					and username like concat('%',#{userName},'%')
				</if>		 	
				<if test="id!=null">
					and id > #{id}
				</if>	
			</where>	 	
</select>

或者 trim 标签


	<!--trim 标签查询-->
	<select id="whereGet" resultType="Users">
        select * from users
        <trim prefix="WHERE" prefixOverrides="AND |OR ">
            <if test="userName!=null">
                and username like concat('%',#{userName},'%')
            </if>        
            <if test="id!=null ">
                and id> #{id}
            </if>
        </trim>      
    </select>

二、增加用户

// 增加用户
	public static void insertUser(String userName, String password, String gender, String email, String province,
			String city, String birthday) throws ParseException {
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

		Users user = new Users(userName, password, gender, email, province, city);
		user.setBirthday(simpleDateFormat.parse(birthday));
		session.insert("insertUser", user);

	}

// 增加一个用户:姓名:王五,密码:555,性别:男,电子邮件:5555@qq.com,省份:湖北省,城市:武汉市,出生日期:1995-05-05

 insertUser("王五", "555", "男", "5555@qq.com", "湖北省", "武汉市", "1995-05-05");

运行结果:

 配置代码:

<!--增加用户 -->
        <insert id="insertUser" parameterType="Users" >
            insert into users values (null,#{userName},#{password},#{gender},#{email},#{province},#{city},#{birthday,jdbcType=DATE})   
        </insert>

三、删除用户

// 删除用户
	public static void deleteUser(int id) {
		session.delete("deleteUser", id);
	}

// 删除 id 为14的用户

deleteUser(14);

运行结果:

配置代码:

<!--删除用户-->
        <delete id="deleteUser" parameterType="_int" >
            delete from users where id= #{id}  
        </delete>

 四、修改用户信息

// 修改用户信息
	public static void updateUser(Users user) {
		session.update("updateUser", user);
	}

// 将 id 为 16的用户姓名改为 ’关二‘

Users user = new Users();

user.setId(16);

user.setName("关二");

updateUser(user);

运行结果:

 配置代码:

<!--修改数据-->
        <update id="updateUser" parameterType="Users" >
            update users
		        <set>
		            <if test="userName != null">username=#{userName},</if>
		            <if test="password != null">password=#{password}</if>
		              
		        </set>
         where id=#{id}   
        </update>
         

五、测试文件完整代码

package com.mr.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;

import com.mr.datasource.DataConnection;
import com.mr.entity.Users;

public class UserTest {
	// 设置 session 全局变量
	public static SqlSession session;

	public static void main(String[] args) throws Exception {
		session = new DataConnection().getSqlSession();

		// 查询所有元组
		// getUsers();

		// 查询名字中含有 ‘丽’ 的元组
		// getUsers("丽");

		// 查询 id 为 3 的元组
		// getUser(3);

		// 增加一个用户:姓名:王五,密码:555,性别:男,电子邮件:5555@qq.com,省份:湖北省,城市:武汉市,出生日期:1995-05-05
		// insertUser("王五", "555", "男", "5555@qq.com", "湖北省", "武汉市", "1995-05-05");

		// 删除 id 为14的用户
		// deleteUser(14);

		// 将 id 为 16的用户姓名改为 ’关二‘
//		Users user = new Users();
//		user.setId(16);
//		user.setName("关二");
//		updateUser(user);

		// 查询姓名中含有 ‘丽’或者id>1的用户
		whereGet(1, "丽");

		session.commit();
		session.close();
	}

	// 查询所有值
	public static void getUsers() {
		List<Users> users = session.selectList("getUsers");
		for (Users user : users) {
			System.out.println("姓名:" + user.getName());
			System.out.println("性别:" + user.getGender());
			SimpleDateFormat stDateFormat = new SimpleDateFormat("yyyy-MM-dd");
			System.out.println("生日:" + stDateFormat.format(user.getBirthday()));
			System.out.println("所在地:" + user.getProvince() + user.getCity());
		}
	}

	// 模糊查询
	public static List<Users> getUsers(String value) {
		Map<String, Object> paramsMap = new HashMap<>();
		paramsMap.put("value", value);
		List<Users> users = session.selectList("getUsers", paramsMap);
		for (Users user : users) {
			System.out.println("姓名:" + user.getName());
			System.out.println("性别:" + user.getGender());
			SimpleDateFormat stDateFormat = new SimpleDateFormat("yyyy-MM-dd");
			System.out.println("生日:" + stDateFormat.format(user.getBirthday()));
			System.out.println("所在地:" + user.getProvince() + user.getCity());
		}
		return users;
	}

	// 查询某一个值
	public static void getUser(int id) {
		Users user = session.selectOne("getUser", id);
		System.out.println("姓名:" + user.getName());
		System.out.println("性别:" + user.getGender());
		SimpleDateFormat stDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println("生日:" + stDateFormat.format(user.getBirthday()));
		System.out.println("所在地:" + user.getProvince() + user.getCity());
	}

	// where 标签查询
	public static void whereGet(int id, String value) {
		Map<String, Object> paramsMap = new HashMap<>();
		paramsMap.put("userName", value);
		paramsMap.put("id", id);
		List<Users> users = session.selectList("whereGet", paramsMap);
		for (Users user : users) {
			System.out.println("姓名:" + user.getName());
			System.out.println("性别:" + user.getGender());
			SimpleDateFormat stDateFormat = new SimpleDateFormat("yyyy-MM-dd");
			System.out.println("生日:" + stDateFormat.format(user.getBirthday()));
			System.out.println("所在地:" + user.getProvince() + user.getCity());
		}

	}

	// 增加用户
	public static void insertUser(String userName, String password, String gender, String email, String province,
			String city, String birthday) throws ParseException {
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

		Users user = new Users(userName, password, gender, email, province, city);
		user.setBirthday(simpleDateFormat.parse(birthday));
		session.insert("insertUser", user);

	}

	// 删除用户
	public static void deleteUser(int id) {
		session.delete("deleteUser", id);
	}

	// 修改用户信息
	public static void updateUser(Users user) {
		session.update("updateUser", user);
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值