Java EE之JDBC

1.获取数据库连接对象的过程

方法原型是:public Connection getConnection();

(1)创建一个Driver的实现类的对象。其中Driver是Java提供的接口,实现类是由具体的数据库厂商提供。

(2)提供数据库连接的信息:数据库的URL,用户名和密码。通过Properties类的对象添加用户名和密码。

        数据库URL的格式:jdbc:mysql//localhost:3306/databaseName

(3)调用Driver对象的connet(URL,info)获取connection对象。

2.获取数据库连接对象的过程改进版:

问题:通过1的过程可以获取数据库连接对象,但是其中用户名和密码和数据库的URL是变化的,如果数据库连接变化,三者都要改变,这样的代码不通用。

解决方法:将变化的数据信息:数据库驱动名称,数据库的URL,用户名和密码放入到文件中,文件中的写法:数据库的URL=数据库URL的名称,一般是一行一条信息(不是必须的)。

方法原型是:public Connection getConnection();

(1)在类路径下新建一个文件,使用getClass().getClassLoader().getResourceAsStream("文件名")获取InputStream类的对象,通过Properties的load(InputStream in)方法加载InputStream对象,方法通过该对象的getProperty("属性名")得到属性值。

(2)通过反射Class.forName("驱动名称").newInstance()获取Driver对象,这个过程注意强转;

(3)调用Driver对象的connect(URL,info)获取connection对象。

3.获取数据库连接对象的第三种方法(一般使用这种方法)

(1)准备数据库连接信息;

(2)加载驱动程序。class.forName(数据库驱动名称);

(3)通过DriverManager.getConnection(jdbcUrl,username,password);

4.执行SQL更新语句方法的过程:

首先:Connection connection = null; Statment statment = null;

(1)获取数据库连接对象。

(2)写SQL语句

(3)获取Statement对象:通过数据库连接对象.createStatement()的方法创建Statment对象。

(4)通过statement对象的.executeUpdate(sql);sql语句类型是delete,insert或update

(5)关闭statement对象和数据库连接对象。

注意:在这个过程中注意使用try,catch,finally来关闭连接。主要有两个目的:第一防止程序有问题导致数据库的一系列对象来不及关闭;第二防止数据库其他对象出现异常导致数据库连接对象关不掉。

5.执行SQL查询语句方法的过程主要是讲解ResultSet对象。

(1)获取数据库的连接对象;

(2)写SQL语句;

(3)获取Statement对象:通过数据库连接对象.createStatement()的方法创建Statement对象。

(4)通过statement对象的.executeQuery(sql);其返回值是ResultSet对象。定位到某一行:通过getXXX(index)和getXXX(cloumnName)来获取相应的列。

(5)关闭statement对象、resultSet对象和数据库连接对象

6.使用statement的问题是必须使用sql拼接字符串,同时有可能被Sql注入攻击,解决方案一般是使用PreparedStatement。

例如一个插入语句的写法:

(1)statement:String sql = "insert into 表名(属性1,属性2,属性3)values(对象.属性值,对象.属性值,对象.属性值)"

(2)Preparedstatement:String sql ="insert into 表名(属性1,属性2,属性3)values(?,?,?)";

Preparedstatement的使用过程:

(1)获取数据库连接对象;

(2)准备sql语句;

(3)创建Preparedstatement,并使用数据库对象的.preparedStatement(String sql)方法

(4)为占位置赋值;

(5)调用excuteQuery()或者excuteUpdate()方法执行sql,但是此时不需要传入参数;

(6)释放连接资源。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值