
org.mybatis mybatis 3.5.2 mysql mysql-connector-java 5.1.47 junit junit 4.13.1 test
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 java.io.IOException;
import java.io.InputStream;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession连接
public static SqlSession getSession(){
return sqlSessionFactory.openSession();
}
}
public interface UserMapper {
List selectUser();
}
public class MyTest {
@Test
public void selectUser() {
SqlSession session = MybatisUtils.getSession();
//方法一:
//List users = session.selectList("com.kuang.mapper.UserMapper.selectUser");
//方法二:
UserMapper mapper = session.getMapper(UserMapper.class);
List users = mapper.selectUser();
for (User user: users){
System.out.println(user);
}
session.close();
}
}
可能遇到的问题
解决办法 :在pom.xml文件添加以下代码
基础的CRUD操作(多练) select操作src/main/java ***.xml false src/main/resources ***.xml false
参数的传递问题 方式一:通过注解进行传递使用select标签,其中注意点就是关于参数的传递
//通过密码和名字查询用户
User selectUserByNP(@Param("username") String username,@Param("pwd") String pwd);
方式二:通过map进行参数的传递
insert ,update,delete操作
注意事项:
configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器)
其中有两个重要的子节点元素
1.transactionManager(事务管理器)
2.dataSourse(数据库源)
作用:配置连接对象
是什么? 就是映射器,映射接口文件
配置优化重点!!! 需要掌握四种引入方式
1.使用properties元素导入相关连接信息
2.使用别名来代替包的全路径
作用域和生命周期主要理解三个的各自存在的周期
结果集映射ResultType理解:顾名思义,就是将查询到的结果做一个新的映射,而不是使用原本的默认映射(HashMap)
目的是什么:能够解决从数据库查询到的数据列名和pojo的属性名不同的情况
分页功能 日志功能 动态SQl 缓存(了解)