·
路径放进去
OK
String resource = "sqlMapConfig.xml";
InputStream in = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
SqlSession sqlSession = sqlSessionFactory.openSession();
//SqlSession帮助生成了一个实现类(给接口)
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.findUserById(28);
System.out.println(user);
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
entity别名
标签的先后顺序,顺序出错会报错。
<typeAliases>
<typeAlias type="com.mask.mybatis.entity.User" alias="User"/>
</typeAliases>
还可直接指定父包,会给你自动生成别名,例如下面的entity下的类名是.User,会自动生成user,User
mappers映射
如果用class映射,必须把写sql的xml放在,接口的同目录下,并且改名与接口名相同。
除了resource和class外还有一个属性是url,url中制定的是xml文件的绝对路径,不建议使用。
映射的另一个标签,制定包
跟class一样,此标签xml文件要与接口放同一目录下,并且名称相同。建议使用。
手动映射,实体表与数据库表字段名不一致
把数据库表与实体中的字段名不一样的改了就可以。
if where标签
sql片段 把公共部分提取,使用
根据多个id查询
List<Integer> collection就用list
一对一关联查询
select o.id, o.user_id, o.number, o.createtime, u.username FROM orders o
left join user u on o.user_id = u.id
一对多关联查询