JDBC

一、介绍JDBC

 JDBC(Java DataBase Connectivity,  Java数据库连接) ,是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。有了JDBC,程序员只需用JDBC API写一个程序,就可访问所有数据库。

JDBC访问数据库编码步骤:

1:加载一个Driver驱动

2:创建数据库连接(Connection)

3:创建SQL命令发送器Statement

4:通过Statement发送SQL命令并得到结果

5:处理结果(select语句)

6:关闭数据库资源ResultSet  Statement  Connection

创建模块/项目 导入jar包

二、sql注入

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

以模拟登录为例,当输入了精心设计的用户名密码后,即使是错误的,也能登录成功。

原因是:SQL语句是字符串拼接的。SQL语句中拼接的内容破坏了SQL语句原有的判断逻辑

如何解决呢?使用PreparedStatement预编译语句对象就可以解决掉。

三、常用SQL语句

增加:insert into 表名(列名,列名,列名) values(?,?,?)

如果要添加全部列的内容,表名后可以不写列名

删除:delete from 表名 where 列名=值 or/and 列名=值

修改:update 表名 set 列名=新值,列名=新值 where 列名=值 or/and 列名=值

查询:1、查询全部列:select * from 表 

           2、查询某个数据:select 列名,列名 from 表 where 列名=值 or/and 列名=值


四、ResultSet

ResultSet用来封装实体,不方便数据的传递和存储,所以数据应放入集合里

例子:利用ResultSet传数据 

//6.处理结果集:
ResultSet rs=ps.executeQuery();
while(rs.next()){
    System.out.print(rs.getInt(1)+"\t");
    System.out.print(rs.getString(2)+"\t");
    System.out.print(rs.getInt(3)+"\t");
    System.out.print(rs.getString(4)+"\t");
    System.out.println(rs.getString(5));*/
    System.out.print(rs.getInt("stuid")+"\t");
    System.out.print(rs.getString("sname")+"\t");
    System.out.print(rs.getInt(3)+"\t");
    System.out.print(rs.getString(4)+"\t");
    System.out.println(rs.getString(5));
}

 利用集合:

//6.处理结果集:
ArrayList<Student> list=new ArrayList<>();
while(rs.next()){
    Student stu=new Student();
    stu.setAge(rs.getInt("age"));
    stu.setSex(rs.getString("sex"));
    stu.setStuid(rs.getInt("stuid"));
    stu.setPhone(rs.getString("phone"));
    stu.setSname(rs.getString("sname"));
    list.add(stu);
}

五、写【实体类】时对实体类的要求

在实体类中,该类的对象主要用处是存储从数据库中查询出来的数据,除此之外,该类没有任何的其他功能。

对实体类的要求:

1、类名和表名保持一致,最好能见名知意

2、属性个数和数据库的表的列数保持一致

3、属性的数据类型和列的数据类型保持一致

4、属性名和数据库表格的列名保持一致

5、所有属性必须是私有的(出于安全考虑)

6、实体类的属性推荐写成包装类

7、日期类型推荐写成java.util.Date

8、所有属性都要有get和set方法

9、必须具备无参构造方法

10、实体类应实现序列化接口(mybatis缓存  分布式需要)

11、实体类中其他构造方法可选

六、编写项目流程

最终项目结构:

1.创建java项目

2.创建src并列目录lib,导入jar包,同时加载到项目里来---右键--add as lib

3.创建实体类:---存储数据,利于传递

4.优化jdbc代码----提取工具类!BaseDao

5.参照Dao模型:

Dao----直接接触数据的代码层====Dao层

  ---Dao层规定了,我们对数据库该有哪些行为操作!

创建接口、创建实现类

6、创建业务层

创建业务层接口、业务层实现类

7、创建测试类

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值