JDBC连接数据库
来源:互联网 发布:了不起的盖茨比 知乎 编辑:程序博客网 时间:2024/06/04 01:31
摘要
总体来说,jdbc连接数据库分为7步:
1、加载驱动
2、创建连接
3、创建PreparedStatement
4、执行PreparedStatement,获取ResultSet
5、关闭ResultSet
6、关闭Statement
7、关闭连接
步骤
1、加载驱动
提供mysql和oracle的驱动加载方式
Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动Class.forName("oracle.jdbc.driver.OracleDriver");// 动态加载oracle驱动
2、创建连接
String url = "jdbc:mysql://localhost:3306/dbname";String username = "root";String password = "pwd";Connection con = DriverManager.getConnection(url, username, password);
也可以调用getConnection(url)方法
url = "jdbc:mysql://localhost:3306/dbname?user=root&password=pwd&characterEncoding=UTF8";conn = DriverManager.getConnection(url);
3、创建PreparedStatement / Statement
ps=conn.prepareStatement("insert into User(name,age,email) values (?,?,?)");ps.setString(1, "by");ps.setString(2, "123");ps.setString(3, "456@qq.com");
4、执行PreparedStatement,获取ResultSet
row = ps.executeUpdate(); //执行update语句rs = ps.executeQuery(); //执行select语句
5、关闭ResultSet
rs.close();
6、关闭Statement
st.close();
7、关闭连接
conn.close();
代码实现
Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; // 出现乱码的情况可以在后面加上characterEncoding=utf-8 String url = "jdbc:mysql://localhost:3306/dbname"; String username = "root"; String password = "pwd"; try { // 反射机制来动态加载mysql驱动 Class.forName("com.mysql.jdbc.Driver"); System.out.println("成功加载MySQL驱动程序"); // 一个Connection代表一个数据库连接 // 也可以 url = // "jdbc:mysql://localhost:3306/dbname?user=root&password=pwd&characterEncoding=UTF8" // 然后用方法 conn = DriverManager.getConnection(url); 获取连接 conn = DriverManager.getConnection(url, username, password); // PreparedStatement相比较Statement来说可以防止SQL注入 // 方法executeUpdate可以实现插入,更新和删除等 ; executeQuery可以实现查询 // 查询数据 String selectSql = "select * from user where name = ?"; ps = conn.prepareStatement(selectSql); ps.setString(1, "by"); rs = ps.executeQuery(); while (rs.next()) { // 处理结果集 System.out.println("user[name] : " + rs.getString("name")); System.out.println("user[age] : " + rs.getInt("age")); System.out.println("user[email] : " + rs.getString("email")); } // 插入数据 String insertSql = "insert into user(name,age,email) values (?,?,?)"; ps = conn.prepareStatement(insertSql); ps.setString(1, "by"); ps.setString(2, "123"); ps.setString(3, "456@qq.com"); int insertRow = ps.executeUpdate(); if (insertRow > 0) { System.out.println("Insert Successful!"); } // 删除数据 String delSql = "delete from user where name=?"; ps = conn.prepareStatement(delSql); ps.setString(1, "by"); int delRow = ps.executeUpdate(); if (delRow > 0) { System.out.println("Delete Successful!"); } } catch (Exception e) { System.out.println("MySQL操作错误"); e.printStackTrace(); } finally { //关闭连接 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn = null; } }
0 0
- jdbc入门、jdbc连接数据库
- jdbc-odbc连接数据库
- JDBC连接MySQL数据库
- JDBC连接MySQL数据库
- JDBC之连接数据库
- [JDBC] 如何连接数据库
- JDBC连接数据库技巧
- jdbc连接数据库
- JDBC连接常用数据库
- jdbc连接数据库
- JDBC连接SqlServer2005数据库
- jdbc连接各种数据库
- JDBC连接各种数据库
- JDBC连接数据库参考
- JDBC连接数据库
- JDBC连接数据库小结
- JDBC连接MYSQL数据库
- Jdbc 连接数据库 实例
- 浅谈为什么border-radius设置成50%~100%都能画圆
- 五大常用算法(四)回溯算法
- 内存越界
- 关于Eclipse集成jetty插件与maven插件
- 多线程面试题
- JDBC连接数据库
- 腾讯面试(三)
- 深度数据包检测(DPI)
- mysql view
- Android Studio 使用Vuforia(高通)开发AR
- codevs 1068 乌龟棋(记忆化搜索)
- C#实现json对象数据批量插入数据库
- elasticsearch api中的Buckets(桶)及Metrics(指标)
- 山东大学项目实训——5月12日