jdbc数据库操作

1,加载驱动---告诉驱动管理器我们将使用哪一个数据库的驱动包;

Class.forName(“com.mysql.jdbc.Driver”); 

2,操作JDBC API 完成数据库动作

2-1.获取联接

Connection con = null;

//url—统一资源定位符---样式:协议://ip地址:端口号/服务

con=DriverManager.getConnection

(“jdbc:mysql://127.0.0.1:3306/test134?useUnicode=ture&charactorEncoding=utf8&useSSL=false” , ”root ” , ”密码 ”);

//2-2.书写SQL语句—字符串拼接

String sql = “   SQL语句  ”;

//2-3.获取语句对象---Statement 对象—所有的DML语句,全//部执行executeUpdate()方法

Statement state = con.createStatement();

//2-4.执行语句对象。

int row = State.executeUpdate(sql);//返回的int代表影响了多少行。

 

//2-3.关闭连接

if(con !=null){

con.close();

}

}

 

 

JDBC的常见API

Connection :定义到数据库的联接,主要用于创建Statement对象。

Statement  :执行SQL语句的接口通过相关方法执行静态的SQL语句。

ResultSet  :接受某查询SQL查询语句所返回的结果集对象。

PreparedStatement  :预编译的SQL语句,结合参数可以大大提高JDBC的执行效率

语法:

PreparedStatement ps = con.preparedStatement(sql);

ps.setString(1,name);

ps.setString(2,pwd);

PreparedStatement rs =ps.executeQuery();

 

 

作用:1,可以完全替代Statement ,执行executeUpdate()和executeQuery();

2,解决SQL 注入问题;(字符串拼接)

3,        因为在执行之前就把语句和String SQL 绑定上(交给数据库预先编译了),执行时不能再改变的SQL的结构。

注意:

1、         ?是用来替代语句中的数据值的位置,不能替代跟结构有关的任何内容;

2、        使用?替代字符串值的时候,不能打上引号;

不要滥用预编译,预编译语句过多也会影响数据库性能,当数据值是由外部文本输入的时候才用

posted @ 2016-12-25 23:35  空城泪  阅读(122)  评论(0编辑  收藏  举报