JDBC(Java DataBase Connectivity) Java 连接数据库技术。 Java语言访问各个数据库的一套接口集合。可以连接 MySql Oracle、DB2 等
? 不同的数据库 需要提供不同的数据库连接驱动 , 该驱动由数据库厂商提供,在连接之前导入。
JDBC连接程序中,sun提供核心接口 ,存在java.sql.* 和javax.sql.* 中
java.sql.* : 主要功能对数据库基本编程操作,完成数据库连接、执行sql语句,获取结果等
javax.sql.* : 对数据库的扩展操作 事务管理,行集合处理(RowSet)
核心接口:
? 1、导入数据库连接Jar包
? 对于Mysql分不同版本 导入的jar包不一样
? 以8.0为例 :
? 2、加载启动类
3、获取连接对象Connection
4、获取sql执行器 Statement
5、执行sql语句
6、关闭连接
// 1、导入jar包, 一个项目(模块)只需要导入一次 add to libs
// 2、加载驱动类
Class.forName("com.mysql.cj.jdbc.Driver"); // 通过反射执行该类
// 3、通过驱动管理类获取连接对象 参数语法 ?参数名=参数值&参数名=参数值
String url="jdbc:mysql://localhost:3306/j2008_db?useSSL=false&serverTimezone=UTC";
String username="root";
String password ="123456"; // 这是你自己设置的root密码
Connection conn = DriverManager.getConnection(url,username,password);
System.out.println("连接对象:"+conn);
// **********************添加数据**************************
//4、获取sql执行器 Statement
String sql="insert into dept values( 50,‘市场部‘,‘武汉‘)";
Statement st = conn.createStatement();
// 5、执行SQL语句
int count = st.executeUpdate(sql);
if(count>0){
System.out.println("添加成功");
}else{
System.out.println("添加失败");
}
//6、关闭连接
st.close();
conn.close();
// 删除数据
/**
* 删除部门
*/
public static void deleteDept(int deptno){
try {
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 获取数据库连接
//jdbc:mysql://localhost:3306/j2008_db?useSSL=false&serverTimezone=UTC&user=root&password=123456
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/j2008_db?useSSL=false&serverTimezone=UTC","root","123456");
//获取sql执行器
Statement st = conn.createStatement();
//执行sql语句 executeUpdate
int count = st.executeUpdate("delete from dept where deptno =" +deptno);
//count 表示影响的行数
if(count>0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
//关闭连接
st.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//修改数据
/**
* 修改部门 execute : 执行任意sql语句 (包括DDL DML)
*/
public static void updateDept(int deptno ,String loc){
Connection conn = null;
Statement st = null;
//获取数据库连接
String url= "jdbc:mysql://127.0.0.1:3306/j2008_db?useSSL=false&serverTimezone=UTC";
try {
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(url,"root","123456");
st = conn.createStatement();
// 执行任意sql语句 返回boolean ,对于select语句返回true 非select返回false
boolean flag = st.execute("update dept set loc = ‘"+loc+"‘ where deptno = " + deptno);
System.out.println("操作成功");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally{
// 关闭连接
if(st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
1、executeUpdate() 用于执行insert update ,delete 语句,返回sql影响的行数
? execute() : 用于执行任意sql语句,包括 创建表, 添加约束等 ,返回boolean类型, 对于select语句返回true ,对于其他语句返回 false
? executeQuery() : 用于执行查询sql语句, 它会返回一个 结果集对象 ResultSet ,获取结果集数据。
原文:https://www.cnblogs.com/z5452830/p/14053429.html