(一)学习总结
1.思维导图
2.执行executeUpdate()方法和executeQuery()方法中使用动态参数时,使用PreparedStatement接口而不使用Statement接口的原因
PreparedStatement接口
PreparedStatement
是Statement
的子接口,属于预处理操作executeUpdate()
方法执行设置的预处理SQL语句executeQuery()
方法执行数据库查询操作,返回ResultSet
具体事例
Scanner input = new Scanner(System.in);
System.out.println("请输入学号:");
String no = input.next();
System.out.println("请输入姓名:");
String name = input.next();
.......//加载驱动程序
try {
conn = DriverManager.getConnection(DBURL,DBUSER, DBPASS);
System.out.println("数据库连接成功");
String sqlStr = "insert into student(Sno,Sname) values(?,?)";
PreparedStatement pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1,no); pstmt.setString(2,name);
int len = pstmt.executeUpdate();
System.out.println("更新了"+len+"条记录");
} catch (SQLException e) {
System.out.println("数据库连接失败"); e.printStackTrace();
}
Statement接口
executeUpdate(String sql)
方法执行数据库的SQL语句,返回更新记录数executeQuery(String sql)
方法执行数据库查询操作,返回一个结果集对象
具体实例
public boolean queryAllData(String name, String password) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
boolean flag = false;
ArrayList<LoginCheck> list = new ArrayList<LoginCheck>();
try {
conn = JDBCUtils.getConnectionSQL();
stmt = conn.createStatement();
String sql = "select name,password from SCHOOL where name = 'GHJ' and password = 'WELL,1234'";
rs = stmt.executeQuery(sql);
while (rs.next()) {
LoginCheck thisUser = new LoginCheck();
thisUser.setName(rs.getString("name"));
thisUser.setPassword(rs.getString("password"));
list.add(thisUser);
if (name.equals(thisUser.getName())
&& password.equals(thisUser.getPassword())) {
flag = true;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.close(conn);
}
return flag;
}
3.其他需要总结的内容。
- Eclipse连接sql server 2008的步骤
- 先登录SQL 2008,选择Windows身份验证,点击连接
- 右键数据库服务器,右键-属性-安全性,将登陆改为windows和sqlserver混合登陆。点击数据库右键属性,安全性里面选择混合登陆
- 点击安全性进入登录名,右键-新建登录名
- 在选择页一栏,常规一项,填写登录名、选择SQL Serve身份验证、填写密码、去除强制密码过期
- 权限设置:在服务器角色一项,默认的是选择public,相当于游客,只有登录数据库权限。选择sysadmin,给角色管理员权限。点击确定
- 测试连接,数据库服务器右键-注册,在身份验证里选择Sql Sever身份验证,填写用户名和密码,也就是刚才创建的用户名(root)和密码(root),点击测试
- 右键连接,填写用户名和密码,点击连接,如果多出一个数据库服务器,表明连接成功
(二)实验总结
1.使用JDBC实现实验七的宠物商店
程序设计思路
- 第一步,创建
WelcomeFrame
界面,点进入系统按钮进入宠物商店管理界面 - 第二步,创建
PetItem
宠物类存放宠物属性,GUITools
类对于界面组件显示的方法 - 第三步,
JDBCUtils
类负责数据库连接和关闭操作以及取得一个数据库的连接对象 - 第四步,
AdminDao
类是管理员数据访问类,AdminService
类是对AdminDao
类中的方法进行判断,AdminDialog
类是对宠物商店管理界面的按钮组件功能进行实现,MainApp
是运行项目类
- 第一步,创建
完成的界面如下
SQLServer中相应的表格如下
类图结构
问题
- 连接不上数据库,
eclipse
这边更新的数据,sql server
相应的表内的数据不更新
- 连接不上数据库,
原因
- 改了数据库名字,没有及时更新
JDBCUtils
类中没有及时更新database
名字
- 改了数据库名字,没有及时更新
问题2
- 开始发现点修改数据功能,程序无法运行,能运行后,修改数据时,又发现修改后的数据变化不对,价格,种类都变成了数量,
原因
AdminDao
类中添加数据中的方法写错啦,价格和种类都是调用的getNumber
方法
问题
sql server
里创建的数据库内容看不到
原因
- 应该提前打开
sql server
再去eclipse
里打开导入的数据库,就可以看到创建的数据库内容
- 应该提前打开
(三)代码托管
代码链接
https://git.oschina.net/hebau_cs15/hebau-cs01GHJ.gi