SessionFactory.openSession();
}
@Test
public void test01(){
// 使用二级缓存实现sql语句调用
List<User> userList = sqlSession.selectList("listUser");
// 遍历集合
for (User user : userList) {
System.out.println(user);
}
}
@Test
public void test02(){
User user = new User("3","robot01","123456");
sqlSession.insert("addUser",user);
// mybatis 需要手动提交缓存
sqlSession.commit();
test01();
}
@Test
public void test03(){
User user = new User();
user.setUserId("3");
sqlSession.delete("deleteUser",user);
sqlSession.commit();
test01();
}
@Test
public void test04(){
User user = sqlSession.selectOne("getUser","2");
System.out.println(user);
}
@Test
public void test05(){
User user = new User("2","HSS","123456");
sqlSession.update("updateUser",user);
sqlSession.commit();
test01();
}
@Test
public void test06(){
List<User> users = sqlSession.selectList("listUserByNameLike","ss");
System.out.println(users);
}
@Test
public void test07(){
Map<String,Object> params = new HashMap<>();
params.put("userId",2);
params.put("username","ss");
List<User> users = sqlSession.selectList("listUserByIdAndNameLike",params);
System.out.println(users);
}
}
一对多关系查询
配置文件(?注意:每一个配置文件都需要在 mybatis-config.xml 中进行注册!!!!!!!!!)
<resultMap id="productBean" type="Product">
<id column="productId" property="productId"/>
<result column="productName" property="productName"/>
<result column="price" property="price"/>
<result column="stock" property="stock"/>
<association property="user" javaType="User">
<id column="uId" property="userId"/>
<result column="username" property="username"/>
</association>
</resultMap>
<!-- 多对一关系查询-->
<select id="listProduct" resultMap="productBean">
select productName,productId,price,stock,u.userId 'uId',username from product left join user u on product.userId = u.userId
</select>
测试类
public class TestMybatis {
private SqlSession sqlSession;
@Before
public void init() throws IOException {
// 输入流读取配置文件信息
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
// 基于配置文件获取 mybatis 的一级缓存对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 基于这个一级缓存,创建一个二级缓存
sqlSession = sqlSessionFactory.openSession();
}
@Test
public void test01(){
List<Product> productList = sqlSession.selectList("listProduct");
for (Product product : productList) {
System.out.println(product);
}
}
}
动态sql查询
配置文件(?注意:每一个配置文件都需要在 mybatis-config.xml 中进行注册!!!!!!!!!)
<select id="listProduct" resultType="product">
select * from product
<if test="productName != null">
where productName like concat('%',#{productName},'%')
</if&