Mybatis快速入门增删改查
程序员文章站
2022-06-12 18:12:54
...
Mybatis快速入门增删改查
MyBatis环境配置
- 引入坐标
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
- 配置MyBatis环境相关
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- <property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
<!-- <property name="url"-->
<!-- value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true;characterEncoding=UTF-8;useSSL=false;serverTimezone = GMT"/>-->
<!-- <property name="username" value="root"/>-->
<!-- <property name="password" value="17633908064"/>-->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 加载外部配置文件-->
<mappers>
<mapper resource="com/mapper/UserMapper.xml"/>
</mappers>
</configuration>
-
创建数据库实体User同时设置实体setter和getter方法
-
MyBatis相关的SQL映射文件(namespace+id为调用接口),配置返回参数resultType和传入parameterType参数
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace为命名空间,与接下来的id组成调用路径-->
<mapper namespace="UserMapper">
<select id="findAll" resultType="com.domain.User">
select * from sys_user
</select>
<insert id="insertUser" parameterType="com.domain.User">
insert into sys_user values (#{id}, #{username}, #{email}, #{password}, #{phoneNum});
</insert>
<update id="updateUser" parameterType="com.domain.User">
update sys_user set username=#{username}, password=#{password} where id=#{id}
</update>
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from sys_user where id=#{id}
</delete>
</mapper>
- 测试(有更改数据库中数据的语句的应提交事务),或者在openSession时传入true表示自动提交事务
查询一个结果selectOne 查询多个结果selectList
package com.test;
import com.domain.User;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MybatisTest {
@Test
// 查询操作
public void testSelect() throws IOException {
// 加载配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("mybatisConfig.xml");
// 获取sqlSession工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
// 开启获取sqlSession
SqlSession sqlSession = sessionFactory.openSession();
// 执行查询 参数:namespace+id
List<User> userList = sqlSession.selectList("UserMapper.findAll");
System.out.println(userList);
// 关闭查询
sqlSession.close();
}
@Test
// 插入操作
public void testInsert() throws IOException {
User user = new User();
user.setUsername("谷争昌");
user.setEmail("[email protected]");
user.setPassword("123456");
user.setPhoneNum("145658765545");
// 加载配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("mybatisConfig.xml");
// 获取sqlSession工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
// 开启获取sqlSession
SqlSession sqlSession = sessionFactory.openSession();
// 执行查询 参数:namespace+id
sqlSession.insert("UserMapper.insertUser", user);
// 如果sql语句会改变数据库中的数据则需要提交事务
sqlSession.commit();
// 关闭查询
sqlSession.close();
}
@Test
// 修改操作
public void testUpdate() throws IOException {
User user = new User();
user.setId(10);
user.setUsername("gzc");
user.setEmail("[email protected]");
user.setPassword("123456");
user.setPhoneNum("1456545");
// 加载配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("mybatisConfig.xml");
// 获取sqlSession工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
// 开启获取sqlSession
SqlSession sqlSession = sessionFactory.openSession();
// 执行查询 参数:namespace+id
sqlSession.update("UserMapper.updateUser", user);
// 如果sql语句会改变数据库中的数据则需要提交事务
sqlSession.commit();
// 关闭查询
sqlSession.close();
}
@Test
// 删除操作
public void testDelete() throws IOException {
// 加载配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("mybatisConfig.xml");
// 获取sqlSession工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
// 开启获取sqlSession
SqlSession sqlSession = sessionFactory.openSession();
// 执行查询 参数:namespace+id
sqlSession.update("UserMapper.deleteUser", 11);
// 如果sql语句会改变数据库中的数据则需要提交事务
sqlSession.commit();
// 关闭查询
sqlSession.close();
}
}
- 定义别名方便映射文件配置(typeAliases),加载外部properties配置文件(都在congfiguration内部)
<configuration>
<!-- 加载外部配置文件-->
<properties resource="jdbc.properties"/>
<!-- 自定义别名,注意位置必须是在configuration内部properties后面-->
<!-- MyBatis默认已经定义了一部分别名,Integer——>int String——>string Boolean->boolean等 -->
<typeAliases>
<typeAlias type="com.domain.User" alias="user"/>
</typeAliases>
<environments default="development">
<environment id="development">
<!-- JDBC配置直接使用JDBC的提交和回滚设置-->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- <property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
<!-- <property name="url"-->
<!-- value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true;characterEncoding=UTF-8;useSSL=false;serverTimezone = GMT"/>-->
<!-- <property name="username" value="root"/>-->
<!-- <property name="password" value="17633908064"/>-->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 加载外部配置文件-->
<mappers>
<mapper resource="com/mapper/UserMapper.xml"/>
</mappers>
</configuration>
上一篇: 非常简单的数学题,如何写呢
推荐阅读
-
mybatis使用xml进行增删改查代码解析
-
mybatis框架快速入门
-
JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识
-
Mybatis01-MyBatis快速入门
-
idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD
-
mybatis基于注解实现增删改查(详细介绍)
-
Mybatis增删改查(非接口,接口两种方式)
-
Mybatis框架二:增删改查
-
Mybatis框架学习之增删改查
-
MyBatis从入门到精通(四):MyBatis XML方式的基本用法之增删改