Mybatis快速入门(1)工程搭建+增删改查

package com.itzheng.mybatis.pojo;

import java.util.Date;

public class User {

private Integer id;

private String username;// 用户姓名

private String sex;// 性别

private Date birthday;// 生日

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 String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public Date getBirthday() {

return birthday;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

@Override

public String toString() {

return “User [id=” + id + “, username=” + username + “, sex=” + sex + “, birthday=” + birthday + “, address=”

  • address + “]”;

}

}

6.配置sql查询的映射文件

创建user.xml

在这里插入图片描述

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
7.SqlMapConfig.xml当中加载映射文件

在这里插入图片描述

三、完成需求(增删改查)
1、根据用户ID查询用户信息
(1)编写SQL语句

SELECT id,

username,

birthday,

sex,

address

FROM user

WHERE id = 1

(2)配置user映射文件:修改user.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>

SELECT * FROM USER WHERE id = #{id1}

(3)编写测试程序:创建MybatisTest类

在这里插入图片描述

package com.itzheng.mybatis.test;

import java.io.IOException;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.junit.Test;

import com.itzheng.mybatis.pojo.User;

public class MybatisTest {

@Test

public void testGetUserById() throws IOException {

// 加载配置文件,创建SqlSessionFactoryBuilder

SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();

// 创建核心配置文件的输入流

InputStream inputStream = Resources.getResourceAsStream(“SqlMapConfig.xml”);

// 通过输入流创建sqlSessionFactory对象

SqlSessionFactory sqlSessionFactory = ssfb.build(inputStream);

// 创建SqlSession对象

SqlSession sqlSession = sqlSessionFactory.openSession();

// 执行查询,参数一SQL id 参数二,入参

User user = (User) sqlSession.selectOne(“user.getUserByid”, 1);

//输出查询到的对象

System.out.println(user);

//释放资源

sqlSession.close();

}

}

2、根据用户名模糊查询用户列表
方式一
(1)编写SQL语句

SELECT id,

username,

birthday,

sex,

address

FROM user

WHERE username LIKE ‘%张%’

(2)配置user映射文件:修改user.xml

在这里插入图片描述

SELECT id,username,birthday,sex,address FROM user WHERE username LIKE #{name}

(3)编写测试程序:创建SqlSessionFactoryUtils抽取加载配置文件以及查询数据库的内容

在这里插入图片描述

package com.itzheng.mybatis.jdbc.utils;

import java.io.IOException;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/*

  • SqlSessionFactory工具类

*/

public class SqlSessionFactoryUtils {

private static SqlSessionFactory sqlSessionFactory;

static {

try {

// 加载配置文件,创建SqlSessionFactoryBuilder

SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();

// 创建核心配置文件的输入流

InputStream inputStream;

inputStream = Resources.getResourceAsStream(“SqlMapConfig.xml”);

// 通过输入流创建sqlSessionFactory对象

sqlSessionFactory = ssfb.build(inputStream);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/*

  • 获取sqlSessionFactory

*/

public static SqlSessionFactory getSqlSessionFactory() {

return sqlSessionFactory;

}

}

(4) 在SqlSessionFactoryUtils当中的testGetUserByUserName()方法,方式一

在这里插入图片描述

@Test

public void testGetUserByUserName() {

// 获取sqlSessionFactory

SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

// 创建SqlSession

SqlSession openSession = sqlSessionFactory.openSession();

List selectList = openSession.selectList(“user.getUserByUserName”, “%张%”);

for (User user : selectList) {

System.out.println(user);

}

// 释放资源

openSession.close();

}

方式二
(1)修改user.xml :使用字符串拼接指令${}:字符串拼接指令,如果入参为普通数据类型{}内部只能写value

在这里插入图片描述

(2)修改MybatisTest的testGetUserByUserName方法

在这里插入图片描述

@Test

public void testGetUserByUserName() {

// 获取sqlSessionFactory

SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

// 创建SqlSession

SqlSession openSession = sqlSessionFactory.openSession();

//List selectList = openSession.selectList(“user.getUserByUserName”, “%张%”);

List selectList = openSession.selectList(“user.getUserByUserName”, “张”);

for (User user : selectList) {

System.out.println(user);

}

// 释放资源

openSession.close();

}

在这里插入图片描述

3、mybatis入门
(1)编写SQL语句

INSERT INTO user

(id,

username,

birthday,

sex,

address )

VALUES

(‘id’,

‘username’,

‘birthday’,

‘sex’,

‘address’ );

(2)配置user映射文件:修改user.xml

在这里插入图片描述

INSERT INTO USER

(username,

birthday,

sex,

address)

VALUES (#{username},

#{birthday},

#{sex},

#{address});

(3)编写测试程序:MybatisTest当中创建testInsertUser方法

在这里插入图片描述

@Test

public void testInsertUser() {

// 获取sqlSessionFactory

SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

// 创建SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession();

User user = new User();

user.setSex(“1”);

user.setBirthday(new Date());

user.setUsername(“张飞”);

user.setAddress(“四川”);

sqlSession.insert(“user.insertUser”, user);

//提交事务

sqlSession.commit();

// 释放资源

sqlSession.close();

}

插入成功

在这里插入图片描述

(4)将sqlSessionFactory.openSession(true);设置为true自动提交事务

在这里插入图片描述

4、插入用户,返回主键
返回主键:方式一
(1)修改user.xml

在这里插入图片描述

(2)MybatisTest

在这里插入图片描述

@Test

public void testInsertUser() {

// 获取sqlSessionFactory

SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

// 创建SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession(true);// 设置为true自动提交事务

User user = new User();

user.setSex(“1”);

user.setBirthday(new Date());

user.setUsername(“张飞4”);

user.setAddress(“四川”);

sqlSession.insert(“user.insertUser”, user);

System.out.println(user);// 输出数控影响的行数

// 提交事务

// sqlSession.commit();

// 释放资源

sqlSession.close();

}

返回主键:方式二
(1)修改user.xml:替代了SQL语句并返回了int类型的值,到User的id当中

在这里插入图片描述

<insert id=“insertUser” parameterType=“com.itzheng.mybatis.pojo.User”

useGeneratedKeys=“true” keyProperty=“id”>

(2)MybatisTest当中的testInsertUser方法得到结果

在这里插入图片描述

5、插入用户,uuid使用
a、修改user的表结构

在这里插入图片描述

b、修改User类

在这里插入图片描述

private String uuid2;

public String getUuid2() {

return uuid2;

}

public void setUuid2(String uuid2) {

this.uuid2 = uuid2;

}

在这里插入图片描述

c、修改user.xml

创建新的插入数据库的规则

在这里插入图片描述

d、在MybatisTest当中添加testInsertUserUUID方法

在这里插入图片描述

@Test

public void testInsertUserUUID() {

// 获取sqlSessionFactory

SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

// 创建SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession(true);// 设置为true自动提交事务

User user = new User();

user.setSex(“1”);

user.setBirthday(new Date());

user.setUsername(“张飞7”);

user.setAddress(“四川”);

sqlSession.insert(“user.insertUserUUID”, user);

System.out.println(user);// 输出数控影响的行数

// 提交事务

// sqlSession.commit();

// 释放资源

sqlSession.close();

}

难道这样就够了吗?不,远远不够!

提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。

备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记

我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。

今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

image.png

SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();

// 创建SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession(true);// 设置为true自动提交事务

User user = new User();

user.setSex(“1”);

user.setBirthday(new Date());

user.setUsername(“张飞7”);

user.setAddress(“四川”);

sqlSession.insert(“user.insertUserUUID”, user);

System.out.println(user);// 输出数控影响的行数

// 提交事务

// sqlSession.commit();

// 释放资源

sqlSession.close();

}

难道这样就够了吗?不,远远不够!

提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。

备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记

我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。

今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!

[外链图片转存中…(img-sEnH9xLx-1719284147409)]

[外链图片转存中…(img-wh8uf0JQ-1719284147409)]

[外链图片转存中…(img-thytVsj5-1719284147410)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值