java纯jdbc连接mysql数据库实现增删查改 | 黄乔国PHP

纯jdbc连接mysql数据是在企业开发种最常用的方式,首先我们需要在官网下载:

mysql-connector-java-5.0.8-bin.jar

下载好之后导入java项目中,java通过jdbc连接mysql有三个步骤

1.加载驱动

try {
			Class.forName("com.mysql.jdbc.Driver");//加载驱动
			System.out.println("加载驱动成功!");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

2.建立连接

String DBURL = "jdbc:mysql://localhost:3306/yii";
		String DBUSER = "root";
		String DBPWD = "";
		Connection con = null;//链接对象
		Statement  stmt = null;//satement 对象
		ResultSet res = null;//结果集对象
		
		//2.建立连接
		try {
			con = DriverManager.getConnection(DBURL, DBUSER, DBPWD);//创建连接
			System.out.println("创建连接成功!");
			stmt = con.createStatement();//创建stmt对象
			//增加
			/*String sql = "insert into news values(null,'java','i love java so much!')";
			int affectRow = stmt.executeUpdate(sql);
			if(affectRow > 0)
				System.out.println("--------------插入数据成功!------------");*/
			//更新
			/*String sqlUpdate = "update news set title = 'JAVA' where id = 10";
			int affectRow = stmt.executeUpdate(sqlUpdate);
			if(affectRow > 0)
				System.out.println("--------------更新数据成功!------------");*/
			//删除
			/*String sqlDelete = "delete from news where id>6 and id<=10";
			int affectRow = stmt.executeUpdate(sqlDelete);
			if(affectRow > 0)
				System.out.println("--------------删除数据成功!------------");*/
			//查询
			String sqlSelect = "select * from news";
			res = stmt.executeQuery(sqlSelect);
			System.out.println("ID\t标题\t内容");
			while(res.next()){
				System.out.println(res.getInt("id")+"\t"+res.getString("title")+"\t"+res.getString("content"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
3.关闭连接
try {
			con = DriverManager.getConnection(DBURL, DBUSER, DBPWD);//创建连接
			System.out.println("创建连接成功!");
			stmt = con.createStatement();//创建stmt对象
			//增加
			/*String sql = "insert into news values(null,'java','i love java so much!')";
			int affectRow = stmt.executeUpdate(sql);
			if(affectRow > 0)
				System.out.println("--------------插入数据成功!------------");*/
			//更新
			/*String sqlUpdate = "update news set title = 'JAVA' where id = 10";
			int affectRow = stmt.executeUpdate(sqlUpdate);
			if(affectRow > 0)
				System.out.println("--------------更新数据成功!------------");*/
			//删除
			/*String sqlDelete = "delete from news where id>6 and id<=10";
			int affectRow = stmt.executeUpdate(sqlDelete);
			if(affectRow > 0)
				System.out.println("--------------删除数据成功!------------");*/
			//查询
			String sqlSelect = "select * from news";
			res = stmt.executeQuery(sqlSelect);
			System.out.println("ID\t标题\t内容");
			while(res.next()){
				System.out.println(res.getInt("id")+"\t"+res.getString("title")+"\t"+res.getString("content"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			//3.关闭连接
			//依次关闭con,stmt,res
			if(con != null)
				try {
					con.close();//关闭连接
					System.out.println("关闭连接成功!");
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if(stmt != null)
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
			if(res != null)
				try {
					res.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}

以上过程都是以代码形式体现出来的,下面总结一些知识点:

Statement接口提供了三种执行SQL语句的方法:executeQuery、executeUpdate和 execute。
使用哪一个方法由SQL语句所产生的内容决定。


方法:executeQuery
用于产生单个结果集的语句,例如 SELECT 语句。 被使用最多的执行SQL语句的方法是executeQuery。这个方法被用来执行SELECT 
语句,它几乎是使用最多的 SQL 语句。


方法:executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP 
TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 
的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 
的返回值总为零。


方法:execute
用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能
execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。当执行某个已存储过程 
或动态执行未知 SQL 字符串(即应用程序程序员在编译时未知)时,有可能出现多个结果的情况,尽管这种情况很少见。
因为方法 execute 处理非常规情况,所以获取其结果需要一些特殊处理并不足为怪。例如,假定已知某个过程返回两个结果集,则在使用方法 execute 
执行该过程后,必须调用方法 getResultSet 获得第一个结果集,然后调用适当的 getXXX 方法获取其中的值。要获得第二个结果集,需要先调用 
getMoreResults 方法,然后再调用 getResultSet 方法。如果已知某个过程返回两个更新计数,则首先调用方法 
getUpdateCount,然后调用 getMoreResults,并再次调用 getUpdateCount。
对于不知道返回内容,则情况更为复杂。如果结果是 ResultSet 对象,则方法 execute 返回 true;如果结果是 Java int,则返回 
false。如果返回 int,则意味着结果是更新计数或执行的语句是 DDL 命令。在调用方法 execute 之后要做的第一件事情是调用 
getResultSet 或 getUpdateCount。调用方法 getResultSet 可以获得两个或多个 ResultSet 
对象中第一个对象;或调用方法 getUpdateCount 可以获得两个或多个更新计数中第一个更新计数的内容。

你可能感兴趣的:(Java,数据库,java,jdbc,mysql,连接)