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)释放连接资源。