JAVA数据库连接-JDBC

       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 user
whereusername='"+ 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
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值