连接步骤:
步骤一创建数据库
CREATE DATABASE line;
CREATE TABLE customer(
id INT,
NAME VARCHAR(50),
STATUS INT
);
INSERT INTO customer VALUES(1,'张三',0);
INSERT INTO customer VALUES(2,'李四',0);
INSERT INTO customer VALUES(3,'王五',0);
SELECT * FROM customer ORDER BY id;
步骤二:加载Java包
Java项目1加载mysql,项目2加载sql
步骤三:代码实现
1.代码步骤
//1.加载数据驱动
//2.创建并获取数据库连接
//3.创建jabc statement对象
//4.设置sql语句
//5.设置sql语句中的参数(使用prepareteStatement)
//6.通过statement执行sql并获取结果
//7.对sql执行结果进行解析处理
//8.释放资源
2.代码实例
mysql实例:
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCTest {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement prepareStatement = null;
ResultSet resulSet = null;
try
{
//1.加载数据驱动 加载到jvm(java虚拟机),通过Java.lang.Class类的静态方法forName(String className)
Class.forName("com.mysql.jdbc.Driver");
//2.提供JDBC连接的URL
/*连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。*/
String url ="jdbc:mysql://localhost:3306/line";
//3.创建数据库连接
/*要连接数据库,
* 需要向java.sql.DriverManager请求并获得Connection对象, 该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 密码来获得。*/
String username = "root";
String password = "root";
connection =DriverManager.getConnection(url, username, password);
//4创建一个Statement
/* •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体实现方式
Statement stmt = con.createStatement() ;
PreparedStatementpstmt = con.prepareStatement(sql) ;
CallableStatementcstmt =con.prepareCall("{CALL demoSp(? , ?)}") ;
*/
//5.执行数据库语句
String sql = "SELECT * FROM customer ORDER BY id;";
prepareStatement= connection.prepareStatement(sql);
resulSet = prepareStatement.executeQuery();
//6.处理结果
while(resulSet.next())
{
int id = resulSet.getInt("id");
String name = resulSet.getString("name");
System.out.println("id:"+id+" "+ "customerName:"+name);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("找不到驱动程序类,加载驱动失败!");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("数据库连接失败!");
e.printStackTrace();
}
finally {
// 7、关闭JDBC对象
/*操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:*/
if(resulSet!=null)
{
try {
resulSet.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(prepareStatement!=null)
{
try {
prepareStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(connection!=null)
{
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
sqlserver实例:
public class JDBCTest {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement prepareStatement = null;
ResultSet resultSet = null;
try {
//1.加载数据库
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2. 3.创建数据库连接 账号 密码
String url="jdbc:sqlserver://localhost:1433;DatabaseName=line";
String user="sa";
String password="retow2332380@";
connection = DriverManager.getConnection(url, user, password);
//4.创建sql数据
String sql = "select * from customer order by id;";
//5 预处理
prepareStatement=connection.prepareStatement(sql);
//6可以设置参数
//7.执行sql语句获得结果级
resultSet= prepareStatement.executeQuery();
//8.处理结果
while(resultSet.next())
{
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("id:"+id+" "+"name:" +name);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("数据库驱动加载失败!");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("数据库连接失败!");
e.printStackTrace();
}finally{
//9.释放资源 即关闭各种资源
if(resultSet!=null)
{
try {
resultSet.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(prepareStatement!=null)
{
try {
prepareStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(connection!=null)
{
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
3.两者不同点:
加载驱动不同
URL略有不同:端口不同,数据库描写不同
}