Jdbc連線資料庫的兩種方式
阿新 • • 發佈:2019-01-27
jdbc連結資料庫
1.使用Statement,建立Statement物件,但是這種不安全,可以通過在資料庫密碼中新增or語句來使登入強行成功。
/* * 有點不安全的一種 * */ package com.exp2; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class Test1 { public static void main(String[] args) throws Exception { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://10.21.1.10:3306/oracle?useUnicode=true&characterEncoding=UTF-8"; String user = "root"; String pwd = "zhang"; Connection conn = DriverManager.getConnection(url, user, pwd); Statement stmt = conn.createStatement(); String sql = "select * from user"; ResultSet rs = stmt.executeQuery(sql); List<User> list = new ArrayList<User>(); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); String money = rs.getString("money"); String dept = rs.getString("dept"); User u = new User(id, name, age, money, dept); list.add(u); } System.out.println(list); } }
2.使用PreparedStatement,建立PreparedStatement物件,但是這種相對安全,必須通過正確的賬號密碼操作。
/* * 另一種 * */ package com.exp1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Test { public static void main(String[] args) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://10.21.1.10:3306/oracle?useUnicode=true&characterEncoding=UTF-8"; String user = "root"; String pwd = "zhang"; Connection conn = DriverManager.getConnection(url, user, pwd); String sql = "select *from student where score > ? and age < ?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setDouble(1, 60); ps.setInt(2, 20); ResultSet rs = ps.executeQuery(); while(rs.next()){ System.out.println(rs.getString("name")+"---"+rs.getInt("age")+"---"+rs.getDouble("score")); } rs.close(); ps.close(); conn.close(); } }
可能寫的不是太好,希望看到的大佬給點建議,萌新對比採納。