问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中使用JDBC连接数据库的步骤是什么?

发布网友 发布时间:2022-04-21 18:13

我来回答

2个回答

热心网友 时间:2023-10-06 02:30

创建一个以JDBC连接数据库的程序,包含7个步骤:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
例如:
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
3、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}
4、创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、处理结果
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列1开始)
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}

热心网友 时间:2023-10-06 02:30

给你个baseDao类吧

package ;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class BaseDao {
private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String url = "jdbc:sqlserver://localhost:1433;databaseName=EasyBuy"; 
private String user = "sa";
private String password = "sa";

/**
 * 获取数据库连接对象
 * 
 * @return
 */
public Connection getcConnection() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
 * 关闭数据库连接对象
 * @param rs
 * @param pstmt
 * @param conn
 */
public void closeAll(ResultSet rs,PreparedStatement pstmt,Connection conn){
try {
if(rs!=null){
rs.close();
}
if(pstmt!=null){
pstmt.close();
}
if(conn!=null){
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
 * 增删改方法
 * @param sql
 * @param objects
 * @return
 */
public int executeUpdate(String sql,Object[] objects){
         int num=0;
         PreparedStatement pstmt=null; 
         Connection conn=getcConnection();
         try {
pstmt=conn.prepareStatement(sql);
for (int i = 0; i < objects.length; i++) {
pstmt.setObject(i+1,objects[i]); 
}
num=pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
closeAll(null, pstmt, conn);
}
         return num;
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 电脑屏幕一直闪红绿黄白灰不停? 宋亚轩能成为《王牌对王牌》的常驻嘉宾,凭借的是... JDBC连接数据库的步骤都有哪些? 为什么我的电脑屏幕总是变色? javaJDBC连接数据库 java中使用JDBC连接数据库的步骤? 电脑开机后屏幕一直变换颜色重新开机又好了 电脑显示器的颜色不断的来回变换,该咋办? 甘肃的矿产等资源是怎样的? 我是平凉崆峒区的参加了甘肃10000名社保考试,考了... 我是甘肃的,我考了邵阳学院音乐。2011合格线192,... 甘肃考生,文化课443,编导专业统考成绩202,可以... 甘肃历史上的哪十大名人,多是名将与乱世枭雄? 甘肃礼县祁山乡西汉村三组202候菜花养老保险从哪年... 我国的国道中302、103等数字代表什么意思? 你好,我是今年甘肃播音主持考生,联考202,报考西... 202年甘肃省都有那些舞蹈类学校设有校考? 202O年度甘肃省兰州市申报技术标兵工作进度如何? 甘肃曝光了价格违法典型案例,这些案例都与什么有关? 202年甘肃中职考生能报考综合评价吗? 进入明星微信群二维码 为什么电脑关机后液晶显示屏还在不停地变颜色? java jdbc连接数据库 2021.9.12宋亚轩粉丝多少? 电脑屏幕不停的自动转换颜色是什么问题? java使用jdbc连接数据库问题 最近刚上楼,想问一下什么是时代少年团粉丝群的审... 为什么电脑关机后液晶显示屏还在不停地变颜色 JAVA-JDBC连接数据库一个问题:我采用通过事务提交... 宋亚轩有多少粉丝? 我的电脑待机时显示屏上各种颜色换来换去 老亮着... java jdbc连接oracle数据库步骤 宋亚轩pb是什么意思 如何使用JDBC连接数据库在java中 宋亚轩粉丝为什么叫海螺? 浅谈JDBC怎么连接数据库 宋亚轩晒自拍被阳光迷住眼睛,网友对其做出了怎样... 想知道怎么见到宋亚轩? JAVA中,连接数据库JDBC总是连接不上 漫威手办什么牌子好?