此课设的一系列问题集中在此地讨论
三个表的说明
之前在博客里我说一开始需要创建三个表,当然的确需要这三个表,但是我当时是因为需要写完代码后进行测试,所以我必须在用户信息一表里率先写入一个用户,以便运行测试。
同时我的订购信息表名为“sa订购信息”
这么做的原因是因为注册Register的代码里有这么一个代码段:
String sql="INSERT INTO 用户信息 VALUES('"+a+"','"+b+"')";
String sql2="CREATE TABLE "+a+"订购信息(车次号 varchar(10),始发地 varchar(20),目的地 varchar(20),出发时间 varchar(30),PRIMARY KEY(车次号),FOREIGN KEY(车次号)REFERENCES 车次信息(车次号))";
由这两句sql语句可以看出,每次我注册一个新的账号,都需要做两件事情。一,将用户信息输入用户信息表;二,创建一个新的表名为“XX订购信息”。所以说按理来说一开始不需要创建“sa订购信息表”和sa的相关用户信息,因为之后注册一次“sa”就完成了这些工作。我是利用sa来进行购票等测试。
另外,可以发现这几个表里的数据格式基本上都是varchar,这是因为很多数据都是可变大小的。例如,时间数据的长短很难定义,有的人的名字可能很长或者有的城市名字很长。我不想做太多的细分于是我讲这些通通设为varchar。当然还有一个原因,用char来表示数据更方便,因为我需要运用到很多获取表内字符的函数,还有字符拼接的函数,所以用char更方便。
有一点,在注册用户名和密码的时候字符长度必须不超过10位,是因为varchar(10)。
连接数据库
这应该是很多人都会遇到的问题,比如登录不了或者注册不了。连接数据库的相关代码段为:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=火车售票系统","sa","w12621058");
可以看到我利用的是sqlserver软件,第一行的代码是不变的。Mysql数据库的不是用这个哦。可以参考菜鸟教程:跳转
第二行getConnection函数中格式为
“jdbc:sqlserver://localhost:1433;DatabaseName=XXX”,“xx”,“xxxxxxx”
这行代码分为四个部分,任何一个部分出错都会导致数据库连接不上。
- jdbc包没有导入到库内
- localhost:1433没有配置
- 数据库名称输入错误
- 连接数据库服务器的登陆名及密码错误
jdbc包
可以去微软的官网下载sql server jdbc驱动包,百度搜索也能搜索得到。
下载完后解压缩,我们需要的是文件夹里的这个文件。
很明显这就是一个sql server 的jdbc包,我下载的版本里还有sqljdbc42.jar,这两个都能用。
接下来我们只需要导入这个包就可以了,打开eclipse,找到自己需要导入的项目,右键,选择Build Path,选择Add External Archives。然后选择刚刚下载的驱动包点击打开就可以了。
最后在Referenced Libraries里可以看到导入的包。
local host:1433
一般local host为127.0.0.1
测试127.0.0.1:1433配置成功的方法为:
- Ctrl+R,输入cmd,回车,跳出命令提示符框
- 输入telnet 127.0.0.1 1433,回车
- 如果跳出一个什么都没有的界面,即已配置好
如果测试失败,则按以下步骤配置
- 在开始菜单里找到sql server的文件夹
- 单击sql serrver配置管理器
- 选择sqlexpress的协议,并双击TCP/IP
- 将IP地址中的IP1和IP10的IP地址改为127.0.0.1,TCP端口改为1433,并启用这两个端口,如图
- 将最后一项IPALL里的TCP端口改为1433,然后点击确定按钮
- 全部保存完后,重新启动sqlserver服务器,记住不只是开关一下软件哦
- 重新按照上面的方法测试是否配置成功
连接数据库服务器的登陆名及密码
代码里连接数据库只能用sql server身份验证,即使用登录名及密码登陆
如果你的sql server默认为windows身份验证,请配置用户sa
- 在安全性→登录名里找到sa用户名,右键→属性
- 在跳出来的页面里输入你要配置的密码
- 在左边一栏里选择状态,确认启用登陆,并点击确定关闭窗口
- 右键服务器,选择属性
- 在左边一栏里找到安全性,确认启用sql server身份验证,然后点击确定按钮关闭窗口
当一切配置完后应该就可以用sa名登陆了
最后你的代码应为:
“jdbc:sqlserver://127.0.0.1:1433;DatabaseName=数据库名”,“sa”,“你的密码”
其他问题之后持续更新~