第一种:
(1)加载驱动: Class.forName(“com.mysql.jdbc.Driver”);
(2)获取连接:
Connection connection=DriverManager.getConnection(
“jdbc:mysql://localhost:3306/数据库名称?useSSL=false”,
“root”,
“数据库密码”);
(3)创建处理对象:
Statement statement=connection.createStatement();
(4)编写sql语句:String sql;
(5)执行sql语句:
statement.executeQuery(sql); //查询
starement.executeUpdate(sql); //增,删,改
(6)关闭处理对象: statement.close();
(7)关闭连接: connection.close();
第二种:
(1)创建一个 DataSource 数据源
DataSource dataSource = new MysqlDataSource();
MysqlDataSource tmpDataSource = (MysqlDataSource) dataSource;
tmpDataSource.setURL("jdbc:mysql://127.0.0.1:3306/java_image_server?characterEncoding=utf8&useSSL=true");
tmpDataSource.setUser(“root");
tmpDataSource.setPassword("123");
return dataSource;
(2)获取连接:
Connection connection=dataSource. getConnection() ;
(3)编写sql语句:String sql;
(4)创建对象:
PreparedStatement statement=connection. prepareStatement( sql );
(5)执行sql语句:
statement.executeQuery(); //查询
starement.executeUpdate(); //增,删,改
(5)关闭处理对象: statement.close();
(6)关闭连接: connection.close();
1.PreparedStatement 是 java.sql 包下面的一个接口,通过调用connection.preparedStatement(sql) 方法可以获得 PreparedStatment 对象。数据库系统会对 sql 语句进行预编译处理(如果JDBC驱动支持的话),之后都不会再去进行编译。 预处理语句被预先编译好,这条预编译的 sql 查询语句能在将来的查询中重用,这样一来,它比 Statement 对象生成的查询速度更快。
2.使用 Statement 还是 PreparedStatement 对象
JDBC驱动的最佳化是基于使用的是什么功能.,选择 PreparedStatement 还是 Statement 取决于你要怎么使用它们.。对于只执行一次的 SQL 语句选择Statement 是最好的. 相反, 如果 SQL 语句被多次执行选用PreparedStatement 则是最好的.
3.PreparedStatement 对象可以防止 sql 注入,而 Statement 不能防止 sql 注入。
什么是 SQL 注入呢?
SQL 注入即是指web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web 应用程序中事先定义好的查询语句的结尾上添加额外的SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
4.PreparedStatement 继承自 Statement, 两个都是接口
区别:PreparedStatement 可以使用占位符,是预编译的,批处理比Statement 效率高
5.Statement执行不带参数的简单SQL语句,并返回它所生成结果的对象,每次执行SQL语句时,数据库都要编译该sql语句。PreparedStatement用来执行带参数的预编译的SQL语句
关于 PreparedStatement 接口,需要重点记住的是: