首页 > IT职业 > IT图书 > 我的mybatis学习记录。
配置运行环境
1.创建Mybatis核心配置文件SqlMapConfig.xml
//对实体类进行扫描,并且创建别名
//使用JDBC的事务管理
//配置数据源
//指定Mapper所在路径
2.配置orderMapper.xml
//namespace代表这个mapper的命名空间,如果用mapper代理开发直接填写接口的全路径,也可以自定义
//id为该sql语句的唯一标识符
//parameterType是传入sql语句的参数类型
//resultType表示查询结果返回的类型
//#{}表示一个占位符,其中的id代表传入的参数名称,如果是简单类型,名称可以自定义
//测试
public class MyBatisFirstTest{
@Test
public void searchUserById(){
//指定SqlMapConfig.xml文件位置
String resource = Resources.getResourceAsStream("sqlMapConfig.xml");
//将mybatis的配置信息转化成流
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
Session session = sqlSessionFactory.openSession();
//需要传入两个参数,一个是使用的sql语句id,一个是sql语句需要传入的参数
//指定sql语句前面需要加上命名空间名称
User user = session.selectOne("userMapper.searchUserById",1);
System.out.println(user);
}
} Mapper代理方法
//创建OrderMapper.java
public Interface OrderMapper{
//方法名称要和所使用的sql语句id一样
public User searchUserById(int id);
} //测试
public class MyBatisFirstTest{
@Test
public void searchUserById(){
//指定SqlMapConfig.xml文件位置
String resource = Resources.getResourceAsStream("sqlMapConfig.xml");
//将mybatis的配置信息转化成流
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
Session session = sqlSessionFactory.openSession();
OrderMapper orderMapper = session.getMapper(OrderMapper.class);
User user = orderMapper.searchUserById(1);
System.out.println(user);
}
} 使用拼接串符号实现模糊查询
//在Mapper中创建sql语句
//测试
public void searchUserById(){
String resource = Resources.getResourceAsStream("sqlMapConfig.xml");
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
Session session = sqlSessionFactory.openSession();
//因为可能返回多条记录,所以使用selectList方法来接收一个list
List list = session.selectList("userMapper.searchUserByName","melon");
System.out.println(list);
} //插入
//#{}中接收实体类的属性名,通过ognl来获取对象的属性
insert into user (name,password,address,tel) value (#{name},#{password},#{address},#{tel})
//删除
delete * from user where id = #{}
//更新
update user set name=#{name},password=#{password},address=#{address},tel=#{tel} where id=#{id}
使用resultMap
//用购物信息做例子
//id表示user类中唯一标识,property是实体类中参数名,column是查询结果中的字段名
//result是查询结果中映射到实体类的其他字段
//collection是表示一个user可能有多个order,所以使用collection标签
//一个order会有多个购物项,同理
//一个购物项对应一个商品,所以使用association标签
动态sql
and sex = #{user.sex}
and name like '%${user.name}%'
//foreach标签
//用foreach实现以下片段select * from user where id in (1,2,3)
//每次遍历需要拼接的串
#{id}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1371/viewspace-2808190/ ,如需转载,请注明出处,否则将追究法律责任。