JAVA数据库连接-JDBC

来源:互联网 发布:流星 网络骑士 编辑:程序博客网 时间:2024/06/07 17:17

       JDBC(Java Data BaseConnectivity ,java数据库连接)是一种用于执行SQL语句的JAVA API,,它由一组用Java语言编写的类和接口组成。

       有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。我们通过JDBC统一操作SyBase数据库,Oracle数据库,Informix数据库,我们不必为程序换了数据库而重新编写程序,符合JAVA语言“编写一次,处处运行的”优势。

         JDBC只做三件事:与数据库建立连接、发送操作数据库的语句,并处理结果。

与数据库建立连接有两种方式

  1. Jdbc.properties文件

 

 

代码中获得配置文件中的信息:

privatestatic final String DRIVERCLASS=ResourceBundle.getBundle("jdbc").getString("DRIVERCLASS");privatestatic final String URL =ResourceBundle.getBundle("jdbc").getString("URL");privatestatic final String USERNAME=ResourceBundle.getBundle("jdbc").getString("USERNAME");privatestatic final String PASSWORD=ResourceBundle.getBundle("jdbc").getString("PASSWORD"); //注册Class.forName(DRIVERCLASS);// 获取连接Connectioncon = DriverManager.getConnection(URL, USERNAME, PASSWORD);

  1. 代码

//注册成功DriverManager.registerDriver(newDriver());//获取数据连接Stringurl = "jdbc:mysql://localhost:3306/day17";Stringusername = "root";Stringpassword = "mysql";Connectioncon = DriverManager.getConnection(url, username, password);


发送操作数据库的语句

  1. sql注入的弊端

//通过连接对象获取一个可以操作sql的statement对象Statementst = con.createStatement(); //执行时sql语句String sql = "select * from userwhereusername='"+ username + "' and password='" + password +"'"ResultSet rs = st.executeQuery(sql);//执行sql语句

  1. 成功避免了sql注入的弊端

Stringsql = "select * from user where username=? and password=?";//获取操作sql语句对象PreparedStatementpst  = con.prepareStatement(sql);//将sql语句进行预加载ResultSet rs =pst.executeQuery();//执行sql语句//需要对占位符进行传参pst.setString(1,username);// 对其中的占位符进行填充pst.setString(2,password);// 对其中的占位符进行填充

对结果的处理

增删改的结果都是影响的行数,通过判断行数的大小,判断执行是否成功。

查询的结果集是ResultSet

//操作结果集if(rs.next()) {Useruser = new User();user.setId(rs.getInt("id"));user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));returnuser;}


    在学习JDBC的过程中,我一直想起ODBC,两者虽然面向的IDE不同,但原理都相同。ODBC可以封装成SQLHelper,JDBC应该也可以。

0 0