<?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">
<!-- ↑↑ 引用文件标注 ↑↑ -->
<!-- 配置命名空间,可以配置多个命名空间 -->
<mapper namespace="userMapper">
<!--
id:设置命名空间中的id,每个id代表着一个方法
resultType:指定返回对象的类型,该类型应为实体类
-->
<select id="findAll" resultType="com.DemoTestNode.entityClass.User">
<!-- 存放该方法中包含的sql语句 -->
select * from person
</select>
</mapper>
<?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>
<environments default="developemnt">
<!-- 配置标识名 -->
<environment id="developemnt">
<!-- 事务类型管理设置 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test_1"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 设置映射文件路径,这样在配置核心文件时也能够一并将映射文件配置 -->
<mappers>
<mapper resource="com/DemoTestNode/mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
@Test
public void test1() throws IOException {
// 获取核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
// 获得session工厂对象
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
// 获得session回话对象
SqlSession sqlSession = build.openSession();
// 执行操作 。 参数:namespace . id
List<User> userList = sqlSession.selectList("userMapper.findAll");
System.out.println(userList);
// 释放Session
sqlSession.close();
}
@Test
public void test2() throws IOException {
// 编写实体类
User user = new User();
user.setName("张老三");
user.setSex(19);
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = build.openSession();
// 在执行更新操作时,需要传递类
int changeRows = sqlSession.insert("userMapper.addUser", user);
// 当 mybatis 执行更新操作时 必须提交事务才可以对数据库的结果产生影响
sqlSession.commit();
sqlSession.close();
}
<select id="addUser" parameterType="com.DemoTestNode.entityClass.User">
insert into person values(null ,#{name},#{sex})
</select>
@Test
public void test3() throws IOException {
User user = new User();
user.setId(104);
user.setName("王老吉");
user.setSex(80);
// 获取核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = build.openSession();
int changeRows = sqlSession.update("userMapper.updateUser",user);
// 当 mybatis 执行更新操作时 必须提交事务才可以对数据库的结果产生影响
sqlSession.commit();
System.out.println(changeRows);
sqlSession.close();
}
<update id="updateUser" parameterType="com.DemoTestNode.entityClass.User">
update person set name=#{name},sex=#{sex} where id=#{id}
</update>
@Test
public void test4() throws IOException {
// 获取核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = build.openSession();
int changeRows = sqlSession.delete("userMapper.delUser",104);
// 当 mybatis 执行更新操作时 必须提交事务才可以对数据库的结果产生影响
sqlSession.commit();
System.out.println(changeRows);
sqlSession.close();
}
<delete id="delUser" parameterType="java.lang.Integer">
delete from person where id=#{id}<!-- 因为只有一个参数,所以#{}中的内容写什么都可以 -->
</delete>
// 查询全部
@Test
public void test1() throws IOException {
// 获取核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
// 获得session工厂对象
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
// 获得session回话对象
SqlSession sqlSession = build.openSession();
// 执行操作 。 参数:namespace . id
List<User> userList = sqlSession.selectList("userMapper.findAll");
System.out.println(userList);
sqlSession.close();
}
// 查询单个
@Test
public void test0() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = build.openSession();
User user = sqlSession.selectOne("userMapper.findOne", 1);
System.out.println(user.getName());
sqlSession.close();
}
<environments default="developemnt"><!-- 指定默认环境名称 -->
<environment id="developemnt"><!-- 指定当前环境的名称 -->
<transactionManager type="JDBC"></transactionManager><!--指定事务管理类型-->
<dataSource type="POOLED"><!-- 指定当前数据源类型是链接池 -->
<!-- 数据源配置 -->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test_1"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/DemoTestNode/mapper/UserMapper.xml"></mapper>
</mappers>
<mapper resource="">
<mapper url="">
<mapper class="">
<package name="">
<properties resource="指定properties文件"></properties>
<typeAliases>
<typeAlias type="com.DemoTestNode.entityClass.User" alias="user"></typeAlias>
</typeAliases>