通过代码示例跟我学JDBC对数据库的事务操作实例
- 格式:pdf
- 大小:267.87 KB
- 文档页数:25
jdbc实操题好的,以下是一个简单的 JDBC 实操题:题目:使用 JDBC 连接 MySQL 数据库,查询 "students" 表中的所有数据。
要求:编写 Java 代码实现连接 MySQL 数据库,并查询 "students" 表中的所有数据。
输出查询结果。
示例代码:javaimport java.sql.*;public class JdbcExample {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "password";try (Connection conn = DriverManager.getConnection(url, username, password);Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM students")) {while (rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");int age = rs.getInt("age");System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);}} catch (SQLException e) {e.printStackTrace();}}}解释:首先,我们定义了数据库连接的 URL、用户名和密码。
一:获取连接数据库对象的类:package com.JDBC;/**加载mysql驱动:*1:在工程下面新建文件夹lib;*2:把mysql的驱动文件拷贝到此文件夹下面*3:右击工程名,选择最下面的“首选项”,选择“Java Builde Path”;Libraries----Add JARs---"选择mysql的驱动文件"进行加载*//**数据库的连接操作,主要是通过包含在Java API包下的Class类中*的forName()进行。
通过Class.forName()来加载驱动程序*/示例1:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Tmp0{public static void main(String[]args)throws Exception{Class.forName("com.mysql.jdbc.Driver");Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/db","root","");Statement st=conn.createStatement();st.execute("set names'utf8'");st.executeUpdate("insert into hh values('王英','67892')");ResultSet rs=st.executeQuery("select*from student");while(rs.next()){System.out.println(rs.getString("name"));System.out.println(rs.getString("pass"));}}}2import java.io.UnsupportedEncodingException;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.mysql.jdbc.Connection;public class DataBase{Connection con=null;Statement stat;ResultSet rs;int count;public DataBase()throws Exception{Class.forName("com.mysql.jdbc.Driver");con=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/db","root","");stat=con.createStatement();}public void selectDb(String sql)throws Exception{rs=stat.executeQuery(sql);System.out.println("姓名密码");while(rs.next()){System.out.print(rs.getString("name"));System.out.print(""+rs.getString("pass"));System.out.println();}}public void updateDb(String sql)throws Exception{sql=new String(sql.getBytes(),"utf-8");stat.executeUpdate(sql);System.out.println("成功了!!!!");}public void dbClose(){try{con.close();}catch(SQLException e){//TODO Auto-generated catch blocke.printStackTrace();}}}//主类public class DataBaseDemo{public static void main(String[]args)throws Exception{ DataBase t0=new DataBase();String sql="insert into student values('刘能','123321')";t0.updateDb(sql);String sql1="select*from student";t0.selectDb(sql1);t0.dbClose();}}。
JDBC连接MySQL数据库代码******************************************************1**********************************************************1import java.sql.DriverManager;2import java.sql.ResultSet;3import java.sql.SQLException;4import java.sql.Connection;5import java.sql.Statement;678public class MysqlDemo {9public static void main(String[] args) throws Exception {10 Connection conn = null;11 String sql;12// MySQL的JDBC URL编写⽅式:jdbc:mysql://主机名称:连接端⼝/数据库的名称?参数=值13// 避免中⽂乱码要指定useUnicode和characterEncoding14// 执⾏数据库操作之前要在数据库管理系统上创建⼀个数据库,名字⾃⼰定,15// 下⾯语句之前就要先创建javademo数据库16 String url = "jdbc:mysql://localhost:3306/javademo?"17 + "user=root&password=root&useUnicode=true&characterEncoding=UTF8";1819try {20// 之所以要使⽤下⾯这条语句,是因为要使⽤MySQL的驱动,所以我们要把它驱动起来,21// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下⾯三种形式都可以22 Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动23// or:24// com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();25// or:26// new com.mysql.jdbc.Driver();2728 System.out.println("成功加载MySQL驱动程序");29// ⼀个Connection代表⼀个数据库连接30 conn = DriverManager.getConnection(url);31// Statement⾥⾯带有很多⽅法,⽐如executeUpdate可以实现插⼊,更新和删除等32 Statement stmt = conn.createStatement();33 sql = "create table student(NO char(20),name varchar(20),primary key(NO))";34int result = stmt.executeUpdate(sql);// executeUpdate语句会返回⼀个受影响的⾏数,如果返回-1就没有成功35if (result != -1) {36 System.out.println("创建数据表成功");37 sql = "insert into student(NO,name) values('2012001','陶伟基')";38 result = stmt.executeUpdate(sql);39 sql = "insert into student(NO,name) values('2012002','周⼩俊')";40 result = stmt.executeUpdate(sql);41 sql = "select * from student";42 ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值43 System.out.println("学号\t姓名");44while (rs.next()) {45 System.out46 .println(rs.getString(1) + "\t" + rs.getString(2));// ⼊如果返回的是int类型可以⽤getInt()47 }48 }49 } catch (SQLException e) {50 System.out.println("MySQL操作错误");51 e.printStackTrace();52 } catch (Exception e) {53 e.printStackTrace();54 } finally {55 conn.close();56 }5758 }5960 }******************************************2*****************************************1 DBHelper.java2package com.hu.demo;34import java.sql.Connection;5import java.sql.DriverManager;6import java.sql.PreparedStatement;7import java.sql.SQLException;89public class DBHelper {10public static final String url = "jdbc:mysql://127.0.0.1/student";11public static final String name = "com.mysql.jdbc.Driver";12public static final String user = "root";13public static final String password = "root";1415public Connection conn = null;16public PreparedStatement pst = null;1718public DBHelper(String sql) {19try {20 Class.forName(name);//指定连接类型21 conn = DriverManager.getConnection(url, user, password);//获取连接22 pst = conn.prepareStatement(sql);//准备执⾏语句23 } catch (Exception e) {24 e.printStackTrace();25 }26 }2728public void close() {29try {30this.conn.close();31this.pst.close();32 } catch (SQLException e) {33 e.printStackTrace();34 }35 }36 }1 Demo.java2package com.hu.demo;34import java.sql.ResultSet;5import java.sql.SQLException;67public class Demo {89static String sql = null;10static DBHelper db1 = null;11static ResultSet ret = null;1213public static void main(String[] args) {14 sql = "select *from stuinfo";//SQL语句15 db1 = new DBHelper(sql);//创建DBHelper对象1617try {18 ret = db1.pst.executeQuery();//执⾏语句,得到结果集19while (ret.next()) {20 String uid = ret.getString(1);21 String ufname = ret.getString(2);22 String ulname = ret.getString(3);23 String udate = ret.getString(4);24 System.out.println(uid + "\t" + ufname + "\t" + ulname + "\t" + udate );25 }//显⽰数据26 ret.close();27 db1.close();//关闭连接28 } catch (SQLException e) {29 e.printStackTrace();30 }31 }3233 }*********************************************3********************************************************1/*JDBC231. 在Java中,软件功能都是由类来完成的。
jdbc事务的基本使用方法JDBC事务是一组SQL语句指令,这些指令都需要以原子性的方式执行。
如果任何一条指令在事务执行期间发生错误,所有之前执行的指令都将被回滚到初始状态,如果所有指令都执行成功,它们将会同时被提交到数据库。
在Java编程语言中,可以通过使用JDBC事务来实现这个功能。
下面我们就来学习一下JDBC事务的基本使用方法。
1.获取连接:使用JDBC连接数据库需要连接到JDBC连接的数据库。
可以通过使用java.sql包中的DriverManaget类提供的getConnection方法来获取数据库连接。
2. 关闭自动提交:在进行JDBC事务处理时,需要手动提交或撤销所有事务处理。
在开启一个JDBC连接时,默认情况下会自动提交所有事务处理,这会使得事务处理的逻辑更加复杂,所以我们需要在开启连接之后,通过调用setAutoCommit(false)来关闭自动提交功能。
3.执行SQL语句: 在JDBC事务中,我们需要执行一系列的SQL语句来完成我们的业务逻辑。
通常我们使用Statement或PreparedStatement执行SQL语句,需要注意的是,这些语句都必须在已经关闭了自动提交的连接中执行。
4.提交事务:在所有的SQL语句都执行完毕之后,我们需要调用connection对象的commit()方法来提交所有的事务。
如果在提交事务时发生错误,也可以通过调用rollback()方法来回滚所有已经执行的操作。
5.释放资源:在事务处理结束之后,需要释放资源,包括关闭数据库连接、释放Statement和ResultSet对象等。
具体代码示例:```Connection conn = null;PreparedStatement pstmt = null;try {// 获取连接conn = DriverManager.getConnection(url, user, password);// 关闭自动提交conn.setAutoCommit(false);// 创建PreparedStatement对象pstmt = conn.prepareStatement("insert into user(name, age) values(?,?)");pstmt.setString(1, "张三");pstmt.setInt(2, 20);// 执行INSERT语句pstmt.executeUpdate();pstmt.setString(1, "李四");pstmt.setInt(2, 22);// 执行INSERT语句pstmt.executeUpdate();// 提交事务mit();} catch (SQLException e) {// 发生错误,回滚事务conn.rollback();} finally {// 释放资源if (pstmt != null) {pstmt.close();}if (conn != null) {conn.close();}}```以上是JDBC事务的基本使用方法,通过学习和实践,我们可以更好地理解和掌握JDBC事务的应用和实现。
Java程序设计中的JDBC数据库访问与事务处理案例JDBC(Java Database Connectivity)是在Java程序设计中用于访问数据库的一种标准接口。
通过JDBC,我们可以方便地连接、查询和操作各种类型的数据库。
除了基本的数据库访问功能外,JDBC还提供了事务处理的支持,使得我们可以在数据库操作中保持数据的一致性和完整性。
下面将介绍一个使用JDBC进行数据库访问与事务处理的案例。
案例背景:假设我们正在开发一个在线图书商城系统,其中涉及到对图书、用户和订单等数据的管理和操作。
我们需要设计一个Java程序,使用JDBC实现对数据库中图书、用户和订单的增删改查,并且能够保持相关操作的事务一致性。
案例步骤:1. 准备工作:a. 安装并配置数据库:在本案例中,我们以MySQL数据库为例,需安装并配置好MySQL数据库环境。
b. 创建数据库和表:根据系统需求,在MySQL中创建名为bookstore的数据库,并在此数据库中创建用于存储图书、用户和订单数据的表。
c. 导入JDBC驱动:为了使用JDBC连接数据库,需先导入相应的数据库驱动。
在本案例中,我们将使用MySQL的JDBC驱动。
将相关的JDBC驱动jar包导入到项目中。
2. 建立数据库连接:a. 加载JDBC驱动:在Java程序中,通过Class.forName()方法加载JDBC驱动类。
对于MySQL,加载驱动的代码如下:```javaClass.forName("com.mysql.cj.jdbc.Driver");```b. 建立数据库连接:通过指定数据库的URL、用户名和密码,调用DriverManager.getConnection()方法建立数据库连接:```javaString url = "jdbc:mysql://localhost:3306/bookstore";Connection connection = DriverManager.getConnection(url, "username", "password");```3. 执行数据库操作:a. 查询数据:通过创建Statement或PreparedStatement对象,使用SQL语句进行查询操作。
JAVA使⽤JDBC技术操作SqlServer数据库实例代码JDBC(Java Data Base Connectivity,Java数据库连接)是⼀种⽤于执⾏SQL语句的Java API,可以为多种关系数据库提供统⼀访问,它由⼀组⽤Java语⾔编写的类和接⼝组成。
JDBC提供了⼀种基准,据此可以构建更⾼级的⼯具和接⼝,使数据库开发⼈员能够编写数据库应⽤程序。
JDBC并不能直接访问数据库,需要借助于数据库⼚商提供的JDBC驱动程序。
数据库连接如果要在Java访问数据库,⾸先要加载⼀个数据库驱动,数据库驱动只需要在第⼀次访问时加载⼀次。
然后再每次访问数据库时创建⼀个Connection实例,获取数据库连接,这样就可以执⾏操作数据库的SQL语句。
最后⽤完后释放掉数据库的连接。
数据库驱动类下完后在新建的java_project导⼊驱动包右击选中项⽬>>Build Path >>Add External Archives... 选中下载解压的⽂件导⼊成功后的项⽬:package com.Project_DataBase01;import java.sql.Connection;import java.sql.DriverManager;public class SelectQuery {private Connection conn;/** 创建⼀个返回Connection的⽅法*/public Connection getConnection(){try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");System.out.println("数据库驱动加载成功");conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=java_conn_test","sa","123456");if(conn==null){System.out.println("数据库连接失败");System.out.println("-----------------------");}else {System.out.println("数据库连接成功");System.out.println("-----------------------");}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}return conn;}}进⾏SqlServe数据库java_conn_test中的tb_User进⾏数据的增删改查。
Java基于jdbc连接mysql数据库操作⽰例本⽂实例讲述了Java基于jdbc连接mysql数据库操作。
分享给⼤家供⼤家参考,具体如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class MySQLDemo {private Connection conn = null;private Statement stmt = null;private ResultSet rs = null;private String driverclass = "com.mysql.jdbc.Driver";private String url = "jdbc:mysql://localhost:3306/mydb";private String user = "root";private String password = "111111";public MySQLDemo() {try {Class.forName(driverclass).newInstance(); // 加载驱动程序} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e1) {// TODO Auto-generated catch blockSystem.out.println("class not found");}try {conn = DriverManager.getConnection(url, user, password); // 获得Connection对象} catch (Exception e) {System.out.println("Connect failed!");}}public void selectMethod(String sql) {System.out.println("id title");try {stmt = conn.createStatement(); // 获得Statement对象rs = stmt.executeQuery(sql); // 执⾏SQL语句,并返回ResultSet类型的结果while (rs.next()) {String title = rs.getString("id");String name = rs.getString("name");System.out.println(title + " " + name);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void closeDB() throws SQLException {if (rs != null)rs.close();if (stmt != null)stmt.close(); // 关闭Statement对象if (conn != null) // 关闭Connection对象conn.close();}public static void main(String args[]) {MySQLDemo demo = new MySQLDemo();demo.selectMethod("select * from test");}}⽤JDBC来连接数据库,基本步骤都⼤同⼩异,只不过不同的数据库之间的URL有些不同。
java中JDBC连接数据库代码和步骤详解及实例代码java 中JDBC连接数据库代码和步骤详解JDBC连接数据库•创建⼀个以JDBC连接数据库的程序,包含7个步骤:1、加载JDBC驱动程序:在连接数据库之前,⾸先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过ng.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 )⽅法传⼊指定的欲连接的数据库的路径、数据库的⽤户名和密码来获得。