数据库与java的连接
jdbc: java database connection,也就是java的数据库连接。
作⽤:完成数据库数据和内存数据的交互。
为了屏蔽不同数据库的差异,在内存和各种数据库之间建⽴了⼀个接⼝标准。每个⼚商按照接⼝的标准来实现接⼝类。
jdbc 是java连接数据库的⼀套标准。该标准中定义了⼀系列的接⼝,由数据库⼚商根据⾃⾝数据库的特点提供实现类,由开发者调⽤。开发者根据接⼝调⽤⽅法,可以屏蔽不同数据库⼚商的差异。这样,⽆论连接什么数据库都是⼀套API。
jdbc 操作步骤:流操作步骤:
①加载驱动,建⽴连接 1、建⽴流
java的jdbc连接数据库②执⾏SQL语句 2、操作流
③关闭连接 3、关闭
SQL注⼊:在执⾏sql语句时,由于sql语句的值是由⽤户输⼊的,所以是以变量接收的,如果以拼接字符串⽅式来执⾏SQL语句,⼀旦数据中有⾮法字符或者有关键字时,会导致语法错误,或者执⾏结果不正确的情况,这称为SQL注⼊。
Statement和PreparedStatement的区别:
Statement是PreparedStatement 的⽗接⼝。在执⾏SQL语句时,只能以拼接字符串⽅式,拼接值。会引起SQL注⼊。⽽且效率低。PreparedStatement,是预编译SQL语句执⾏对象,⽀持占位符⽅式,⽆论数据是什么值,都当字符串处理,不会引起SQL注⼊。⽽且效率⾼。
java和数据库的连接语法:
1 @Override
2public void add(ManBean bean) {
3
4//连接对象
5 Connection con=null;
6//SQL语句执⾏对象
7 PreparedStatement ps=null;
8// 加载驱动
9try {
10 Class.forName("sql.Driver");
11//建⽴连接,localhost为主机IP地址(本机),3306为mysql的端⼝号,
12//testdb为数据库的库名,characterEncoding=utf-8为字节编码集
13//root为mysql的登录名,123456为mysql的登录密码
14 Connection("jdbc:mysql://localhost:3306/testdb?characterEncoding=utf-8",
15"root","123456");
16 System.out.println(con);
17
18//执⾏SQL语句,?为占位符
19 ps=con.prepareStatement("insert into t_man(manName,birthday,money) values(?,?,?)");
20//填充占位符
21 ps.setString(1, Name());
22 ps.setDate(2, Birthday());
23 ps.setInt(3, Money());
24//更新数据库
25 ps.executeUpdate();
26 } catch (Exception e) {
27 e.printStackTrace();
28 }
29finally{//关闭连接
30try {
31 ps.close();
32 con.close();
33 } catch (Exception e) {
34// TODO Auto-generated catch block
35 e.printStackTrace();
36 }
37 }
38 }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论