JDBC操作数据库实例
jdbc操作数据库实例
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
1.jdbc创建数据库
1.1 前提条件
1.拥有创建和删除表的权限
2.数据库已经启动,且可用
1.2 jdbc创建数据库表的步骤:
-
导包:导入需要进行数据库编程的 JDBC 类的包。大多数情况下,使用 import java.sql. 就足够了。
- 注册 JDBC 驱动程序:初始化驱动程序,使之可以与数据库打开通信通道。
- 获取连接:需要使用 DriverManager.getConnection() 方法创建一个 Connection 对象,它代表与数据库服务器的物理连接。
- 建数据库:使用类型声明的对象建立并提交一个 建数据库SQL 语句到数据库。
- 释放资源:手动释放资源,依靠 JVM 垃圾收集器可以明确地回收所有的数据库资源。
创建数据库实例:创建jdbc数据库:
java源码:
package com.hejh.day0509; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; import com.hejh.util.JDBCUtil; public class JDBCCreateDatabase { @Test public void createDatabase() { Connection conn = null; Statement st = null; ResultSet rs = null; try { //使用JDBCUtil工具类,获取连接对象(包括注册驱动,工具类已经实现)
conn = JDBCUtil.getConnection(); st = conn.createStatement(); String sql = "create database jdbc character set utf8"; int i = st.executeUpdate(sql); System.out.println("建立数据库成功,影响了:"+i+"行"); } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeResourse(conn, st, rs); } } }
JDBCUtil工具类源码:
package com.hejh.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtil { final static String driver = "com.mysql.jdbc.Driver";
//在这里要注意,不是具体连接到某个具体的数据库下,是在当前用户下创建JDBC数据库 final static String url = "jdbc:mysql://localhost/?useUnicode=true&characterEncoding=UTF-8"; final static String user = "root"; final static String password = "root"; Connection conn = null; PreparedStatement ps = null; Statement st = null; ResultSet rs = null; /**获取连接*/
public static Connection getConnection() throws SQLException { Connection conn = null; try { //注册驱动
Class.forName(driver); //获取连接
conn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } return conn; } /**关闭资源closeResourse(conn,st,rs)*/
public static void closeResourse(Connection conn,Statement st,ResultSet rs) { try { if(rs!=null) { rs.close(); }else { rs = null; } } catch (SQLException e) { e.printStackTrace(); } try { if(st!=null) { st.close(); }else { st = null; } } catch (SQLException e) { e.printStackTrace(); } try { if(conn!=null) { conn.close(); }else { conn = null; } } catch (SQLException e) { e.printStackTrace(); } } /**关闭资源closeResourse(conn,ps,rs)*/
public static void closeResourse(Connection conn,PreparedStatement ps,ResultSet rs) { try { if(rs!=null) { rs.close(); }else { rs = null; } } catch (SQLException e) { e.printStackTrace(); } try { if(ps!=null) { ps.close(); }else { ps = null; } } catch (SQLException e) { e.printStackTrace(); } try { if(conn!=null) { conn.close(); }else { conn = null; } } catch (SQLException e) { e.printStackTrace(); } } }
数据库显示为:
2.jdbc切换数据库
java源码:
package com.hejh.day0509; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; import com.hejh.util.JDBCUtil; public class JDBCChangeDatabase { @Test public void createDatabase() { Connection conn = null; Statement st = null; ResultSet rs = null; try { //使用JDBCUtil工具类,获取连接对象(包括注册驱动,工具类已经实现)
conn = JDBCUtil.getConnection(); st = conn.createStatement(); //切换(选择)数据库;或者在url中把数据库写死
String sql = "use jdbc"; int i = st.executeUpdate(sql); System.out.println("切换数据库成功,影响了:"+i+"行"); } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeResourse(conn, st, rs); } } }
工具类JDBCUtil.java,略
3.jdbc删除数据库
在Connection对象的参数url的数据库名,必须和你要删除的数据库名一致,这样才能删除,即:
url = "jdbc:mysql://localhost/jdbc?useUnicode=true&characterEncoding=UTF-8";
//删除数据库;
String sql = "drop database jdbc";
java源码:
package com.hejh.day0509; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; import com.hejh.util.JDBCUtil; public class JDBCDeleteDatabase { @Test public void createDatabase() { Connection conn = null; Statement st = null; ResultSet rs = null; try { //使用JDBCUtil工具类,获取连接对象(包括注册驱动,工具类已经实现)
conn = JDBCUtil.getConnection(); st = conn.createStatement(); //删除数据库;
String sql = "drop database jdbc"; int i = st.executeUpdate(sql); System.out.println("删除数据库成功,影响了:"+i+"行"); } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeResourse(conn, st, rs); } } }
工具类JDBCUtil.java,略
4.jdbc创建表
4.1前提条件
- 在运行下面的例子之前,你需要用你实际的用户名和密码去代替 username 和 password 。
- 你的 MySQL 或者其他数据库已经启动了并在运行中。
4.2 JDBC建表步骤
-
导包:导入含有需要进行数据库编程的 JDBC 类的包。大多数情况下,使用 import java.sql. 就足够了。
- 注册 JDBC 驱动程序:初始化驱动程序,使之可以与数据库打开通信通道。
- 打开连接:需要使用 DriverManager.getConnection() 方法创建一个 Connection 对象,它代表与数据库服务器的物理连接。
- 建表:需要使用类型声明的对象建立并提交一个 建表SQL 语句到被选择的数据库中去创建表。
- 释放资源:依靠 JVM 垃圾收集器可以明确地回收所有的数据库资源。
建表实例如下:建立一张student表
java源码:
package com.hejh.day0509; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; import com.hejh.util.JDBCUtil; public class JDBCCreateDatabase { @Test public void create() { Connection conn = null; Statement st = null; ResultSet rs = null; try { //使用JDBCUtil工具类,获取连接对象(包括注册驱动,工具类已经实现)
conn = JDBCUtil.getConnection(); //建表sql语句
String sql = "create table student(id int(10) primary key,name varchar(20),grate int(10) not null)"; //获取Statement对象,并执行sql语句
st = conn.createStatement(); int i = st.executeUpdate(sql); //处理执行sql返回的结果
System.out.println("影响了:"+i+"行数据"); } catch (SQLException e) { e.printStackTrace(); }finally {
//关闭资源 JDBCUtil.closeResourse(conn, st, rs); } } }
抽取的java工具类JDBCUtil.java:
package com.hejh.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtil { final static String driver = "com.mysql.jdbc.Driver"; final static String url = "jdbc:mysql://localhost/jdbc?useUnicode=true&characterEncoding=UTF-8"; final static String user = "root"; final static String password = "root"; Connection conn = null; PreparedStatement ps = null; Statement st = null; ResultSet rs = null; /**获取连接*/
public static Connection getConnection() throws SQLException { Connection conn = null; try { //注册驱动
Class.forName(driver); //获取连接
conn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } return conn; } /**关闭资源1:closeResourse(conn,st,rs)*/
public static void closeResourse(Connection conn,Statement st,ResultSet rs) { try { if(rs!=null) { rs.close(); }else { rs = null; } } catch (SQLException e) { e.printStackTrace(); } try { if(st!=null) { st.close(); }else { st = null; } } catch (SQLException e) { e.printStackTrace(); } try { if(conn!=null) { conn.close(); }else { conn = null; } } catch (SQLException e) { e.printStackTrace(); } } /**关闭资源2:closeResourse(conn,ps,rs)*/
public static void closeResourse(Connection conn,PreparedStatement ps,ResultSet rs) { try { if(rs!=null) { rs.close(); }else { rs = null; } } catch (SQLException e) { e.printStackTrace(); } try { if(ps!=null) { ps.close(); }else { ps = null; } } catch (SQLException e) { e.printStackTrace(); } try { if(conn!=null) { conn.close(); }else { conn = null; } } catch (SQLException e) { e.printStackTrace(); } } }
数据库显示为:

更多精彩