初学MyBatis框架
Posted 大浪自逍遥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学MyBatis框架相关的知识,希望对你有一定的参考价值。
一,MyBatis中三个常用的查询方法
1,selectlList
用于查询多条数据的情况,返回值是一个List集合,如果没有查询到任何数据,返回没有元素的空集合(不是null)。
@Test
public void testSelAll() {
SqlSession session=null;
try {
//加载MyBatis核心配置文件
InputStream is = Resources.getResourceAsStream("mybatis_cfg.xml");
//构建SqlSessionFactory工厂对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//通过工厂打开SqlSession
session = factory.openSession();
//通过session执行查询操作
List<User> list = session.selectList("com.wlk.mapper.UserMapper.selAll");
System.out.println(list);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//关闭资源
if(session!=null) {
session.close();
}
}
}
2,selectOne
用于查询单条数据,返回值是一个对象,如果没有查到数据返回值是null。
@Test
public void testSelectOne() throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis_cfg.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
User user = session.selectOne("com.wlk.mapper.UserMapper.selOne");
System.out.println(user);
session.close();
3,selectMap
用于查询多条数据的情况,多条数据要形成一个Map集合,如果查询不到数据返回一个空map集合(不是null)。
@Test
public void testSelectMap() throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis_cfg.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
Map<Integer, User> map = session.selectMap("com.wlk.mapper.UserMapper.selAll", "id");//表示应id表示key值
System.out.println(map);
//遍历map集合
Set<Integer> set = map.keySet();
for (Integer k : set) {
System.out.println(map.get(k));
}
session.close();
}
二,LOG4J
1,log4j是Apache提供的而一款记录日志的工具
2,log4j既可以将日志信息打印到控制台,也可以打印输出到一个日志文件中
3,log4j可以定制日志的输出格式
4,log4j可以定制日志的输出级别
LOG4J日志级别
1,FATAL
致命的,表示非常严重的错误,一般是系统错误
2,ERROR
错误,表示代码错误,比较严重
3,WARN
警告,不影响程序运行,但可能存在风险
4,INFO
信息,拜师一个普通输出信息
5,DEBUG
调试,表示程序员认为的一些调试信息
使用LOG4J
1,导包
log4j-api-2.0-rc1.jar
log4j-core-2.0-rc1.jar
log4j-1.2.17.jar
2,配置文件
使用一个叫log4j.properties的配置文件,会设定log4j的设置信息,例如日志级别,日志输出方式,日志格式等等。(eclipse中有自带)
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=debug, CONSOLE
log4j.rootCategory=DEBUG, CONSOLE, LOGFILE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%c%l%d{yyyy-MM-dd HH-mm:ss}%n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=c:/test.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=- %m%l%n
测试:
public class TestLog4j {
public static void main(String[] args) {
//获取日志对象
Logger logger=Logger.getLogger(TestLog4j.class);
//五个日志级别,分别对应五个输出方法,方法和级别名一致
logger.fatal("系统崩溃了。。。");
logger.error("发生错误。。。");
logger.warn("警告!");
logger.info("消息~");
logger.debug("调试---");
}
}
控制台
文件下
三,MyBatis中对LOG4J的支持
1,将log4j.properties配置文件放到mybatis项目的src目录下面,进行测试
2,单独设置设置SQL语句的输出级别为DEBUG级别
运行效果截图
四,这次过程写得不够详细,其中还有很多细节没有涉猎到,再接再厉吧
以上是关于初学MyBatis框架的主要内容,如果未能解决你的问题,请参考以下文章