4.0.0 com.bjpowernode 01_hello_mybatis 1.0.0 UTF-8 1.8 1.8 org.mybatis mybatis 3.5.6 mysql mysql-connector-java 8.0.30 org.projectlombok lombok 1.18.20 provided junit junit 4.12 test
resources文件夹下
mybatis-config.xml
com.bjpowernode.domain
User类
package com.bjpowernode.domain;import lombok.*;import java.util.Date;@Getter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class User {private Long id;private String name;private Integer age;private int sex;private String address;private Date birthday;}
com.bjpowernode.mapper
UserMapper接口
package com.bjpowernode.mapper;import com.bjpowernode.domain.User;
import org.apache.ibatis.annotations.MapKey;import java.util.List;
import java.util.Map;public interface UserMapper {List listAll();//返回值为Map类型@MapKey("id")Map queryById1(Long id);//返回值为JavaBean对象User queryById2(Long id);}
resources文件下
com.bjpowernode.mapper
UserMapper.xml
package com.bjpowernode.test;import com.bjpowernode.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.Date;
import java.util.List;
import java.util.Map;public class MyBatisTest {@Testpublic void testSelect() throws IOException {// 加载MyBatis的核心配置文件InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");// 获取sqlSessionFactory 工厂对象SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resourceAsStream);// 获取sqlSession对象SqlSession sqlSession = factory.openSession();// 调用mybatis的接口方法/*参数:statement 语句 :(namespace 的值 + "." + sql标签中id的属性的值)* */List list = sqlSession.selectList("com.bjpowernode.mapper.UserMapper.listAll");list.forEach(System.out::println);// 提交事务sqlSession.commit();// 释放资源sqlSession.close();}@Testpublic void testSelectOne1() throws IOException {// 加载MyBatis的核心配置文件InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");// 获取sqlSessionFactory 工厂对象SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resourceAsStream);// 获取sqlSession对象SqlSession sqlSession = factory.openSession();// 调用mybatis的接口方法/*参数一:statement 语句 :(namespace 的值 + "." + sql标签中id的属性的值)参数二: sql语句需要的参数 (只能传一个值,如果sql中需要很多参数,采用封装的方式处理)无论返回值类型是map 还是 javaBean ,则都使用 selectOne,如果返回值是list则使用selectList* */Map map = sqlSession.selectOne("com.bjpowernode.mapper.UserMapper.queryById1", 1L);System.out.println("map = " + map);map.forEach((k, v) -> {System.out.println(k + ":" + v);});// 提交事务sqlSession.commit();// 释放资源sqlSession.close();}@Testpublic void testSelectOne2() throws IOException {// 加载MyBatis的核心配置文件InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");// 获取sqlSessionFactory 工厂对象SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resourceAsStream);// 获取sqlSession对象SqlSession sqlSession = factory.openSession();// 调用mybatis的接口方法/*参数一:statement 语句 :(namespace 的值 + "." + sql标签中id的属性的值)参数二: sql语句需要的参数 (只能传一个值,如果sql中需要很多参数,采用封装的方式处理)无论返回值类型是map 还是 javaBean ,则都使用 selectOne,如果返回值是list则使用selectList* */User user = sqlSession.selectOne("com.bjpowernode.mapper.UserMapper.queryById2", 1L);System.out.println("user = " + user);// 释放资源sqlSession.close();}}
下一篇:描述一个人死亡的成语