myBatis学习笔记(二)

myBatis工程结构(代码引用自某教学视频)


1 在工程下创建Source Folder文件夹:

这个文件夹下存放三个重要文件:

log4j.properties,,该文件用户显示日志,文件内容基本固定如下:

  # Global logging configuration
#\u5728\u5f00\u53d1\u73af\u5883\u4e0b\u65e5\u5fd7\u7ea7\u522b\u8981\u8bbe\u7f6e\u6210DEBUG\uff0c\u751f\u4ea7\u73af\u5883\u8bbe\u7f6e\u6210info\u6216error
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

如果调试log4j.rootLogger等于DEBUG 如果是上线则使用error或者info。


SqlMapConfig.xml 这个文件时mybatis的配置文件,文件名可以随意起,在代码中通过下面语句注入,用于生成会话工厂

该文件主要用于记录数据库账号密码,驱动等信息,以及后面编写的mapper文件

String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);


文件内容如下:


PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">




















































最后一个文件就是自己编写的mapper文件,这个文件就是数据库操作的实现文件


PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


















SELECT LAST_INSERT_ID()

insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})








delete from user where id=#{id}




update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} 
where id=#{id}





这三个文件写好后,就可以开始编写代码了

@Test
public void testSelect() throws IOException
{
String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);

SqlSession sqlSession = sqlSessionFactory.openSession();

User user = (User)sqlSession.selectOne("test.findUserById", 14);

sqlSession.close();

System.out.println(user);
}

如上通过session来操作,"test.findUserById"表示使用id为test的mapper文件findUserById表示mapper文件内的操作模块,14是传递的查询参数

最后关闭session


另外myBatis支持mapper代理的方式操作数据库,这种方式为程序员省略了DAO实现类的编写,程序员只要编写DAO接口类即可自动生成实现类

首先定义mapper.xml文件,文件中mapper的namespace的值为DAO接口的地址,如UserMapper.java在com.abc.mapper包下,那么namespace=“com.abc.mapper.UserMapper”,然后在UserMapper.java中实现数据库操作,函数名需要与mapper.xml文件中的statement的id相同,输入参数与parameterType相同,输出参数与resultType相同。


在测试类中使用方式如下:

SqlSession sqlSession = sqlSessionFactory.openSession();

UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user =  userMapper.findUserById(14);

sqlSession.close();

 

你可能感兴趣的:(myBatis学习笔记(二))