1、mybatis的map.xml配置文件问题
(1)配置文件中使用>和<分别用>
和<
,否则会报错。
(2)#{}
和 ${}
的区别:使用#{}在解析成sql语句时会自动添加双引号,即#{}
中的内容一般表示字段的值,例如:
select * from user where user_id = #{userId}
如果userId的值是100,那么解析成的sql为:
select * from user where user_id = "111"
而${}
则不会添加双引号,例如:
select * from user where user_id = ${userId}
如果userId的值是100,那么解析成的sql为:
select * from user where user_id = 111
这种使用情况下就会报错,因此${}
常用来获取值之后进行后拼接,如进行模糊查询、order by等,即${}
常用来表示字段的名称。
此外${}
还会发生sql注入。
(3)调用mysql中的function。
<select id="validate" parameterType="String" resultType="int">
SELECT validate(#{createTime})
</select>
(4)多个参数传入时的解决方法。
(5)多表查询时的xml编写方法。
(6)resultType和resultMap的差别。
(7)collection和association的用法。
2、mysql数据库问题
(1)忘记密码
解决方法:
cmd中输入:net stop mysql //停掉mysql
在mysql的配置文件my.ini中添加 skip-grant-tables //绕开密码验证
cmd中输入:
mysql -u root -p
use mysql
update user set password=”newpassword” where user = “root”
删除my.ini中添加的skip-grant-tables
(2)开启远程连接
将root用户的host从localhost改为%
mysql -u root -p
mysql>use mysql;
mysql>select ‘host’ from user where user=’root’;
mysql>update user set host = ‘%’ where user =’root’;
mysql>flush privileges;
mysql>select ‘host’ from user where user=’root’;