将近一个星期时间,利用本学期所学习的Java和Sql Server知识完成了一个简单的注册登录系统并且能够实现商品的浏览和管理,然而网上大多数是Java连接MySQL和Oracle数据库,所以其中艰辛自然不多说。在此,仅仅是总结遇到的主要难点,欢迎看此内容的人给我指正错误,同时也给需要这方面内容的同学一个参考。

首先,第一点是连接Sql Server数据库(我使用的是2012版本):
String URL="jdbc:sqlserver://localhost:1433;DatabaseName=shopping";
String USER="sa";
String PASSWORD="123456";
Connection conn = null;		
//连接数据库
conn = DriverManager.getConnection(URL, USER, PASSWORD);

URL内容是本地数据库的路径,USER和PASSWORD是数据库的用户名和密码,值得注意的是,Sql Server数据库的登陆需使用Sql Server身份验证的方式登陆,‘1433’是本地Sql Server数据库的默认端口。这样实现了Java和Sql Server之间的连接,接下来就可以在Java中实现对数据库进行操作了。当然,我们还得用到jdbcsql4.jar包。

接下来第二点,如何在Java中操作数据库中的表或者视图呢?
Statement stmt = conn.createStatement();
ResultSet rt = stmt.executeQuery("select * from goods_view");
info = new Object[b][6];
b = 0;
while(rt.next()){
			info[b][0] = rt.getString("商品编号");
			info[b][1] = rt.getString("商品名称");
			info[b][2] = rt.getString("单价");
			info[b][3] = rt.getString("类别名称");
			info[b][4] = rt.getString("库存");
			info[b][5] = rt.getString("店铺名称");
			b++;
		}


Statement:Statement接口提供了三种对执行SQL语句的方法:executeQuery、executeUpdate 和execute。使用哪种方法取决于sql的语句所产生的内容;

ResultSet:结果集(ResultSet)是数据中查询结果返回的一种对象,它不仅有存储的功能,还可以对所存储数据进行操作,如上述代码中getString(String s)就是获取s所对应的String数据,还可以获取int数据类型的getInt等;当然,也可以通过getArray(int name/String name)通过这个方法获得当前行中,name所在列的元素组成的对象的数组。

最后第三点,如何在Java中操作数据库中的存储过程呢?


CallableStatement c=conn.prepareCall("{call goods_change(?,?,?,?,?,?,?)}");
		c.setString(1, text1.getText().toString());
		c.setString(2, text2.getText().toString());
		c.setString(3, text3.getText().toString());
		c.setString(4, text4.getText().toString());
		c.setString(5, text5.getText().toString());
		c.setString(6, text6.getText().toString());
		c.registerOutParameter(7,java.sql.Types.INTEGER);
		c.execute();
        int a = c.getInt(7);
        return a;

CallabeleStatement:

CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement 对象所含的内容。这种调用是用一种换码语法来写的,有两种形式:一种形式带结果参数,另一种形式不带结果参数。结果参数是一种输出 (OUT) 参数,是已储存过程的返回值。两种形式都可带有数量可变的输入(IN 参数)、输出(OUT 参数)或输入和输出(INOUT 参数)的参数。问号将用作参数的占位符,即存代该表储过程中所有输入参数和输出参数,call后面是该存储过程的名称,上述代码1-7则相应的代表存储过程中的七个参数。



在这里就不展示写的很low很low的Java界面,总之,在这里整理到一起,对自己的帮助还是显而易见的。