发表于: 2017-10-17 17:08:25
1 708
今日完成
task17
1.学习mybatis模糊查询——返回多条记录
1.1直接新建的maven项目编写mabatis的程序,添加相应的jar包。
1.2配置user.xml文件。
<!-- 根据用户姓名模糊查询,可能返回多条信息
resultType:指定单条记录映射的java对象类型 ${ }:表示拼接sql串,将接收到参数的内容不加任何修饰拼接到sql中去
${value}:接收输入参数的内容,如果传入类型是简单类型,${}中必须是value; -->
<select id="findUserByName" parameterType="String" resultType="cn.mybatis.po.User">
select * from user where name like '%${name}%'
</select>
1.3编写主程序
//模糊查询,返回多条记录
public void testFindUserByName() throws IOException{
String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory SqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession SqlSession = SqlSessionFactory.openSession();
//list中的user与resultype中的单条对象一致
List<User> list = SqlSession.selectList("test.findUserByName", "小明");
System.out.println(list);
2.添加用户信息
2.1配置xml文件
<!-- 添加用户 parameterType:指定输入参数类型是pojo,
#{},中指定pojo的属性,接收pojo对象的属性值,mybatis通过OGNL获取对象的属性值 -->
<insert id="insertUser" parameterType="cn.mybatis.po.User">
insert into user(id,username,birthday,sex,address)
values(#{id},#{username},#{birthday},#{sex},#{address})
</insert>
2.2编写主程序
public void TestInsertUser() throws IOException{
String resource = "SqlMapConfig.xml";
InputStream inputStream =Resources.getResourceAsStream(resource);
SqlSessionFactory SqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession SqlSession = SqlSessionFactory.openSession();
User user = new User();
user.setUsername("王蒙");
user.setSex("1");
user.setBirthday(new Date());
user.setAddress("四川成都");
SqlSession.insert("test.insertUser", user);
SqlSession.commit();
SqlSession.close();
2.3测试
2.4主键值的返回
需求:user对象插入到数据库后,新记录的主键要通过user对象返回,通过user获取主键值。
解决思路:通过LAST_INSERT_ID()获取刚插入记录的自增主键值,在insert语句执行后,执行select LAST_INSERT_ID()就可以获取自增主键。
<!-- 添加用户 parameterType:指定输入参数类型是pojo,
#{},中指定pojo的属性,接收pojo对象的属性值,mybatis通过OGNL获取对象的属性值
selectKey:用于进行主键返回,定义了获取主键值的sql
order:设置selectKey中sql执行的顺序,相对于insert语句来说
keyProperty:将主键值设置到哪个属性
resultType:select LAST_INSERT_ID()的结果 类型 -->
<insert id="insertUser" parameterType="cn.mybatis.po.User">
<selectKey keyProperty="id" order="AFTER" resultType="int">
select last_insert_id()
</selectKey>
2.5测试主键返回
3.根据ID更新、删除用户
3.1配置xml
3.2主程序
明日计划
1.学习mybatis 原始DAO
2.mapper代理方式
3.动态SQL
遇到的问题
1.掉进了log4j的坑里了,配置的mybatis想做个单步单元测试一下,结果这个日志输出一直配置不好,放弃了,后面系统学。
收获
1.对mybatis的配置文件有了了解,对配置文件的关键字能很好的了解。
评论