Java web给Android写接口时用SQL Sever2014所遇到的大坑
之前写接口用的数据库是MySQL,突然改用SQL Sever2014后,不仅驱动、地址要变:
// 这是链接mysql的 mysql 中,表名是user // PRivate static String USER = "root"; // private static String PASSWord = "root"; // private static String DB_URL = "jdbc:mysql://localhost:3306/Legend"; // private static String DB_DRIVER = "com.mysql.jdbc.Driver"; // private static String SQL = ""; // 这是链接SQL Sever的 SQL Sever中表名是userInfo private static String DB_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static String DB_URL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Legend"; private static String USER = "sa"; private static String PASSWORD = "abc123456789"; jar包也要变:
这些都不是坑,坑的地方在下面:
换了SQL Sever后用户名和密码都对,但是走了另一个方法,如图:
苦思冥想找不到答案,最终我去看数据库,二者是否有什么区别,突然明白了:
我在SQL Sever中字段用的是varchar(50),先不论好不好,我说重点,我输入用户名和密码都是admin,占了5个字符,那么剩下的45个字符怎么办???
它全是用空格代替了,于是乎,输入的密码是admin,搜到的密码是admin++++++(45个空格)。
所以在java代码中千万别忘了trim()去空格的方法。