JDBC基础编程总结

     在聊天室和论坛web开发中都会用到数据库来保存用户的相关信息, 所以JDBC就成了不可或缺的环节。下面对JDBC中对数据的简单增、删、改、查 进行一下总结。

     JDBC编程的第一步就是连接数据库。这里需要先导入一个sql包(附件中是连接mysql的文件包)。接下来就是在java代码中实现与数据库的连接。

public static Connection getConnection(){
		Connection con = null ;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/learning","root"," ");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return con;
	}

需要说明的是 Class.forName();中传入的是Driver类在包中的位置,具体参数应该有导入的jar来定。而在DriverManager.getConnection()中传入的三个参数分别是database的url、账号(如果数据库中只有一个默认用户,那么就是root) 和访问密码。其中URL中的learning是指使用的数据库(因为笔者尚在学习阶段,就直接取learning)。

     接下来就是对数据库中的数据进行访问了。主要会用到三个类:Statement (用于获取数据库中的数据)、PrepareStatement类(一般用于对数据库中的数据进行操作),ResultSet类(数据库返回数据的封装类)。

    获取数据库中数据代码:

private static String sql = "select * from tbl_user";//对数据库的操作指令,与mysql语句相同
	public static void showRes(){
		Connection con = getConnection();
		try {
			Statement sta  = con.createStatement();
			ResultSet res = sta.executeQuery(sql);//executeQuery会返回一个set集合,封装有数据库中的数据
			while (res.next()){
				System.out.print("id="+res.getInt("id"));
				System.out.print("  name="+res.getString("name"));
				System.out.print("  email="+res.getString("email"));
				System.out.println();
			}
			con.close();//关闭连接
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

 插入(添加)数据库中数据的方法:

private static String insert = "insert into tbl_user (name,password,email) "+
								"values (?,?,?)";
	/**
	 * 向数据库中插入一条语句的方法
	 * @param name 插入语句的名称
	 * @param password 插入语句的账号
	 * @param email 插入语句的Email
	 * @throws SQLException 
	 */
	public static void insertMes(Connection con,String name,String password,String email) throws SQLException{
			java.sql.PreparedStatement ps = con.prepareStatement(insert);
			ps.setString(1, name);
			ps.setString(2, password);
			ps.setString(3, email);
			
			int num = ps.executeUpdate();
			System.out.println("插入了"+num+" 条语句");
	}

 在sql指令insert中出现了‘?’。这是一个占位符,可以是sql语句更具有通用性。后面的ps.setString()代码便是对这三个占位符表示的数据进行设置(如果是int型的数据,这调用setInt方法,以此类推)。

  修改和删除数据的代码和插入类似,只需用修改sql语句就行了。

	private static String insertAddre = "insert into tbl_adress (id,city,country,user_id) "+
			"values (?,?,?,?)";
	/**
	 * 向地址表中添加一条记录
	 * @param city
	 * @param country
	 * @param user_id
	 * @throws SQLException 
	 */
	private static void insertAddre(Connection con,int id,String city,String country,String user_id) throws SQLException{
			java.sql.PreparedStatement ps = con.prepareStatement(insertAddre);
			ps.setInt(1, id);
			ps.setString(2, city);
			ps.setString(3, country);
			ps.setString(4, user_id);
			
			int num = ps.executeUpdate();
			System.out.println("插入了"+num+" 条语句");
	}
	
	private static String delete = "delete from tbl_user where name=?&&password=?";
	/**
	 * 删除数据库中的一天数 据
	 * @param name 删除数据的名称
	 * @param password 删除数据的密码
	 */
	private static void deleteMes(String name,String password){
		Connection con = getConnection();
		try {
			java.sql.PreparedStatement ps = con.prepareStatement(delete);
			ps.setString(1, name);
			ps.setString(2, password);
			
			int num = ps.executeUpdate();
			System.out.println("删除了"+num+" 条语句");
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

猜你喜欢

转载自729660130.iteye.com/blog/2237381