*JDBC
全称 java data Base Connectivity//翻译 java 数据库链接 JDBC是一组以java编写的类和接口好处: 1.java开发人员完全不需要关心数据库的连接方式和实现手段 2.提高代码的可维护性,是一种组件化私想 3.代码的执行效率很高,速度很快 缺点 1.代码繁琐 2.维护代价高
*怎么操作
1.获取连接获取信息 下面的四个信息,当开发者在跟换数据库时候 需要改动,其他所有代码都不需要更改
定义字符串类型变量代表后面一串//包名 //本机地址 /端口 /数据库 String url=" jdbc:mysql://localhost:3306/j0304"; 用户名 String username="root"; 密码 String password="123456"; 驱动程序 String driver="com.mysql.jdbc.Driver";//驱动程序
*这是增删改使用的:
//创建一个对象 Student student=new Student(); student.setName("wangwu"); student.setAddress("shanghai"); Connection conn=null; PreparedStatement stmt =null; try { 2.加载驱动 //java的反射技术 Class.forName(driver); 3.创建数据库连接 conn = DriverManager.getConnection(url,username,password); 4.执行sql语句 //字符串拼接实现sql //缺点: //麻烦,难以维护 //不安全,完全无法避免sql注入 stmt = conn.prepareStatement("insert into student(name ,address)values (?,?)"); //把student 加入数据库 //z占位符 (?,?) //给上述sql语句de占位符赋值 stmt.setString(1,student.getName()); stmt.setString(2,student.getAddress()); //赠删改使用这个方法 int i=stmt.executeUpdate(); System.out.println(i); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }finally { //3 关闭资源 try { if (stmt != null) { stmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } }
查询使用
String url= "jdbc:mysql://localhost:3306/j0304"; String username="root"; String password="123456"; String driver="com.mysql.jdbc.Driver"; Connection conn=null; PreparedStatement stmt=null; ResultSet rs=null; try { Class.forName(driver); conn = DriverManager.getConnection(url,username,password); stmt = conn.prepareStatement("select *from Student"); rs = stmt.executeQuery(); while (rs.next()){ int sid=rs.getInt("sid"); System.out.println(sid); String name =rs.getString("name"); System.out.println(name); String address=rs.getString("address"); System.out.println(address); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }finally { try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (stmt != null) { stmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } }