发表于: 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的配置文件有了了解,对配置文件的关键字能很好的了解。


返回列表 返回列表
评论

    分享到