使用 Maven 搭建 Mybatis 环境:https://blog.csdn.net/qq_42322548/article/details/89913220
创建一个 Maven 项目。
1、添加 jar 包依赖。
org.mybatis
mybatis
3.5.1
mysql
mysql-connector-java
8.0.13
junit
junit
4.12
org.projectlombok
lombok
1.18.8
provided
2、设置资源文件路径,使 Maven 能编译 resource 文件夹之外的资源文件。
src/main/java
**/*.properties
**/*.xml
false
3、目录结构。
二、创建实体类
这里使用了 Lombok:https://blog.csdn.net/qq_42322548/article/details/91438451
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String account;
private String password;
private String name;
private int phone;
}
在 resource 文件夹新建 jdbc.properties 配置文件,保存配置相关的信息。
# mysql驱动包名
driver=com.mysql.cj.jdbc.Driver
# 数据库连接地址
url=jdbc:mysql://localhost:3306/demo_1? serverTimezone=GMT &useUnicode=true& characterEncoding=utf8
# 用户名
username=root
# 密码
password=root
在 resource 文件夹新建 mybatis-config.xml 。
在 mapper 文件夹新建 UserMapper.xml 文件,并在 Configuration.xml 文件中加载该文件。
编写 mapper.xml(映射文件)和 mapper.java 需要遵循一个开发规范:
insert into users values (#{id}, #{account}, #{password}, #{name}, #{phone})
delete from users where id = #{id}
update users set account = #{account}, password = #{password}, name = #{name}, phone = #{phone} where id = #{id}
在 mapper 文件夹新建 UserMapper 接口,并将 sql 映射文件中的 namespace 改成 UserMapper 接口的地址。
public interface UserMapper {
/**
* 增
* @param user
*/
void insertUser(User user);
/**
* 删
* @param user
*/
void deleteUser(User user);
/**
* 改
* @param user
*/
void updateUser(User user);
/**
* 通过id查找
* @param user
* @return
*/
User queryUserById(User user);
/**
* 通过名字模糊查找
* @param name
* @return
*/
List queryUserByName(String name);
}
在 test 文件夹 新建 junit 测试类。
public class test {
private SqlSessionFactory sqlSessionFactory = null;
@Before
public void init() throws Exception{
// 创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
// 加载mybaits-config.xml配置文件
InputStream inputStream = Resources.getResourceAsStream("mybaits-config.xml");
// 创建SqlsessionFactory
this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
}
@Test
public void testInsert(){
// 获取sqlSession,和spring整合后由spring管理
SqlSession sqlSession = this.sqlSessionFactory.openSession();
// 从sqlSession中获取Mapper接口的代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User(1, "123", "abc", "张三", 110);
userMapper.insertUser(user);
// 和spring整合后由spring管理
sqlSession.commit();
sqlSession.close();
}
@Test
public void testDelete(){
SqlSession sqlSession = this.sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.deleteUser(1);
sqlSession.commit();
sqlSession.close();
}
@Test
public void testQueryUserById(){
SqlSession sqlSession = this.sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setId(1);
User userResult = userMapper.queryUserById(user);
System.out.println(userResult);
}
@Test
public void testQueryUserByName(){
SqlSession sqlSession = this.sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List userList = userMapper.queryUserByName("张");
System.out.println(userList);
}
}