Java数据库编程一般可以分为以下几个步骤:
1、使用之前记得要在工程的build path中添加 MySQL-connector-Java 的 jar 包
2、加载和注册驱动程序,com.mysql.jdbc.Driver 为JDBC驱
3、java驱动程序名称 Class.forName("com.mysql.jdbc.Driver");
4、连接数据库
// mysql为驱动程序类型,localhost为数据库服务器IP,这里是本地IP,3306是SQL数据库端口 //myuser 是数据库名称,root 是登录用户名,这里密码为空,所以是“” Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/myuser", "root", "");
5、向数据库发送SQL语句,处理结果
// 插入数据的sql语句 String sql = "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)"+ " VALUES ('Tom1', 32, 'M', 'china','Personnel','3','3000')"; // 创建用于执行静态sql语句的Statement对象 st = (Statement) conn.createStatement(); // 执行插入操作的sql语句,并返回插入数据的个数 int count = st.executeUpdate(sql);
// 释放所连接的数据库及资源 st.close(); // 关闭数据库连接 conn.close();
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class java_test { // 创建静态全局变量 static Connection conn; static Statement st; public static void main(String[] args) { insert(); // 插入添加记录 update(); // 更新记录数据 delete(); // 删除记录 query(); // 查询记录并显示 } /* 插入数据记录,并输出插入的数据记录数 */ public static void insert() { // 首先要获取连接,即连接到数据库 conn = getConnection(); try { // 插入数据的sql语句 String sql = "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)" + " VALUES ('Tom1', 32, 'M', 'china','Personnel','3','3000')"; // 创建用于执行静态sql语句的Statement对象 st = (Statement) conn.createStatement(); // 执行插入操作的sql语句,并返回插入数据的个数 int count = st.executeUpdate(sql); // 输出插入操作的处理结果 System.out.println("向staff表中插入 " + count + " 条数据"); // 释放所连接的数据库及资源 st.close(); // 关闭数据库连接 conn.close(); } catch (SQLException e) { System.out.println("插入数据失败" + e.getMessage()); } } /* 更新符合要求的记录,并返回更新的记录数目 */ public static void update() { // 同样先要获取连接,即连接到数据库 conn = getConnection(); try { // 更新数据的sql语句 String sql = "update staff set wage='2200' where name = 'lucy'"; // 创建用于执行静态sql语句的Statement对象,st属局部变量 st = (Statement) conn.createStatement(); // 执行更新操作的sql语句,返回更新数据的个数 int count = st.executeUpdate(sql); // 输出更新操作的处理结果 System.out.println("staff表中更新 " + count + " 条数据"); // 释放所连接的数据库及资源 st.close(); // 关闭数据库连接 conn.close(); } catch (SQLException e) { System.out.println("更新数据失败"); } } /* 查询数据库,输出符合要求的记录的情况 */ public static void query() { // 同样先要获取连接,即连接到数据库 conn = getConnection(); try { // 查询数据的sql语句 String sql = "select * from staff"; // 创建用于执行静态sql语句的Statement对象,st属局部变量 st = (Statement) conn.createStatement(); // 执行sql查询语句,返回查询数据的结果集 ResultSet rs = st.executeQuery(sql); System.out.println("最后的查询结果为:"); while (rs.next()) { // 判断是否还有下一个数据 // 根据字段名获取相应的值 String name = rs.getString("name"); int age = rs.getInt("age"); String sex = rs.getString("sex"); String address = rs.getString("address"); String depart = rs.getString("depart"); String worklen = rs.getString("worklen"); String wage = rs.getString("wage"); // 输出查到的记录的各个字段的值 System.out.println(name + " " + age + " " + sex + " " + address + " " + depart + " " + worklen + " " + wage); } // 释放所连接的数据库及资源 st.close(); conn.close(); // 关闭数据库连接 } catch (SQLException e) { System.out.println("查询数据失败"); } } /* 删除符合要求的记录,输出情况 */ public static void delete() { // 同样先要获取连接,即连接到数据库 conn = getConnection(); try { // 删除数据的sql语句 String sql = "delete from staff where name = 'lili'"; // 创建用于执行静态sql语句的Statement对象,st属局部变量 st = (Statement) conn.createStatement(); // 执行sql删除语句,返回删除数据的数量 int count = st.executeUpdate(sql); // 输出删除操作的处理结果 System.out.println("staff表中删除 " + count + " 条数据\n"); // 释放所连接的数据库及资源 st.close(); // 关闭数据库连接 conn.close(); } catch (SQLException e) { System.out.println("删除数据失败"); } } /* 获取数据库连接的函数 */ public static Connection getConnection() { // 创建用于连接数据库的Connection对象 Connection con = null; try { // 加载Mysql数据驱动 Class.forName("com.mysql.jdbc.Driver"); // 创建数据连接 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/myuser", "root", ""); } catch (Exception e) { System.out.println("数据库连接失败" + e.getMessage()); } // 返回所建立的数据库连接 return con; } }