Java数据库连接
第一节 通过jdbc连接数据库
第二节 通过datasource开源项目连接数据库
第三节 事务控制
第四节 数据库应用程序开发
Java数据库连接的步骤
1.导入相对应版本的数据包
2.通过加载驱动,连接数据库 建立连接
3.创建语句对象,执行语句 执行sql语句
4.创建处理集对象,迭代数 处理结果集
5.关闭连接,释放jdbc的资源
提示:以下是本篇文章正文内容,下面案例可供参考
一、资源包的导入
JDBC
JDBC(Java database connectivity):java访问数据库的标准API
这些为常用的接口和类
JDBC相关的API的包再java.sql和javax.sql中,这是需要自己再程序中导入的。
而驱动程序是由数据库厂商来提供的,所以我们下载相应的jar包来和不同的数据库实现连接
jar包的导入
下载对应数据库的jabc架包与驱动
1 .mySQL:https://dev.mysql.com/downloads/connector/
2 .Oracle:http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html
3 .SQL Server:https://www.microsoft.com/en-us/download/details.aspx?id=55539
以elipse来连接sql数据库为例演示如何导入数据库的jar包
1.下载完mysql_connection_java.jar
2.将jar文件直接复制到工程文件夹下面
3.为jar文件来配置路径:右键单击jar文件,选择build path->add to build path
完成
二、连接数据库
1.加载驱动
代码如下(示例):
String password = "0927";
String username = "root";
// 加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 创建jdbc url来确定查找所需要的连接的对象
String url = "jdbc:mysql://localhost:3306/mysql?serverTimeZone=UTC";
// 创建连接对象
try {
Connection c = DriverManager.getConnection(url,username,password);
// 注意 : connection 不是要利用new方法来创建,他是利用成员方法来创建的
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2.执行mysql语句
执行MySQL语句首先要创建语句对象,然后再执行语句
connection相当于索道将数据库与java程序连接起来,而语句对象statement和其子类对象相当与缆车。为数据库传输mysql语句,并将结果返回给程序
常见的mysql语句及statement的方法
代码如下(示例):
try {
// 创建statement对象
Statement stm = c.createStatement();
// 想执行的mysql语句
String sqlString = "SELECT \r\n"
+ " `id`,\r\n"
+ " `name`,\r\n"
+ " `gender`,\r\n"
+ " `score` \r\n"
+ "FROM\r\n"
+ " `student` ";
ResultSet rs = stm.executeQuery(sqlString);
while(rs.next()) {
System.out.println(rs.getInt(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
System.out.println(rs.getInt(4));
// 注意 这其中的序号数是从1开始的
}
rs.close();
stm.close();
c.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
另外也可以用prepareStatement 来进行编译预处理,来防止sql攻击和避免字符串拼接时的繁琐。
prepareStatement 采用占位符的形式来编写sql语句
具体要利用setXxx(num,"")来将占位符填充
注意两者创建方式和执行sql语句的差别
具体代码如下
String psqlString = "SELECT * FROM student where name = ?";
// 创建prepareStatement预处理对象
PreparedStatement ptst = c.prepareStatement(psqlString);
ptst.setString(1,"zs");
ResultSet prs = ptst.executeQuery();
while(rs.next()) {
System.out.println(rs.getInt(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
System.out.println(rs.getInt(4));
// 注意 这其中的序号数是从1开始的
}