《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
order:指定selectKey何时执行:AFTER之后
–>
INSERT INTO user
(username
,
birthday
,
sex
,
address
)
VALUES (#{username},
#{birthday},
#{sex},
#{address});
b、创建User对象
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;// 地址
private String uuid2;
public String getUuid2() {
return uuid2;
}
public void setUuid2(String uuid2) {
this.uuid2 = uuid2;
}
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 + “, uuid2=” + uuid2 + “]”;
}
}
c、创建Order类
package com.itzheng.mybatis.pojo;
import java.util.Date;
public class Order {
private Integer id;
private Integer userId;
private String number;
private Date createtime;
private String note;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number == null ? null : number.trim();
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note == null ? null : note.trim();
}
@Override
public String toString() {
return “Order [id=” + id + “, userId=” + userId + “, number=” + number + “, createtime=” + createtime
- “, note=” + note + “]”;
}
}
d、创建UserDao接口
package com.itzheng.mybatis.dao;
import java.util.List;
import com.itzheng.mybatis.pojo.User;
public interface UserDao {
// 根据用户ID查询用户信息
/*
- 用户信息持化接口
*/
User getUserById(Integer id);
// 根据用户名查找用户列表
List getUserByUserName(String userName);
// 添加用户
void insertUser(User user);
}
e、创建UserDao接口的实现类
package com.itzheng.mybatis.dao.impl;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import com.itzheng.mybatis.dao.UserDao;
import com.itzheng.mybatis.pojo.User;
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
@Override
public User getUserById(Integer id) {
SqlSession sqlSession = super.getSqlSession();
User user = sqlSession.selectOne(“user.getUserById”,id);
//千万不能关闭sqlsession
//sqlSession.close();
return user;
}
@Override
public List getUserByUserName(String userName) {
SqlSession sqlSession = super.getSqlSession();
List list = sqlSession.selectList(“user.getUserByUserName”,userName);
return list;
}
@Override
public void insertUser(User user) {
SqlSession sqlSession = super.getSqlSession();
sqlSession.insert(“user.insertUser”,user);
}
}
f、在spring的配置文件applicationContext.xml当中配置dao的实现
g、完善SqlMapConfig.xml
6. 创建单元测试
package com.itzheng.mybatis.test;
import static org.junit.Assert.fail;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.itzheng.mybatis.dao.UserDao;
import com.itzheng.mybatis.pojo.User;
public class UserDaoTest {
private ApplicationContext applicationContext;
@Before
public void init() {
applicationContext = new ClassPathXmlApplicationContext(“classpath:applicationContext.xml”);
}
@Test
public void testGetUserById() {
UserDao userDao = applicationContext.getBean(UserDao.class);
User user = userDao.getUserById(30);
System.out.println(user);
}
}
方式一:
1. 创建mapper包和UserMapper.java和UserMapper.xml
(1)UserMapper.java
package com.itzheng.mybatis.mapper;
import java.util.List;
import com.itzheng.mybatis.pojo.User;
public interface UserMapper {
// 根据用户ID查询用户信息
/*
- 用户信息持化接口
*/
User getUserByid(Integer id);
// 根据用户名查找用户列表
List getUserByUserName(String userName);
// 添加用户
void insertUser(User user);
}
(2)UserMapper.xml
id,
username,
birthday,
sex,
address
SELECT
FROM
USER WHERE id = #{id1}
SELECT
FROM user
WHERE username LIKE
‘%${value}%’
INSERT INTO USER
(
username
,
birthday
,
sex
,
address
)
VALUES (
#{username},
#{birthday},
#{sex},
#{address});
2. applicationContext.xml
3、创建单元测试
package com.itzheng.mybatis.test;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.itzheng.mybatis.mapper.UserMapper;
import com.itzheng.mybatis.pojo.User;
public class UserMapperTest {
private ApplicationContext applicationContext;
@Before
public void init() {
applicationContext = new ClassPathXmlApplicationContext(“classpath:applicationContext.xml”);
}
@Test
public void testGetUserByid() {
UserMapper userMapper = applicationContext.getBean(UserMapper.class);
User user = userMapper.getUserByid(30);
System.out.println(user);
}
@Test
public void testGetUserByUserName() {
fail(“Not yet implemented”);
}
@Test
public void testInsertUser() {
fail(“Not yet implemented”);
}
}
运行测试代码
方式二:包扫描
1、修改applicationContext.xml
2、运行测试代码
源代码下载:
https://pan.baidu.com/s/1czwasu
密码: nc9w
1、导入逆行工程代码
2、修改generatorConfig.xml
(1)数据库连接的信息:驱动类、连接地址、用户名、密码
<jdbcConnection driverClass=“com.mysql.jdbc.Driver”
connectionURL=“jdbc:mysql://localhost:3306/mybatis” userId=“root”
password=“root”>
(2)targetProject:生成PO类的位置
<javaModelGenerator targetPackage=“com.itzheng.ssm.po”
targetProject=“.\src”>
(3)targetProject:mapper映射文件生成的位置
<sqlMapGenerator targetPackage=“com.itzheng.ssm.mapper”
targetProject=“.\src”>
(4)targetPackage:mapper接口生成的位置
<javaClientGenerator type=“XMLMAPPER”
targetPackage=“com.itzheng.ssm.mapper”
targetProject=“.\src”>
(5)指定数据库表
(6)运行项目
生成对应的代码
3、实现功能
(1)将生成的项目复制到mybatis-srping当中
(2)applicationContext.xml当中配置包扫描
面试结束复盘查漏补缺
每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。
以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~
重要的事说三遍,关注+关注+关注!
更多笔记分享
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0NzU3MDM0,size_16,color_FFFFFF,t_70)
(2)applicationContext.xml当中配置包扫描
面试结束复盘查漏补缺
每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。
以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~
重要的事说三遍,关注+关注+关注!
[外链图片转存中…(img-qTb7T6Wh-1714708410996)]
[外链图片转存中…(img-9p0vyZ1H-1714708410997)]
更多笔记分享
[外链图片转存中…(img-3OB8SaQ6-1714708410997)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!