jdbc java数据库连接(java database connection)
是一套标准的接口,由数据库厂商实现具体的操作。
mysql: mysq-conn.jar
oracle: oracle-java-conn.jar
db2: db2-java-conn.jar
1.jdbc连接数据库
https://mp.csdn.net/console/editor/html/80732459
//传统jdbc连接
public Map getConnection(){
Connection connection=null;
String url="jdbc:mysql://127.0.0.1:3306/test";
String user="root";
String password="password";
Map map=new HashMap();
try {
//1.加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//2.创建 数据库连接
connection = DriverManager.getConnection(url, user, password);
//3.创建发送对象
String sql="SELECT * FROM table";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//4.返回结果集
ResultSet resultSet = preparedStatement.getResultSet();
//获取结果集中的数据
while (resultSet.next()){
System.out.println(resultSet.next());
map.put(resultSet.getFetchSize(),resultSet.next());
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
//5.关闭连接
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return map;
}
2.注册驱动
第二种方式,是通过反射获取到驱动类,加载到jdbc中的。
3.创建连接对象
4.获取执行sql的对象
5.事务管理
6.statement执行sql的对象
7.preparestatement
表示预编译的sql语句对象:
这个对象的做法是首先编写一个带有占位符?的sql语句,发往数据库编译,然后再将参数传入,让数据库帮我们查询。
运行原理
优点:
a.sql注入问题
通过向sql语句中的参数位置传递一些特殊的字符,来改变SQL的原有意思。
防止sql注入的根本:预编译将参数中特殊的字符进行了转移。