发表于: 2018-02-01 22:12:53

1 555


今天完 成的事情:  按照昨天的例子,自己实现了用mybatis连接数据库。现在可以对数据库进行一些简单的查询操作。

明天的计划:  

继续添加增删查改的其他内容。

遇到的问题: 

Dao接口中的方法没有定义参数;mybatis配置文件中的格式不熟悉引起的一些问题;查询的时候有字符串模糊查询;查询到对象时的打印问题,用了一个toString()的方法打印了对象的文本格式。

A.

在写好get.ResourcesAsReader(resource)后有提示”unhandled exception:java.io.IOException”时选择”add’catch’clause”时自动添加的是catch(IOException e)。要修改成catch(Exception e)。改不改的效果是一样的.

B.     

这里的错误是没有在Dao接口中方法没有定义参数,其实看到红色的波浪线就可以直到了,但是基础知识不足,所以没有察觉出来。

 C.

这里错误提示“Unknown DataSource property:user”,原因是在mybatis的配置文件中的把数据库用户名(username)写成了user。

D.

pom.xml文件中mysql驱动version写的是release,但是没有加载,后来明确的数字后才可以自动加载(改成了5.1.43)。但是mybatis的version也是release就没有问题。

E.

在mybatis的配置文件中,mysql后面没有写”:”。

F.

可以运行后有两个结果出不来。第一行命令是打印对象user,这里的表达方式没办法把整个对象的属性显示出来。

User user = userMapper.findUserById(1);
System.
out.println(user)


String password = userMapper.findPasswordByName(
"iiiii");
System.
out.println(password); 

运行结果:

com.ptteng.pojo.User@72d818d1

null

所以在User.class中添加下面的方法。用于返回对象的字符串表示,这个字符串是以文本方式表示这个对象。

@Override
public String toString() {
   
return "user-->id=" + id +",name=" + name +",password=" + password +"。";
}

并把上面打印对象的改成下面的user.toString().就可以成功打印出依据id查询到的对象的全部信息。

User user = userMapper.findUserById(1);
System.
out.println(user.toString());

 

第二个是用字符串做参数来查询字符串,得不到结果原因是出在参数类型上了。根据《深入理解Mapper映射文件》(http://blog.csdn.net/baidu_36697353/article/details/68670277)

WHERE id = #{id})改为(WHERE name like '%${value}%')这样就可以实现用字符串搜索字符串了。这里的用法是模糊查询,所以参数字符串可以不用很精确。

<select id="findPasswordByName" parameterType="String" resultType="java.lang.String">
   SELECT PASSWORD FROM t_user WHERE name like '%${value}%'
</select>

还有在运行过程中一直提示SSL(Secure Sockets Layer 安全套接层)协议.这个现在先不查。

收获:  

1.现在对mybatis框架连接数据库的过程比较熟悉了。

2.处理了一些错误提示。

3.了解一些mybatis中的查询方式。





返回列表 返回列表
评论

    分享到