JAVA第八次作业

(一)学习总结

1.用思维导图对本周的学习内容进行总结。

2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。

(1)使用executeUpdate()方法执行数据库查询操作,返回一个结果集对象。

conn = JDBCUtils.getConnection(1);
    String sql = "insert into pet (n,kind,number,age,price) values (?,?,?,?,?)";
    pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, pet.getNo());
    pstmt.setString(2,pet.getKind());
    pstmt.setString(3,pet.getNumber());
    pstmt.setString(4,pet.getAge());
    pstmt.setString(5,pet.getPrice());
    int num = pstmt.executeUpdate();

(2)使用executeQuery()方法执行数据库更新的SQL语句,如INSETR、UPDATE、DELETE等语句,返回更新的记录数。

conn = JDBCUtils.getConnection(1);
    stmt = conn.createStatement();
    String sql = "select n,kind,number,age,price from pet";
    rs = stmt.executeQuery(sql);

(3)PreparedStatement接口和Statement接口的不同:
执行动态SQL语句,通常通过PreparedStatement实例实现;执行数据定义和更新语句时,如CREATE、DELETE、UPDATE和INSERT等语句,使用Statement对象的executeUpdate方法执行

public boolean addPetItem(PetItem pet){
		Connection conn = null;
		PreparedStatement pstmt = null;	
		boolean result=false;
		try{
			conn = JDBCUtils.getConnection(1);
			String sql = "insert into pet (n,kind,number,age,price) values (?,?,?,?,?)";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, pet.getNo());
			pstmt.setString(2,pet.getKind());
			pstmt.setString(3,pet.getNumber());
			pstmt.setString(4,pet.getAge());
			pstmt.setString(5,pet.getPrice());
			int num = pstmt.executeUpdate();
			if(num > 0){
				result = true;
			}			
		}catch(Exception e ){
			e.printStackTrace();
		}finally{
			JDBCUtils.close(conn);
		}	
		return result;
	}

执行静态SQL语句时,通常通过Statement实例实现;执行数据查询语句时,如SELECT语句,使用Statement对象的executeQuery 方法执行。

public class AdminDao {
	//获取所有数据
	public ArrayList<PetItem> queryAllData(){
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		ArrayList<PetItem> list = new ArrayList<PetItem>();
		try{
			conn = JDBCUtils.getConnection(1);
			stmt = conn.createStatement();
			String sql = "select n,kind,number,age,price from pet";
			rs = stmt.executeQuery(sql);
			while(rs.next()){
				PetItem thisPet = new PetItem();
				thisPet.setNo(rs.getString("n"));
				thisPet.setKind(rs.getString("kind"));
				thisPet.setNumber(rs.getString("number"));
				thisPet.setAge(rs.getString("age"));
				thisPet.setPrice(rs.getString("price"));
				list.add(thisPet);				
			}
			return list;
		}catch(Exception e ){
			e.printStackTrace();
		}finally{
			JDBCUtils.close(conn);
		}
		return null;
	}

3.其他需要总结的内容。

(二)实验总结

实验内容:
使用JDBC实现实验七的宠物商店
完成实验内容,代码上传到码云,注意,务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。

设计思路:1.创建宠物商店数据库
2.JAVA程序中运用JDBC连接数据库。

问题:

1.连接数据库时,注意数据库名称,登录名

        /*
	 * 连接SQLSERVER数据库
	 */	
	private static Connection getConnectionSQL()
	{
		Connection conn=null;
		final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
		final String DBURL = "jdbc:sqlserver://localhost:1433;databaseName=pet";
		final String DBUSER = "root";
		final String DBPASS = "root";		
		try {
			Class.forName(DBDRIVER);
			conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
		} catch (ClassNotFoundException e) {				
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}		
		return conn;
	}	

(三)代码托管(务必链接到你的项目)
•码云commit历史截图

码云链接:http://git.oschina.net/hebau_cs15/Java-CS02wcy

posted @ 2017-05-18 15:05  烟火、木夏  阅读(144)  评论(0编辑  收藏  举报