物流公司 网站模板,朋友圈广告推广平台,余姚网站建设设计服务,好的宠物网站模板java程序操作数据库#xff08;JDBC#xff09;
JDBC:#xff08;Java DataBase Connectivity#xff09;#xff0c;就是使用Java语言操作关系型数据库的一套API。 本质#xff1a;
1.sun公司官方定义的一套操作所有关系型数据库的规范、即接口。
2.各个数据库厂商去…java程序操作数据库JDBC
JDBC:Java DataBase Connectivity就是使用Java语言操作关系型数据库的一套API。 本质
1.sun公司官方定义的一套操作所有关系型数据库的规范、即接口。
2.各个数据库厂商去实现这套接口提供数据库驱动jar包。
3.我们可以使用这套接口JDBC编程真正执行的代码是驱动jar包中的实现类。
01.入门程序
1.需求基于JDBC程序执行update语句update user set age 25 where id 1
2.步骤
准备工作创建一个maven项目引入依赖并准备数据库表user
代码实现编写JDBC程序操作数据库
public void testUpdate() throws Exception {//1.注册驱动Class.forName(com.mysql.jdbc.Driver);//2.获取数据库连接//标准的 JDBC URL 格式jdbc:mysql://hostname:port/databasenameString urljdbc:mysql://localhost:3306/web01;//连接时一定注意这些数据不能错String username root;String password 1234;Connection connection DriverManager.getConnection(url, username, password);//3.获取SQL语句执行对象Statement statement connection.createStatement();//4.执行SQL
int i statement.executeUpdate(update user set age 25 where id 1);//DMLSystem.out.println(SQL执行完毕影响的记录数为 i);//5.释放资源statement.close();connection.close();
}
02.JDBC-查询数据
1.需求基于JDBC执行如下select语句将查询结果封装到User对象中。
2.SQL:select * from user where username daoqiao and password 123456
3.ResultSet(结果集对象)ResultSet re statement.executeQuery()next():将光标从当前位置向前移动一行并判断当前行是否为有效行返回值为Boolean返回值为true表示有效行当前行有数据false为无效行当前行没有数据。getXxx()获取数据可以根据列的编号获取也可以根据列名获取推荐。
Testpublic void testSelect(){String URL jdbc:mysql://127.0.0.1:3306/web01;String USER root;String PASSWORD 1234;
Connection conn null;PreparedStatement stmt null;ResultSet rs null;//封装查询返回的结果try{//1.注册驱动Class.forName(com.mysql.cj.jdbc.Driver);//2.打开链接conn DriverManager.getConnection(URL,USER,PASSWORD);//3.执行查询String sql select id,username,password,name,age from user where username ? AND password ?;//预编译SQLstmt conn.prepareStatement(sql);stmt.setString(1,daqiao);stmt.setString(2,123456);rs stmt.executeQuery();//4.处理结果集while (rs.next()){User user new User(rs.getInt(id),rs.getString(username),rs.getString(password),rs.getString(name),rs.getInt(age));System.out.println(user);
}
} catch (Exception e) {e.printStackTrace();} finally {//5.关闭资源try{if(rs!null) rs.close();if(stmt!null) stmt.close();if (conn!null) conn.close();} catch (SQLException se){se.printStackTrace();}}
}
03.预编译SQL
优势一可以防止SQL注入更安全。
SQL注入通过控制输入来修改实现定义好的SQL语句以达到执行代码对服务器进行攻击的方法。
优势二性能更高。