SqlSession三种查询的方式
//查询方式一 使用于查询多条数据的时候,返回一个集合
List<Flower> list = sqlSession.selectList("com.bzsxt.mapper.FlowerMapper.selectAll");
//查询某一个,返回查询的对象
Object selectOne = sqlSession.selectOne("com.bzsxt.mapper.FlowerMapper.selectOne");
//s1这个参数作为map的key传入,通过get方法快速查询到某一条数据
Map<Object, Object> selectMap = sqlSession.selectMap("com.bzsxt.mapper.FlowerMapper.selectAll", "fname");
Object value = selectMap.get("紫罗兰");
SqlSession三种参数传递的方式
//当参数类型是基本数据类型时:
Object selectOne = sqlSession.selectOne("com.bzsxt.mapper.FlowerMapper.selectOne", 10);
//当参数类型是某一个类时,可以传递多个参数:
Flower flower = new Flower();
flower.setPrice(5);
flower.setFname("夕颜");
Object selectOne1 = sqlSession.selectOne("com.bzsxt.mapper.FlowerMapper.selectOne2", flower);
System.out.println(selectOne1);
//当参数类型为map时,key值作为查询的?,value代表查询的具体值
Map<Object,Object> map = new HashMap<>();
map.put("a",10);
map.put("b","紫罗兰");
Object selectOne3 = sqlSession.selectOne("com.bzsxt.mapper.FlowerMapper.selectOne3", map);
System.out.println(selectOne3);
sqlSession.close();
三种参数传递对应的xml文件
<!--parameterType代表传入的参数类型-->
<select id="selectOne" resultType="flower" parameterType="int">
select * from flower where fid = #{param1}
</select>
<!--当参数类型是某一个类时,可以传递多个参数,#{fid}括号中填写的是数据库列名-->
<select id="selectOne2" resultType="flower" parameterType="flower">
select * from flower where price = #{price} and fname = #{fname}
</select>
<!--当参数类型为map集合时,#{}括号中填写的是key值,-->
<select id="selectOne3" resultType="flower" parameterType="map">
select * from flower where fid = #{a} and fname = #{b}
</select>
增删改的操作
//增加数据的操作insert
Flower flower = new Flower();
flower.setPrice(99);
flower.setFname("西蓝花");
flower.setVariety("美国");
int insert = sqlSession.insert("com.bzsxt.mapper.FlowerMapper.insert",flower);
//修改操作
Flower flower = new Flower();
flower.setPrice(3);
flower.setFname("大白菜");
flower.setFid(12);
int update = sqlSession.update("com.bzsxt.mapper.FlowerMapper.update", flower);
//删除操作delete
int delete = sqlSession.delete("com.bzsxt.mapper.FlowerMapper.delete", 13);
//需要提交事务,否则不会写到数据库
增删改对应的xml文件
<!--添加操作,目前只能一条的添加-->
<insert id="insert" parameterType="flower">
insert into flower values(default,#{fname},#{variety},#{price})
</insert>
<!--修改操作,parameterType="flower"是可以省略的,会根据写的格式自动设置参数返回值类型-->
<insert id="update" >
update flower set fname = #{fname},price = #{price} where fid = #{fid}
</insert>
<!--删除操作-->
<delete id="delete">
delete from flower where fid = #{param1}
</delete>
[1]mybatis中parameterType 这个属性可以省略的 但是 resultType 是不可以省略的
[2]#{} 相当于占位符 ${} 相当于拼接
提交的两种方式
[1]session.commit();
[2]SqlSession session = factory.openSession(true);